feat(funnels): flag bar labels and a name-only step legend - #110551
Conversation
Left-to-right funnel steps now shrink from 240px to 144px to fit the container before the chart scrolls. Below 210px the step legend hides the aggregation noun and tightens padding, and legend rows wrap instead of overlapping the next step. Generated-By: PostHog Desktop Task-Id: 6af3b7d8-315c-4147-a368-e399df41ae82
|
😎 Merged successfully - details. |
🤖 CI report✅ Trunk lane — non-backend laneThis PR is assigned to the non-backend lane. It does not run backend Python tests and may merge in parallel with PRs in other lanes. ✅ Complexity (TypeScript) — cleanCyclomatic complexity above the limit in changed typescript files (10 for production files, 15 for test files). Warn only: worth simplifying when you next touch these functions. ✅ Duplication (Python) — cleanNew Python code duplication introduced by this branch. Fails at 70+ tokens in app code, or 150+ tokens when both copies live in test files. Advisory while the gate proves itself: extract a shared helper instead of copying. ✅ Duplication (TypeScript) — cleanNew TypeScript code duplication introduced by this branch. Fails at 70+ tokens in app code, or 150+ tokens when both copies live in test files. Advisory while the gate proves itself: extract a shared helper instead of copying.
|
| File | Comment lines | Added lines |
|---|---|---|
packages/quill/packages/charts/src/charts/FunnelChart/FunnelChart.tsx |
10 | 48 |
products/product_analytics/frontend/insights/funnels/FunnelStepsBarChart/FunnelStepsBarChart.stories.tsx |
1 | 35 |
products/product_analytics/frontend/insights/funnels/FunnelStepsBarChart/StepNameLabel.tsx |
1 | 51 |
This check does not block merging. It updates on every push and clears when the share drops.
✅ Bundle size — 🟢 -1.01 MiB (-1.4%)
Uncompressed size of every built .js bundle, compared against the base branch.
Total: 69.76 MiB · 🟢 -1.01 MiB (-1.4%)
| File | Size | Δ vs base |
|---|---|---|
render-query/src/render-query/render-query.js |
18.76 MiB | 🟢 -1.47 MiB (-7.3%) |
exporter/src/exporter/scenes/ExporterNotebookScene.js |
3.88 MiB | 🔺 +182.6 KiB (+4.8%) |
posthog-app/src/scenes/saved-insights/SavedInsights.js |
91.4 KiB | 🔺 +79.6 KiB (+676.8%) |
exporter/_parent/node_modules/.pnpm/@posthog+hedgehog-mode@0.0.60_prop-types@15.8.1_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@posthog/hedgehog-mode/dist/react-shadow.esm-B4-N-ucD.js |
76.7 KiB | 🔺 +76.7 KiB (new) |
posthog-app/_parent/node_modules/.pnpm/@posthog+hedgehog-mode@0.0.60_prop-types@15.8.1_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@posthog/hedgehog-mode/dist/react-shadow.esm-B4-N-ucD.js |
76.7 KiB | 🔺 +76.7 KiB (new) |
exporter/_parent/node_modules/.pnpm/@posthog+hedgehog-mode@0.0.57_prop-types@15.8.1_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@posthog/hedgehog-mode/dist/react-shadow.esm-CAbukJW8.js |
removed | 🟢 -76.7 KiB (-100.0%) |
posthog-app/_parent/node_modules/.pnpm/@posthog+hedgehog-mode@0.0.57_prop-types@15.8.1_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@posthog/hedgehog-mode/dist/react-shadow.esm-CAbukJW8.js |
removed | 🟢 -76.7 KiB (-100.0%) |
exporter/_parent/products/subscriptions/frontend/components/Subscriptions/SubscriptionsModal.js |
74.3 KiB | 🔺 +74.3 KiB (new) |
posthog-app/src/scenes/project-homepage/ProjectHomepage.js |
1.6 KiB | 🟢 -56.7 KiB (-97.2%) |
posthog-app/src/scenes/AuthenticatedShell.js |
267.8 KiB | 🟢 -52.5 KiB (-16.4%) |
posthog-app/src/scenes/project-homepage/ai-first/AiFirstHomepage.js |
43.4 KiB | 🔺 +43.4 KiB (new) |
posthog-app/src/layout/today/TodaySpacesPane.js |
31.8 KiB | 🔺 +31.8 KiB (new) |
infrastructure-admin/_parent/products/tasks/frontend/infrastructure/infrastructure-admin.js |
606.9 KiB | 🔺 +28.6 KiB (+4.9%) |
posthog-app/_parent/products/dashboards/frontend/widgets/AddWidgetModal.js |
24.2 KiB | 🔺 +24.2 KiB (new) |
exporter/_parent/products/dashboards/frontend/widgets/AddWidgetModal.js |
22.0 KiB | 🔺 +22.0 KiB (new) |
posthog-app/_parent/products/ai_observability/frontend/scoreDefinitions/AIObservabilityScorerScene.js |
21.6 KiB | 🔺 +21.6 KiB (new) |
posthog-app/src/scenes/project-homepage/today/TodayReportPage.js |
18.9 KiB | 🔺 +18.9 KiB (new) |
exporter/src/lib/components/TerraformExporter/TerraformExportModal.js |
17.3 KiB | 🔺 +17.3 KiB (new) |
exporter/_parent/products/posthog_ai/frontend/scenes/TaskTracker/TaskTracker.js |
87.7 KiB | 🔺 +10.4 KiB (+13.4%) |
posthog-app/src/scenes/project-homepage/today/TodayHome.js |
10.3 KiB | 🔺 +10.3 KiB (new) |
posthog-app/src/scenes/project-homepage/today/TodayReportHoverCardChart.js |
10.2 KiB | 🔺 +10.2 KiB (new) |
posthog-app/src/scenes/dashboard/addInsightToDashboardModal/AddInsightToDashboardModal.js |
8.6 KiB | 🔺 +8.6 KiB (new) |
posthog-app/src/layout/today/TodayViewsSidebar.js |
8.5 KiB | 🔺 +8.5 KiB (new) |
posthog-app/src/layout/today/TodaySessionHoverCard.js |
8.2 KiB | 🔺 +8.2 KiB (new) |
posthog-app/_parent/products/posthog_ai/frontend/scenes/TaskTracker/TaskTracker.js |
87.5 KiB | 🔺 +7.9 KiB (+9.9%) |
toolbar/_parent/node_modules/.pnpm/@posthog+hedgehog-mode@0.0.60_prop-types@15.8.1_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@posthog/hedgehog-mode/dist/chunk-react-shadow.esm-B4-N-ucD.js |
7.8 KiB | 🔺 +7.8 KiB (new) |
toolbar/_parent/node_modules/.pnpm/@posthog+hedgehog-mode@0.0.57_prop-types@15.8.1_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@posthog/hedgehog-mode/dist/chunk-react-shadow.esm-CAbukJW8.js |
removed | 🟢 -7.8 KiB (-100.0%) |
posthog-app/_parent/products/ai_observability/frontend/scoreDefinitions/AIObservabilityScorersScene.js |
13.6 KiB | 🟢 -7.6 KiB (-35.9%) |
posthog-app/_parent/products/posthog_ai/frontend/components/tool/widgets/SearchSessionRecordingsWidget.js |
4.6 KiB | 🟢 -7.6 KiB (-62.2%) |
posthog-app/src/scenes/insights/InsightQuickStart/InsightQuickStart.js |
9.3 KiB | 🟢 -7.1 KiB (-43.5%) |
posthog-app/_parent/products/customer_analytics/frontend/scenes/CustomerJourneyTemplatesScene/CustomerJourneyTemplatesScene.js |
11.2 KiB | 🟢 -7.0 KiB (-38.3%) |
posthog-app/_parent/products/visual_review/frontend/scenes/VisualReviewRunScene.js |
61.1 KiB | 🔺 +6.9 KiB (+12.7%) |
posthog-app/src/scenes/project-homepage/today/TodayReportHoverCard.js |
6.8 KiB | 🔺 +6.8 KiB (new) |
exporter/src/scenes/dashboard/addInsightToDashboardModal/AddInsightToDashboardModal.js |
6.7 KiB | 🔺 +6.7 KiB (new) |
posthog-app/src/layout/today/TodaySpaceHoverCard.js |
6.6 KiB | 🔺 +6.6 KiB (new) |
posthog-app/src/scenes/activity/explore/EventDetails.js |
6.5 KiB | 🔺 +6.5 KiB (new) |
posthog-app/src/lib/components/ActivityLog/describers.js |
162.5 KiB | 🟢 -5.7 KiB (-3.4%) |
posthog-app/_parent/products/tasks/frontend/spaces/NewSpaceDialog.js |
5.5 KiB | 🔺 +5.5 KiB (new) |
posthog-app/_parent/products/subscriptions/frontend/components/Subscriptions/SubscriptionsModal.js |
5.0 KiB | 🔺 +5.0 KiB (new) |
posthog-app/src/scenes/project-homepage/today/TodayReportHoverCardMetric.js |
4.9 KiB | 🔺 +4.9 KiB (new) |
posthog-app/src/lib/components/Sharing/SharingModal.js |
3.8 KiB | 🔺 +3.8 KiB (new) |
posthog-app/_parent/products/business_knowledge/frontend/scenes/settings/BusinessKnowledgeSettingsScene.js |
13.1 KiB | 🟢 -3.6 KiB (-21.6%) |
posthog-app/_parent/products/conversations/frontend/scenes/settings/SupportSettingsScene.js |
12.3 KiB | 🟢 -3.6 KiB (-22.7%) |
posthog-app/src/scenes/settings/SettingsMap.js |
12.2 KiB | 🟢 -3.6 KiB (-22.8%) |
posthog-app/src/scenes/settings/SettingsScene.js |
15.8 KiB | 🟢 -3.6 KiB (-18.6%) |
exporter/src/scenes/activity/explore/EventDetails.js |
3.6 KiB | 🔺 +3.6 KiB (new) |
posthog-app/_parent/products/customer_analytics/frontend/scenes/CustomerAnalyticsConfigurationScene/CustomerAnalyticsConfigurationScene.js |
14.4 KiB | 🟢 -3.6 KiB (-19.8%) |
posthog-app/_parent/products/error_tracking/frontend/posthogAi/ErrorTrackingWidget.js |
13.5 KiB | 🟢 -3.5 KiB (-20.4%) |
posthog-app/_parent/products/conversations/frontend/scenes/ticket/SupportTicketScene.js |
70.3 KiB | 🔺 +3.4 KiB (+5.2%) |
posthog-app/_parent/products/signals/frontend/inbox/InboxScene.js |
479.8 KiB | 🟢 -3.4 KiB (-0.7%) |
posthog-app/_parent/products/replay_vision/frontend/replay_scanners/ScannerEditorScene.js |
59.7 KiB | 🟢 -3.4 KiB (-5.4%) |
posthog-app/src/scenes/debug/hog/HogRepl.js |
8.5 KiB | 🟢 -3.1 KiB (-26.9%) |
posthog-app/src/scenes/dashboard/Dashboard.js |
11.4 KiB | 🟢 -3.0 KiB (-20.6%) |
posthog-app/src/scenes/dashboard/dashboards/Dashboards.js |
38.7 KiB | 🟢 -2.8 KiB (-6.7%) |
posthog-app/src/scenes/notebooks/NotebookScene.js |
34.7 KiB | 🟢 -2.5 KiB (-6.8%) |
exporter/src/lib/components/Sharing/SharingModal.js |
2.3 KiB | 🔺 +2.3 KiB (new) |
posthog-app/_parent/products/conversations/frontend/components/ComposeTicket/ComposeTicketModal.js |
3.5 KiB | 🔺 +2.1 KiB (+153.2%) |
posthog-app/src/layout/today/TodayToolsSidebar.js |
2.1 KiB | 🔺 +2.1 KiB (new) |
posthog-app/src/queries/nodes/WebVitals/WebVitals.js |
15.8 KiB | 🟢 -2.0 KiB (-11.4%) |
posthog-app/src/queries/Query/Query.js |
9.5 KiB | 🟢 -2.0 KiB (-17.5%) |
posthog-app/src/layout/today/TodayChatHoverCard.js |
2.0 KiB | 🔺 +2.0 KiB (new) |
posthog-app/src/scenes/web-analytics/SessionAttributionExplorer/SessionAttributionExplorerScene.js |
15.4 KiB | 🟢 -2.0 KiB (-11.5%) |
posthog-app/_parent/products/posthog_ai/frontend/components/tool/widgets/CreateInsightWidget.js |
10.3 KiB | 🟢 -2.0 KiB (-16.3%) |
posthog-app/_parent/products/posthog_ai/frontend/components/tool/widgets/QueryWidget.js |
10.3 KiB | 🟢 -2.0 KiB (-16.2%) |
posthog-app/_parent/products/signals/frontend/inbox/components/detail/ReportAiPanel.js |
13.2 KiB | 🟢 -1.9 KiB (-12.4%) |
posthog-app/src/layout/today/TodayLibrarySidebar.js |
1.8 KiB | 🔺 +1.8 KiB (new) |
posthog-app/src/scenes/debug/DebugScene.js |
28.3 KiB | 🟢 -1.8 KiB (-6.1%) |
posthog-app/_parent/products/autoresearch/frontend/AutoresearchPipelineScene.js |
52.9 KiB | 🟢 -1.8 KiB (-3.3%) |
posthog-app/src/layout/panel-layout/navbar/tabs/NavTabChat.js |
19.3 KiB | 🟢 -1.8 KiB (-8.7%) |
posthog-app/_parent/products/groups/frontend/pages/Groups.js |
12.8 KiB | 🟢 -1.8 KiB (-12.5%) |
posthog-app/_parent/products/persons/frontend/pages/PersonsScene.js |
15.0 KiB | 🟢 -1.8 KiB (-10.8%) |
posthog-app/src/scenes/activity/explore/SessionsScene.js |
13.3 KiB | 🟢 -1.8 KiB (-12.1%) |
posthog-app/_parent/products/customer_analytics/frontend/scenes/CustomerJourneyBuilderScene/CustomerJourneyBuilderScene.js |
11.0 KiB | 🟢 -1.8 KiB (-14.0%) |
exporter/_parent/products/posthog_ai/frontend/components/tool/widgets/SearchSessionRecordingsWidget.js |
3.1 KiB | 🟢 -1.8 KiB (-36.8%) |
posthog-app/_parent/products/posthog_ai/frontend/scenes/TaskTracker/components/SidePanelRunnerImpl.js |
15.8 KiB | 🟢 -1.8 KiB (-10.0%) |
posthog-app/_parent/products/posthog_ai/frontend/scenes/TaskTracker/components/EmbeddedTaskComposerImpl.js |
11.0 KiB | 🟢 -1.8 KiB (-13.8%) |
posthog-app/src/scenes/cohorts/Cohort.js |
44.0 KiB | 🟢 -1.7 KiB (-3.8%) |
posthog-app/_parent/products/replay_vision/frontend/replay_scanners/ReplayScannersScene.js |
99.8 KiB | 🟢 -1.7 KiB (-1.7%) |
posthog-app/_parent/products/endpoints/frontend/EndpointScene.js |
61.3 KiB | 🟢 -1.7 KiB (-2.7%) |
posthog-app/src/scenes/experiments/SharedMetrics/SharedMetric.js |
18.7 KiB | 🟢 -1.7 KiB (-8.3%) |
posthog-app/_parent/products/replay_vision/frontend/replay_scanners/ReplayScanner.js |
51.5 KiB | 🟢 -1.7 KiB (-3.2%) |
posthog-app/src/scenes/marketing-analytics/MarketingAnalyticsScene.js |
135.4 KiB | 🟢 -1.7 KiB (-1.2%) |
posthog-app/_parent/products/ai_observability/frontend/tags/AIObservabilityTagScene.js |
36.9 KiB | 🟢 -1.7 KiB (-4.3%) |
posthog-app/_parent/products/ai_observability/frontend/tags/AIObservabilityTagsScene.js |
16.9 KiB | 🟢 -1.6 KiB (-8.8%) |
posthog-app/_parent/products/endpoints/frontend/EndpointsScene.js |
37.2 KiB | 🟢 -1.6 KiB (-4.1%) |
posthog-app/src/scenes/product-tours/ProductTour.js |
179.8 KiB | 🟢 -1.6 KiB (-0.9%) |
posthog-app/_parent/products/business_knowledge/frontend/scenes/playground/BusinessKnowledgePlaygroundScene.js |
25.0 KiB | 🟢 -1.6 KiB (-5.9%) |
posthog-app/_parent/products/replay_vision/frontend/replay_scanners/components/ScannerScoutsTab.js |
27.4 KiB | 🟢 -1.5 KiB (-5.3%) |
posthog-app/_parent/products/ai_observability/frontend/evaluations/EvaluationsScene.js |
29.0 KiB | 🟢 -1.5 KiB (-5.0%) |
posthog-app/_parent/products/customer_analytics/frontend/scenes/CustomerAnalyticsAccountScene/CustomerAnalyticsAccountScene.js |
56.4 KiB | 🟢 -1.5 KiB (-2.6%) |
posthog-app/src/scenes/activity/explore/EventsScene.js |
12.8 KiB | 🟢 -1.5 KiB (-10.4%) |
posthog-app/_parent/products/customer_analytics/frontend/CustomerAnalyticsScene.js |
11.6 KiB | 🟢 -1.5 KiB (-11.5%) |
posthog-app/_parent/products/error_tracking/frontend/scenes/ErrorTrackingIssueScene/ErrorTrackingIssueScene.js |
94.3 KiB | 🔺 +1.5 KiB (+1.6%) |
posthog-app/_parent/products/ai_observability/frontend/AIObservabilityScene.js |
167.1 KiB | 🟢 -1.4 KiB (-0.8%) |
posthog-app/_parent/products/early_access_features/frontend/EarlyAccessFeature.js |
10.9 KiB | 🟢 -1.4 KiB (-11.4%) |
posthog-app/_parent/products/tasks/frontend/spaces/SpaceScene.js |
85.7 KiB | 🟢 -1.3 KiB (-1.5%) |
posthog-app/_parent/products/ai_observability/frontend/prompts/LLMPromptScene.js |
52.5 KiB | 🟢 -1.3 KiB (-2.4%) |
posthog-app/_parent/products/logs/frontend/LogsScene.js |
47.5 KiB | 🟢 -1.3 KiB (-2.6%) |
posthog-app/src/scenes/experiments/Experiment.js |
295.7 KiB | 🔺 +1.2 KiB (+0.4%) |
posthog-app/_parent/products/actions/frontend/pages/Action.js |
11.3 KiB | 🟢 -1.2 KiB (-9.8%) |
posthog-app/_parent/products/ai_observability/frontend/AIObservabilityTraceScene.js |
178.2 KiB | 🟢 -1.2 KiB (-0.7%) |
exporter/_parent/node_modules/.pnpm/@posthog+hedgehog-mode@0.0.60_prop-types@15.8.1_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@posthog/hedgehog-mode/dist/dist.js |
1.2 KiB | 🔺 +1.2 KiB (new) |
posthog-app/_parent/node_modules/.pnpm/@posthog+hedgehog-mode@0.0.60_prop-types@15.8.1_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@posthog/hedgehog-mode/dist/dist.js |
1.2 KiB | 🔺 +1.2 KiB (new) |
toolbar/_parent/node_modules/.pnpm/@posthog+hedgehog-mode@0.0.60_prop-types@15.8.1_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@posthog/hedgehog-mode/dist/chunk-dist.js |
1.2 KiB | 🔺 +1.2 KiB (new) |
posthog-app/src/scenes/hog-functions/HogFunctionScene.js |
55.5 KiB | 🟢 -1.1 KiB (-2.0%) |
posthog-app/_parent/products/persons/frontend/pages/PersonScene.js |
45.2 KiB | 🔺 +1.1 KiB (+2.6%) |
posthog-app/src/scenes/notebooks/NotebookCanvasScene.js |
25.4 KiB | 🔺 +1.1 KiB (+4.7%) |
posthog-app/src/scenes/notebooks/NotebookPanel/NotebookPanel.js |
27.1 KiB | 🔺 +1.1 KiB (+4.3%) |
posthog-app/_parent/products/groups/frontend/pages/Group.js |
35.7 KiB | 🔺 +1.1 KiB (+3.3%) |
exporter/_parent/node_modules/.pnpm/@posthog+hedgehog-mode@0.0.57_prop-types@15.8.1_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@posthog/hedgehog-mode/dist/dist.js |
removed | 🟢 -1.1 KiB (-100.0%) |
posthog-app/_parent/node_modules/.pnpm/@posthog+hedgehog-mode@0.0.57_prop-types@15.8.1_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@posthog/hedgehog-mode/dist/dist.js |
removed | 🟢 -1.1 KiB (-100.0%) |
toolbar/_parent/node_modules/.pnpm/@posthog+hedgehog-mode@0.0.57_prop-types@15.8.1_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@posthog/hedgehog-mode/dist/chunk-dist.js |
removed | 🟢 -1.1 KiB (-100.0%) |
posthog-app/_parent/products/workflows/frontend/Broadcasts/BroadcastsScene.js |
14.1 KiB | 🟢 -1.1 KiB (-7.2%) |
posthog-app/src/scenes/data-management/definition/DefinitionView.js |
36.0 KiB | 🟢 -1.1 KiB (-2.9%) |
posthog-app/_parent/products/workflows/frontend/WorkflowsScene.js |
25.4 KiB | 🟢 -1.1 KiB (-4.0%) |
posthog-app/src/scenes/session-recordings/kiosk/SessionRecordingsKiosk.js |
24.5 KiB | 🟢 -1.1 KiB (-4.2%) |
posthog-app/src/scenes/session-recordings/player/modal/SessionPlayerModal.js |
17.1 KiB | 🟢 -1.1 KiB (-5.9%) |
posthog-app/_parent/products/replay_vision/frontend/observations/ObservationRecording.js |
16.2 KiB | 🟢 -1.1 KiB (-6.1%) |
posthog-app/src/scenes/session-recordings/detail/SessionRecordingDetail.js |
16.5 KiB | 🟢 -1.1 KiB (-6.1%) |
posthog-app/_parent/products/workflows/frontend/Broadcasts/BroadcastScene.js |
83.0 KiB | 🟢 -1.1 KiB (-1.3%) |
posthog-app/src/scenes/session-recordings/file-playback/SessionRecordingFilePlaybackScene.js |
19.2 KiB | 🟢 -1.1 KiB (-5.2%) |
posthog-app/src/lib/components/TerraformExporter/TerraformExportModal.js |
1.0 KiB | 🔺 +1.0 KiB (new) |
posthog-app/src/scenes/sessions/SessionProfileScene.js |
29.4 KiB | 🟢 -1.0 KiB (-3.4%) |
posthog-app/_parent/products/ai_observability/frontend/evaluations/AIObservabilityEvaluation.js |
88.5 KiB | 🔺 +1.0 KiB (+1.2%) |
posthog-app/src/scenes/session-recordings/playlist/SessionRecordingsPlaylistScene.js |
21.5 KiB | 🟢 -1021 B (-4.4%) |
Posted automatically by build-bundle-size-report · uncompressed bytes from dist-report
✅ Eager graph — within budget
How much code each root ships on the eager path — downloaded and parsed before the surface is interactive. Measured from the esbuild output chunks (post-tree-shake, static imports only); lazy import() / React.lazy chunks are not counted.
| Root | Eager (shipped) | Δ vs base | Budget |
|---|---|---|---|
entry (logged-out pages, app bootstrap)src/index.tsx |
1.63 MiB · 22 files | 🔺 +12.0 KiB (+0.7%) | █████████░ 88.7% of 1.84 MiB |
logged-out boot: index + App + bootApp (preloaded by every page, including /login)src/index.tsx + src/scenes/App.tsx + src/scenes/bootApp.ts |
3.72 MiB · 660 files | 🔺 +143.6 KiB (+3.9%) | █████████░ 92.3% of 4.03 MiB |
authenticated shell (every logged-in page)src/scenes/AuthenticatedShell.tsx |
7.59 MiB · 2,407 files | 🟢 -181.1 KiB (-2.3%) | █████████░ 91.0% of 8.34 MiB |
dashboard scenesrc/scenes/dashboard/Dashboard.tsx |
9.67 MiB · 3,391 files | 🟢 -2.01 MiB (-17.2%) | ███████░░░ 71.7% of 13.48 MiB |
today home pathsrc/scenes/AuthenticatedShell.tsx + src/scenes/project-homepage/ProjectHomepage.tsx + src/scenes/project-homepage/today/TodayHome.tsx |
7.60 MiB · 2,415 files | (no base measurement) | █████████░ 88.6% of 8.58 MiB |
events scenesrc/scenes/activity/explore/EventsScene.tsx |
9.28 MiB · 3,243 files | 🟢 -1.62 MiB (-14.9%) | ███████░░░ 73.5% of 12.64 MiB |
replay detail scenesrc/scenes/session-recordings/detail/SessionRecordingDetail.tsx |
12.12 MiB · 4,129 files | 🟢 -1.68 MiB (-12.2%) | ████████░░ 77.1% of 15.72 MiB |
🟢 node_modules/monaco-editor/ stays out of src/index.tsx
🟢 src/lib/components/ActivityLog/describers stays out of src/index.tsx
🟢 [object Object] stays out of src/index.tsx
🟢 [object Object] stays out of src/index.tsx
🟢 node_modules/monaco-editor/ stays out of src/index.tsx + src/scenes/App.tsx + src/scenes/bootApp.ts
🟢 src/layout/navigation-3000/navigationLogic.tsx stays out of src/index.tsx + src/scenes/App.tsx + src/scenes/bootApp.ts
🟢 src/scenes/dashboard/dashboardLogic.tsx stays out of src/index.tsx + src/scenes/App.tsx + src/scenes/bootApp.ts
🟢 src/lib/lemon-ui/LemonMarkdown/ stays out of src/index.tsx + src/scenes/App.tsx + src/scenes/bootApp.ts
🟢 src/lib/components/RichContentEditor/ stays out of src/index.tsx + src/scenes/App.tsx + src/scenes/bootApp.ts
🟢 src/lib/components/CodeSnippet/ stays out of src/index.tsx + src/scenes/App.tsx + src/scenes/bootApp.ts
🟢 src/taxonomy/core-filter-definitions-by-group.json stays out of src/index.tsx + src/scenes/App.tsx + src/scenes/bootApp.ts
🟢 node_modules/monaco-editor/ stays out of src/scenes/AuthenticatedShell.tsx
🟢 src/lib/components/ActivityLog/describers stays out of src/scenes/AuthenticatedShell.tsx
🟢 [object Object] stays out of src/scenes/AuthenticatedShell.tsx
🟢 src/scenes/session-recordings/player/sessionRecordingPlayerLogic.ts stays out of src/scenes/AuthenticatedShell.tsx
🟢 [object Object] stays out of src/scenes/AuthenticatedShell.tsx
🟢 [object Object] stays out of src/scenes/AuthenticatedShell.tsx
🟢 [object Object] stays out of src/scenes/AuthenticatedShell.tsx
🟢 src/scenes/project-homepage/ai-first/AiFirstHomepage.tsx stays out of src/scenes/AuthenticatedShell.tsx + src/scenes/project-homepage/ProjectHomepage.tsx + src/scenes/project-homepage/today/TodayHome.tsx
🟢 src/scenes/project-homepage/today/TodayReportPage.tsx stays out of src/scenes/AuthenticatedShell.tsx + src/scenes/project-homepage/ProjectHomepage.tsx + src/scenes/project-homepage/today/TodayHome.tsx
Largest files eagerly shipped from src/index.tsx
| Size | File |
|---|---|
| 126.8 KiB | ../node_modules/.pnpm/react-dom@18.3.1_react@18.3.1/node_modules/react-dom/cjs/react-dom.production.min.js |
| 24.6 KiB | ../node_modules/.pnpm/buffer@6.0.3/node_modules/buffer/index.js |
| 6.3 KiB | ../node_modules/.pnpm/react@18.3.1/node_modules/react/cjs/react.production.min.js |
| 4.5 KiB | ../node_modules/.pnpm/@jspm+core@2.1.0/node_modules/@jspm/core/nodelibs/browser/process.js |
| 3.9 KiB | ../node_modules/.pnpm/scheduler@0.23.2/node_modules/scheduler/cjs/scheduler.production.min.js |
| 1.4 KiB | ../node_modules/.pnpm/base64-js@1.5.1/node_modules/base64-js/index.js |
| 1.3 KiB | src/index.tsx |
| 1.3 KiB | src/RootErrorBoundary.tsx |
| 912 B | ../node_modules/.pnpm/ieee754@1.2.1/node_modules/ieee754/index.js |
| 854 B | src/scenes/ChunkLoadErrorBoundary.tsx |
Largest files eagerly shipped from src/index.tsx + src/scenes/App.tsx + src/scenes/bootApp.ts
| Size | File |
|---|---|
| 306.2 KiB | ../node_modules/.pnpm/posthog-js@1.435.5_@types+react@18.3.27_react@18.3.1/node_modules/posthog-js/dist/module.mjs |
| 220.3 KiB | ../node_modules/.pnpm/@posthog+icons@0.38.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@posthog/icons/dist/posthog-icons.es.js |
| 126.8 KiB | ../node_modules/.pnpm/react-dom@18.3.1_react@18.3.1/node_modules/react-dom/cjs/react-dom.production.min.js |
| 100.5 KiB | src/lib/api.ts |
| 92.5 KiB | src/products.tsx |
| 69.4 KiB | src/lib/lemon-ui/icons/icons.tsx |
| 40.1 KiB | src/lib/utils/eventUsageLogic.ts |
| 38.7 KiB | ../node_modules/.pnpm/@dnd-kit+core@6.0.8_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@dnd-kit/core/dist/core.esm.js |
| 33.9 KiB | ../node_modules/.pnpm/kea@4.0.0-pre.6_patch_hash=139b8d1f1304f9d9da452a9a1244c94ea679dbcb85687d8999563146879fb6f5_react@18.3.1/node_modules/kea/lib/index.cjs.js |
| 29.0 KiB | ../node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/core/schemas.js |
Largest files eagerly shipped from src/scenes/AuthenticatedShell.tsx
| Size | File |
|---|---|
| 306.2 KiB | ../node_modules/.pnpm/posthog-js@1.435.5_@types+react@18.3.27_react@18.3.1/node_modules/posthog-js/dist/module.mjs |
| 279.9 KiB | src/taxonomy/core-filter-definitions-by-group.json |
| 220.3 KiB | ../node_modules/.pnpm/@posthog+icons@0.38.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@posthog/icons/dist/posthog-icons.es.js |
| 153.7 KiB | ../node_modules/.pnpm/re2js@0.4.1/node_modules/re2js/build/index.esm.js |
| 126.8 KiB | ../node_modules/.pnpm/react-dom@18.3.1_react@18.3.1/node_modules/react-dom/cjs/react-dom.production.min.js |
| 110.0 KiB | ../packages/quill/packages/quill/dist/index.js |
| 100.5 KiB | src/lib/api.ts |
| 93.3 KiB | ../node_modules/.pnpm/prosemirror-view@1.40.1/node_modules/prosemirror-view/dist/index.js |
| 92.5 KiB | src/products.tsx |
| 90.6 KiB | ../node_modules/.pnpm/@tiptap+core@3.20.6_@tiptap+pm@3.20.6/node_modules/@tiptap/core/dist/index.js |
Largest files eagerly shipped from src/scenes/dashboard/Dashboard.tsx
| Size | File |
|---|---|
| 306.2 KiB | ../node_modules/.pnpm/posthog-js@1.435.5_@types+react@18.3.27_react@18.3.1/node_modules/posthog-js/dist/module.mjs |
| 279.9 KiB | src/taxonomy/core-filter-definitions-by-group.json |
| 220.3 KiB | ../node_modules/.pnpm/@posthog+icons@0.38.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@posthog/icons/dist/posthog-icons.es.js |
| 181.8 KiB | src/queries/validators.js |
| 153.7 KiB | ../node_modules/.pnpm/re2js@0.4.1/node_modules/re2js/build/index.esm.js |
| 126.8 KiB | ../node_modules/.pnpm/react-dom@18.3.1_react@18.3.1/node_modules/react-dom/cjs/react-dom.production.min.js |
| 110.0 KiB | ../packages/quill/packages/quill/dist/index.js |
| 100.5 KiB | src/lib/api.ts |
| 93.3 KiB | ../node_modules/.pnpm/prosemirror-view@1.40.1/node_modules/prosemirror-view/dist/index.js |
| 92.5 KiB | src/products.tsx |
Largest files eagerly shipped from src/scenes/AuthenticatedShell.tsx + src/scenes/project-homepage/ProjectHomepage.tsx + src/scenes/project-homepage/today/TodayHome.tsx
| Size | File |
|---|---|
| 306.2 KiB | ../node_modules/.pnpm/posthog-js@1.435.5_@types+react@18.3.27_react@18.3.1/node_modules/posthog-js/dist/module.mjs |
| 279.9 KiB | src/taxonomy/core-filter-definitions-by-group.json |
| 220.3 KiB | ../node_modules/.pnpm/@posthog+icons@0.38.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@posthog/icons/dist/posthog-icons.es.js |
| 153.7 KiB | ../node_modules/.pnpm/re2js@0.4.1/node_modules/re2js/build/index.esm.js |
| 126.8 KiB | ../node_modules/.pnpm/react-dom@18.3.1_react@18.3.1/node_modules/react-dom/cjs/react-dom.production.min.js |
| 110.0 KiB | ../packages/quill/packages/quill/dist/index.js |
| 100.5 KiB | src/lib/api.ts |
| 93.3 KiB | ../node_modules/.pnpm/prosemirror-view@1.40.1/node_modules/prosemirror-view/dist/index.js |
| 92.5 KiB | src/products.tsx |
| 90.6 KiB | ../node_modules/.pnpm/@tiptap+core@3.20.6_@tiptap+pm@3.20.6/node_modules/@tiptap/core/dist/index.js |
Largest files eagerly shipped from src/scenes/activity/explore/EventsScene.tsx
| Size | File |
|---|---|
| 306.2 KiB | ../node_modules/.pnpm/posthog-js@1.435.5_@types+react@18.3.27_react@18.3.1/node_modules/posthog-js/dist/module.mjs |
| 279.9 KiB | src/taxonomy/core-filter-definitions-by-group.json |
| 220.3 KiB | ../node_modules/.pnpm/@posthog+icons@0.38.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@posthog/icons/dist/posthog-icons.es.js |
| 181.8 KiB | src/queries/validators.js |
| 153.7 KiB | ../node_modules/.pnpm/re2js@0.4.1/node_modules/re2js/build/index.esm.js |
| 126.8 KiB | ../node_modules/.pnpm/react-dom@18.3.1_react@18.3.1/node_modules/react-dom/cjs/react-dom.production.min.js |
| 110.0 KiB | ../packages/quill/packages/quill/dist/index.js |
| 100.5 KiB | src/lib/api.ts |
| 93.3 KiB | ../node_modules/.pnpm/prosemirror-view@1.40.1/node_modules/prosemirror-view/dist/index.js |
| 92.5 KiB | src/products.tsx |
Largest files eagerly shipped from src/scenes/session-recordings/detail/SessionRecordingDetail.tsx
| Size | File |
|---|---|
| 315.5 KiB | ../node_modules/.pnpm/posthog-js@1.435.5_@types+react@18.3.27_react@18.3.1/node_modules/posthog-js/dist/rrweb.js |
| 306.2 KiB | ../node_modules/.pnpm/posthog-js@1.435.5_@types+react@18.3.27_react@18.3.1/node_modules/posthog-js/dist/module.mjs |
| 279.9 KiB | src/taxonomy/core-filter-definitions-by-group.json |
| 220.3 KiB | ../node_modules/.pnpm/@posthog+icons@0.38.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@posthog/icons/dist/posthog-icons.es.js |
| 181.8 KiB | src/queries/validators.js |
| 153.7 KiB | ../node_modules/.pnpm/re2js@0.4.1/node_modules/re2js/build/index.esm.js |
| 126.8 KiB | ../node_modules/.pnpm/react-dom@18.3.1_react@18.3.1/node_modules/react-dom/cjs/react-dom.production.min.js |
| 110.0 KiB | ../packages/quill/packages/quill/dist/index.js |
| 100.5 KiB | src/lib/api.ts |
| 93.3 KiB | ../node_modules/.pnpm/prosemirror-view@1.40.1/node_modules/prosemirror-view/dist/index.js |
Posted automatically by check-eager-graph · sizes are eager output bytes (shipped, post-tree-shake) from the esbuild metafile · part of #32479
✅ Toolbar bundle — eager 2.20 MiB within budget
What the toolbar ships to customer pages, measured from the esbuild output (minified, post-tree-shake). The eager set is the entry plus everything statically imported from it — fetched before any feature runs; deferred chunks load lazily. The eager guardrail is 5.72 MiB. Each output file must also stay below 10 MB, where CloudFront stops compressing it. The module boundary is enforced separately by check-toolbar-graph.
| Metric | Size | Δ vs base | Budget |
|---|---|---|---|
| Eager (shipped) entry + static imports |
2.20 MiB · 19 files | 🔺 +1.6 KiB (+0.1%) | ████░░░░░░ 38.4% of 5.72 MiB |
| Deferred (lazy) | 2.11 MiB · 44 files | 🔺 +9.6 KiB (+0.4%) | n/a — loads on demand |
Loader dist/toolbar.js |
1.2 KiB | no change | █░░░░░░░░░ 6.0% of 19.5 KiB |
Largest eagerly-shipped chunks
| Size | File |
|---|---|
| 834.2 KiB | dist/toolbar/toolbar-app-LXAUZCP3.css |
| 657.5 KiB | dist/toolbar/chunk-chunk-D5QRL7HG.js |
| 259.4 KiB | dist/toolbar/chunk-chunk-EXS5VGKQ.js |
| 138.2 KiB | dist/toolbar/chunk-chunk-4DV5ZX65.js |
| 131.8 KiB | dist/toolbar/chunk-chunk-FDH2IBXT.js |
| 75.2 KiB | dist/toolbar/toolbar-app-VVJVN46F.js |
| 69.0 KiB | dist/toolbar/chunk-chunk-TSAL54PB.js |
| 35.6 KiB | dist/toolbar/chunk-chunk-E7J4IONH.js |
| 21.0 KiB | dist/toolbar/chunk-chunk-YVKST5AB.js |
| 6.8 KiB | dist/toolbar/chunk-chunk-DV7IWQNF.js |
Posted automatically by check-toolbar-size · sizes are toolbar output bytes (shipped, post-tree-shake) from the esbuild metafile
✅ Dist folder size — 🟢 -6.90 MiB (-0.7%)
Total size of the built frontend/dist folder (all assets), compared against the base branch.
Total: 959.88 MiB · 🟢 -6.90 MiB (-0.7%)
ℹ️ MCP UI apps size — 33 app(s), 17633.6 KB JS
Built size of each MCP UI app (main.js + styles.css).
| App | JS | CSS |
|---|---|---|
| debug | 597.9 KB | 199.4 KB |
| action | 454.1 KB | 199.4 KB |
| action-list | 564.2 KB | 199.4 KB |
| cohort | 453.1 KB | 199.4 KB |
| cohort-list | 563.2 KB | 199.4 KB |
| email-template | 452.9 KB | 199.4 KB |
| error-details | 469.6 KB | 199.4 KB |
| error-issue | 454.5 KB | 199.4 KB |
| error-issue-list | 564.8 KB | 199.4 KB |
| experiment | 561.3 KB | 199.4 KB |
| experiment-list | 564.9 KB | 199.4 KB |
| experiment-results | 566.3 KB | 199.4 KB |
| feature-flag | 566.8 KB | 199.4 KB |
| feature-flag-list | 570.5 KB | 199.4 KB |
| feature-flag-testing | 457.3 KB | 199.4 KB |
| inline-scan | 453.6 KB | 199.4 KB |
| insight-actors | 562.3 KB | 199.4 KB |
| invite-email-preview | 452.3 KB | 199.4 KB |
| llm-costs | 559.3 KB | 199.4 KB |
| session-recording | 455.3 KB | 199.4 KB |
| survey | 454.7 KB | 199.4 KB |
| survey-global-stats | 561.9 KB | 199.4 KB |
| survey-list | 564.9 KB | 199.4 KB |
| survey-stats | 561.9 KB | 199.4 KB |
| trace-span | 453.5 KB | 199.4 KB |
| trace-span-list | 564.1 KB | 199.4 KB |
| vision-observation-list | 563.3 KB | 199.4 KB |
| workflow | 453.4 KB | 199.4 KB |
| workflow-list | 563.5 KB | 199.4 KB |
| loops-review | 457.8 KB | 199.4 KB |
| query-results | 774.3 KB | 199.4 KB |
| render-ui | 858.4 KB | 199.4 KB |
| visual-review-snapshots | 457.9 KB | 199.4 KB |
⚠️ Playwright — 1 flaky
🎭 Playwright report · View test results →
- Creating a SQL insight with a variable and overriding it on a dashboard (chromium)
These issues are not necessarily caused by your changes.
Annoyed by this section? Help fix flakies and failures and it will go green!
|
[Medium risk] Adds funnel chart labels and legend UI behind a feature flag. The PR appears safe to merge; no new actionable issue was established. Reviews (2) · Last reviewed commit: "feat(funnels): always label funnel bars ..." |
|
Navigate logical layers of code changes, visualize relationships, and explore their blast radius. Note Reviews pausedIt looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the Use the following commands to manage reviews:
Use the checkboxes below for quick actions:
🧰 Additional context used📚 Code guidelines (2)No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Repository: PostHog/posthog/.coderabbit.yaml Review profile: QUIET Plan: Enterprise Run ID: 📒 Files selected for processing (1)
Limit details: You’ve used all 12 included reviews currently available. 📝 WalkthroughWalkthroughThe funnel chart adds a feature-flagged layout with step-name footers, value labels, and responsive widths. Footer alignment can be configured as start or center, with start as the default. Step names can show optional-step indicators and path-link menus. The existing step menu now uses the shared path-link component. New stories cover many-step and breakdown funnels. Priority: ⬇️ Low Merge Risk: 🔵 Low · up to Long step names can hide the “(optional)” marker in the funnel legend, making optional steps less apparent. This is a localized presentation issue; no broader merge-blocking risk was identified. Security Architecture ReviewSecurity architecture risk: ⚪ Minimal · up to The chart changes preserve existing defaults and navigation restrictions. The reviewed changes do not introduce greater data access or privileges, and disabling the feature restores the legacy presentation. Retained concerns Security review detailsSecurity Blast Radius
Trust Boundaries and Controls
🚥 Pre-merge checks | ✅ 1✅ Passed checks (1 passed)
✨ Finishing Touches🧪 Generate unit tests (beta)
Usage-based review receipt
Note This review exceeded your plan’s limits and used usage-based reviews—free during trial. After your trial, your Enterprise plan’s existing billing terms apply. Manage usage-based reviews. Comment |
|
Behind the funnel-steps-bar-labels flag, the left-to-right funnel shows the conversion rate as a label on each bar and only the step name under it. The step name opens the paths menu. Steps shrink from 240px to 144px to fit the container before the chart scrolls. A "Bar labels" display option picks percentage, count or both, stored in the new funnelsFilter.stepBarLabels field. With the flag off the chart renders as on master: StepLegend and its styles are restored and the steps keep their fixed 240px width. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
HostHog preview —
|
There was a problem hiding this comment.
Note
Quiet mode is enabled, so only the most important comments were posted inline. Other review comments are grouped below.
🟡 Other comments (1)
products/product_analytics/frontend/insights/funnels/FunnelStepsBarChart/StepNameLabel.tsx-34-34 (1)
34-34: 🎯 Functional Correctness | 🟡 Minor | ⚡ Quick winKeep the optional indicator outside the name clamp.
If a long step name fills two lines,
.StepNameLabel__namehides the following(optional)text. The step then appears required. Clamp only the name, and render the optional indicator outside the clamped element.
ℹ️ Review info
⚙️ Run configuration
Configuration used: Repository: PostHog/posthog/.coderabbit.yaml
Review profile: QUIET
Plan: Enterprise
Run ID: d8d86f72-befd-4486-ac83-17ae5dff897c
📒 Files selected for processing (19)
frontend/src/lib/constants.tsxfrontend/src/queries/nodes/InsightViz/DisplayOptions.tsxfrontend/src/queries/nodes/InsightViz/insightDisplayOptions.tsxfrontend/src/queries/schema.jsonfrontend/src/queries/schema/schema-general.tsfrontend/src/scenes/insights/utils/queryUtils.tspackages/quill/packages/charts/src/charts/FunnelChart/FunnelChart.tsxpackages/quill/packages/charts/src/docs/chart-types.mdposthog/schema.pyposthog/schema_enums.pyposthog/schema_helpers.pyproducts/product_analytics/frontend/insights/funnels/FunnelStepsBarChart/FunnelBarVertical.scssproducts/product_analytics/frontend/insights/funnels/FunnelStepsBarChart/FunnelStepsBarChart.stories.tsxproducts/product_analytics/frontend/insights/funnels/FunnelStepsBarChart/FunnelStepsBarChart.tsxproducts/product_analytics/frontend/insights/funnels/FunnelStepsBarChart/StepNameLabel.tsxproducts/product_analytics/frontend/insights/funnels/FunnelStepsBarChart/funnelStepsBarTransforms.tsproducts/product_analytics/frontend/insights/funnels/filters/FunnelStepBarLabelsPicker.tsxproducts/product_analytics/frontend/insights/funnels/shared/FunnelStepMore.tsxproducts/product_analytics/frontend/insights/funnels/shared/FunnelStepPathLinks.tsx
Included review availability: This review used your included allowance. Your plan provides up to 12 included reviews per hour; 11 remain after this review.
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Remove the bar labels display option and the funnelsFilter.stepBarLabels field. The label is always the conversion rate as a whole percent. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
|
Risk: No findings A flag-gated ( Sentinel reviewed |
🦔 Hogbox preview · ✅ ready▶ Open the preview
commit |
There was a problem hiding this comment.
Not approved yet — waiting on the conditions below.
@greptile-apps[bot] still has a review in flight (👀) — not approving over an unfinished review. The review re-runs on the next push, or re-request one once the reviewer finishes.
- 👍 on the PR from greptile-apps[bot].
Gate mechanics and policy version
| Gate | Result | |
|---|---|---|
| prerequisites | ✓ | all clear |
| deny-list | ✓ | no deny categories matched |
| size | ✓ | 371L, 9F substantive, 373L/10F incl. docs/generated/snapshots — within ceiling |
| tier | ✓ | T1-agent / T1d-complex (373L, 10F, cross-cutting, feat) |
| stamphog 2.3.1 | .stamphog/policy.yml @ 5275dd2 · reviewed head 5275dd2 |
|
✅ Visual changes approved by @sampennington — baseline updated in 4 new. Install the Visual Review Chrome extension to see visual review results at the top of your pull requests. |
4 updated Run: 42d9c275-8110-4980-90f3-034f5a85dce8 Co-authored-by: sampennington <56024559+sampennington@users.noreply.github.com>
There was a problem hiding this comment.
Approved.
Frontend-only UI redesign behind a feature flag with flag-off behavior preserved. It touches no risky territory, and the symbols it imports exist.
- Author wrote 33% of the modified lines and has 86 merged PRs in these paths (familiarity MODERATE).
- 👍 on the PR from greptile-apps[bot].
- Non-blocking: CodeRabbit noted that a long step name filling two lines can clamp away the '(optional)' marker in StepNameLabel. This is a minor cosmetic issue behind the flag.
Gate mechanics and policy version
| Gate | Result | |
|---|---|---|
| prerequisites | ✓ | all clear |
| deny-list | ✓ | no deny categories matched |
| size | ✓ | 379L, 10F substantive, 381L/11F incl. docs/generated/snapshots — within ceiling |
| tier | ✓ | T1-agent / T1d-complex (381L, 11F, cross-cutting, feat) |
| stamphog 2.3.1 | .stamphog/policy.yml @ da70524 · reviewed head da70524 |
Problem
Changes
Everything below is behind the
funnel-steps-bar-labelsfeature flag. With the flag off, the chart renders as it does on master.FunnelStepMoreintoFunnelStepPathLinks, so the old and the new legend share them.FunnelChartin quill-charts gets astepFooterAlignoption that defaults to the current behavior.The screenshots use invented local demo data. They replace the four screenshots of the first commit, which showed the compact legend that no longer ships.
How did you test this code?
funnelStepsBarTransformsJest suite.Test rationale: The new
BarLabelsManyStepsandBarLabelsBreakdownstories catch a regression in the flag-on layout: steps that scroll again, missing bar labels, or a legend that overlaps. The existing stories keep the flag off, so their snapshots must not change.Release status
Automatic notifications
Docs update
None.
🤖 Agent context
Autonomy: Human-driven (agent-assisted)
Agent: PostHog Desktop (pi), claude-opus-5-5, and Claude Code, claude-opus-5-5
stepFooterAlignoption. The other produced the bar labels and the feature flag.StepLegendand its styles match master again./writing-ui-components,/working-with-charts,/writing-pr-descriptions.Created with PostHog Desktop
🤖 Generated with Claude Code