Skip to content

feat(experiments): add breakdown attribution to the metric row group - #61788

Closed
rodrigoi wants to merge 15 commits into
masterfrom
experiments/breakdown-attribution-metric-row-group
Closed

rodrigoi wants to merge 15 commits into
masterfrom
experiments/breakdown-attribution-metric-row-group

Conversation

@rodrigoi

@rodrigoi rodrigoi commented Jun 5, 2026 •

Copy link
Copy Markdown
Member

Problem

Experiment metric breakdowns currently attribute the breakdown value from the exposure event. That diverges from insights funnels, where the breakdown is read off the funnel events with a configurable attribution mode, and it produces null buckets whenever the exposure event doesn't carry the property.

We're moving experiment breakdowns to metric-event attribution. This PR is the frontend for it; the backend lands in the rest of the stack (#61796, #62291, #62292, #62293).

Changes

updated breakdown row header
image

This PR adds the frontend controls for metric-event breakdowns: a funnel attribution dropdown and a breakdown limit, both on the results table's breakdown row.

Feature gated

Everything renders behind the experiment-metric-event-breakdowns flag. The attribution dropdown shows for funnel metrics only; the limit applies to all metric types.

  • frontend/src/lib/constants.tsx
  • posthog/constants.py

Attribution control

MetricBreakdownAttribution is a LemonSelect offering first touchpoint, last touchpoint, all steps, and a specific step ("Any step" replaces the step list for unordered funnels). The "Specific step" choice is encoded as step/<index> so a single select carries both the attribution type and the step. The selection is stored on the metric as breakdownAttributionType and breakdownAttributionValue, matching how funnel insights model attribution.

  • frontend/src/scenes/experiments/MetricsView/shared/MetricBreakdownAttribution.tsx

Breakdown limit control

MetricBreakdownLimit caps the number of breakdown values shown (5 to 25, plus "Show all", which maps to the backend max of 1000). Values beyond the limit are grouped under "Other" by the backend. If a metric carries a non-preset limit, the dropdown surfaces it instead of falling back to a placeholder.

  • frontend/src/scenes/experiments/MetricsView/shared/MetricBreakdownLimit.tsx

Metric row group

The breakdown chips row is extracted into BreakdownChipsRow and rendered in both the collapsible section header and the breakdown error state. Clicks on the controls stop propagation so they don't toggle the collapse.

  • frontend/src/scenes/experiments/MetricsView/new/MetricRowGroup.tsx
  • frontend/src/scenes/experiments/MetricsView/new/MetricsTable.tsx

Experiment logic

updateMetricAttribution and updateMetricBreakdownLimit update the inline metric, persist via updateExperiment (with update_feature_flag_params: false), and refetch the affected primary or secondary results.

  • frontend/src/scenes/experiments/experimentLogic.tsx
  • frontend/src/scenes/experiments/experimentLogic.test.ts

Schema

ExperimentFunnelMetric gains breakdownAttributionType and breakdownAttributionValue. The limit reuses the existing breakdownFilter.breakdown_limit.

  • frontend/src/queries/schema/schema-general.ts
  • frontend/src/queries/schema.json (generated)
  • frontend/src/queries/validators.js (generated)
  • posthog/schema.py (generated)
  • products/dashboards/frontend/generated/api.schemas.ts (generated)
  • products/early_access_features/frontend/generated/api.schemas.ts (generated)
  • services/mcp/src/api/generated.ts (generated)

How did you test this code?

pnpm --filter=@posthog/frontend jest src/scenes/experiments
pnpm --filter=@posthog/frontend typescript:check

cat-type-small

👉 Stay up-to-date with PostHog coding conventions for a smoother review.

Automatic notifications

  • Publish to changelog?
  • Alert Sales and Marketing teams?

Docs update

🤖 Agent context

Autonomy: Human-driven (agent-assisted)

Model: Opus 4.7 (implementation), Fable 5 (restack and PR description)
Manually refactored: yes

Skills used:

  • /writing-kea-logics (local)
  • /writing-pull-requests (local)

Relevant decisions:

  • Attribution is stored on the metric itself (breakdownAttributionType and breakdownAttributionValue on ExperimentFunnelMetric), not on breakdownFilter, since attribution is a property of how the funnel reads the value, not of the breakdown definition.
  • A single LemonSelect encodes "Specific step" as step/<index>, avoiding a second control for the step picker.
  • Changing either control persists through updateExperiment and triggers a results refetch, so the new attribution takes effect immediately.

@github-actions

github-actions Bot commented Jun 5, 2026 •

Copy link
Copy Markdown
Contributor

Size Change: -466 kB (-0.73%)

Total Size: 63.7 MB

📦 View Changed
Filename Size Change
frontend/dist-report/exporter/_chunks/chunk 2.13 MB -485 kB (-18.52%) 👏
frontend/dist-report/posthog-app/_chunks/chunk 2.62 MB +11.1 kB (+0.42%)
frontend/dist-report/posthog-app/src/scenes/experiments/Experiment 228 kB +3.3 kB (+1.47%)
frontend/dist-report/render-query/src/render-query/render-query 24.8 MB +3.12 kB (+0.01%)
frontend/dist-report/toolbar/src/toolbar/toolbar 11.2 MB +1.41 kB (+0.01%)
ℹ️ View Unchanged
Filename Size Change
frontend/dist-report/decompression-worker/src/scenes/session-recordings/player/snapshot-processing/decompressionWorker 2.85 kB 0 B
frontend/dist-report/exporter/_parent/products/actions/frontend/pages/Action 27.9 kB -34 B (-0.12%)
frontend/dist-report/exporter/_parent/products/actions/frontend/pages/Actions 5.63 kB -34 B (-0.6%)
frontend/dist-report/exporter/_parent/products/ai_gateway/frontend/AIGatewayScene 13.2 kB 0 B
frontend/dist-report/exporter/_parent/products/ai_observability/frontend/AIObservabilityScene 121 kB -34 B (-0.03%)
frontend/dist-report/exporter/_parent/products/ai_observability/frontend/AIObservabilitySessionScene 19.7 kB 0 B
frontend/dist-report/exporter/_parent/products/ai_observability/frontend/AIObservabilityTraceScene 133 kB 0 B
frontend/dist-report/exporter/_parent/products/ai_observability/frontend/AIObservabilityUsers 3.48 kB 0 B
frontend/dist-report/exporter/_parent/products/ai_observability/frontend/clusters/AIObservabilityClusterScene 21.8 kB 0 B
frontend/dist-report/exporter/_parent/products/ai_observability/frontend/clusters/AIObservabilityClustersScene 53.9 kB 0 B
frontend/dist-report/exporter/_parent/products/ai_observability/frontend/datasets/AIObservabilityDatasetScene 20.7 kB 0 B
frontend/dist-report/exporter/_parent/products/ai_observability/frontend/datasets/AIObservabilityDatasetsScene 4.07 kB 0 B
frontend/dist-report/exporter/_parent/products/ai_observability/frontend/evaluations/AIObservabilityEvaluation 60.5 kB 0 B
frontend/dist-report/exporter/_parent/products/ai_observability/frontend/evaluations/AIObservabilityEvaluationsScene 32.5 kB -34 B (-0.1%)
frontend/dist-report/exporter/_parent/products/ai_observability/frontend/evaluations/EvaluationTemplates 671 B 0 B
frontend/dist-report/exporter/_parent/products/ai_observability/frontend/LLMASessionFeedbackDisplay 4.81 kB 0 B
frontend/dist-report/exporter/_parent/products/ai_observability/frontend/playground/AIObservabilityPlaygroundScene 37.5 kB 0 B
frontend/dist-report/exporter/_parent/products/ai_observability/frontend/prompts/LLMPromptScene 32.8 kB -34 B (-0.1%)
frontend/dist-report/exporter/_parent/products/ai_observability/frontend/prompts/LLMPromptsScene 5.21 kB 0 B
frontend/dist-report/exporter/_parent/products/ai_observability/frontend/tags/AIObservabilityTag 31.9 kB -34 B (-0.11%)
frontend/dist-report/exporter/_parent/products/ai_observability/frontend/tags/AIObservabilityTagsScene 11.7 kB -34 B (-0.29%)
frontend/dist-report/exporter/_parent/products/business_knowledge/frontend/scenes/BusinessKnowledgeScene 23.3 kB 0 B
frontend/dist-report/exporter/_parent/products/conversations/frontend/components/Assignee/CyclotronJobInputAssignee 1.38 kB 0 B
frontend/dist-report/exporter/_parent/products/conversations/frontend/components/SlaBusinessHours/CyclotronJobInputBusinessHours 2.69 kB 0 B
frontend/dist-report/exporter/_parent/products/conversations/frontend/components/TicketTags/CyclotronJobInputTicketTags 783 B 0 B
frontend/dist-report/exporter/_parent/products/conversations/frontend/scenes/settings/SupportSettingsScene 5.69 kB 0 B
frontend/dist-report/exporter/_parent/products/conversations/frontend/scenes/ticket/SupportTicketScene 38.2 kB -34 B (-0.09%)
frontend/dist-report/exporter/_parent/products/conversations/frontend/scenes/tickets/SupportTicketsScene 1.65 kB 0 B
frontend/dist-report/exporter/_parent/products/customer_analytics/frontend/CustomerAnalyticsScene 93.1 kB -34 B (-0.04%)
frontend/dist-report/exporter/_parent/products/customer_analytics/frontend/scenes/CustomerAnalyticsConfigurationScene/CustomerAnalyticsConfigurationScene 6.45 kB 0 B
frontend/dist-report/exporter/_parent/products/customer_analytics/frontend/scenes/CustomerJourneyBuilderScene/CustomerJourneyBuilderScene 6.29 kB -34 B (-0.54%)
frontend/dist-report/exporter/_parent/products/customer_analytics/frontend/scenes/CustomerJourneyTemplatesScene/CustomerJourneyTemplatesScene 9.2 kB 0 B
frontend/dist-report/exporter/_parent/products/data_warehouse/DataWarehouseScene 32.3 kB 0 B
frontend/dist-report/exporter/_parent/products/data_warehouse/frontend/scenes/NewSourceScene/NewSourceScene 2.81 kB 0 B
frontend/dist-report/exporter/_parent/products/data_warehouse/frontend/scenes/SchemaScene/SchemaScene 33.9 kB 0 B
frontend/dist-report/exporter/_parent/products/data_warehouse/frontend/scenes/SourceConnectScene/SourceConnectScene 6.93 kB 0 B
frontend/dist-report/exporter/_parent/products/data_warehouse/frontend/scenes/SourceScene/SourceScene 2.62 kB 0 B
frontend/dist-report/exporter/_parent/products/data_warehouse/frontend/scenes/SourcesScene/SourcesScene 7.49 kB 0 B
frontend/dist-report/exporter/_parent/products/early_access_features/frontend/EarlyAccessFeature 5.51 kB -34 B (-0.61%)
frontend/dist-report/exporter/_parent/products/early_access_features/frontend/EarlyAccessFeatures 3.73 kB 0 B
frontend/dist-report/exporter/_parent/products/endpoints/frontend/EndpointScene 47.4 kB -34 B (-0.07%)
frontend/dist-report/exporter/_parent/products/endpoints/frontend/EndpointsScene 27.4 kB -34 B (-0.12%)
frontend/dist-report/exporter/_parent/products/engineering_analytics/frontend/scenes/EngineeringAnalyticsScene 23.9 kB 0 B
frontend/dist-report/exporter/_parent/products/engineering_analytics/frontend/scenes/PullRequestDetailScene 11.4 kB 0 B
frontend/dist-report/exporter/_parent/products/error_tracking/frontend/scenes/ErrorTrackingFingerprintsScene/ErrorTrackingIssueFingerprintsScene 7.66 kB 0 B
frontend/dist-report/exporter/_parent/products/error_tracking/frontend/scenes/ErrorTrackingIssueScene/ErrorTrackingIssueScene 102 kB -34 B (-0.03%)
frontend/dist-report/exporter/_parent/products/error_tracking/frontend/scenes/ErrorTrackingScene/ErrorTrackingScene 42.5 kB -34 B (-0.08%)
frontend/dist-report/exporter/_parent/products/feature_flags/frontend/FeatureFlagTemplatesScene 6.91 kB 0 B
frontend/dist-report/exporter/_parent/products/games/368Hedgehogs/368Hedgehogs 5.24 kB 0 B
frontend/dist-report/exporter/_parent/products/games/FlappyHog/FlappyHog 5.7 kB 0 B
frontend/dist-report/exporter/_parent/products/growth/frontend/IdentityMatchingScene 32.4 kB 0 B
frontend/dist-report/exporter/_parent/products/legal_documents/frontend/scenes/LegalDocumentNewScene 60.5 kB 0 B
frontend/dist-report/exporter/_parent/products/legal_documents/frontend/scenes/LegalDocumentsScene 6.67 kB 0 B
frontend/dist-report/exporter/_parent/products/links/frontend/LinkScene 25.4 kB 0 B
frontend/dist-report/exporter/_parent/products/links/frontend/LinksScene 5.15 kB 0 B
frontend/dist-report/exporter/_parent/products/live_debugger/frontend/LiveDebugger 19.6 kB 0 B
frontend/dist-report/exporter/_parent/products/logs/frontend/LogsScene 22.8 kB 0 B
frontend/dist-report/exporter/_parent/products/logs/frontend/scenes/LogsAlertDetailScene/LogsAlertDetailScene 18.6 kB 0 B
frontend/dist-report/exporter/_parent/products/logs/frontend/scenes/LogsAlertNotificationDetailScene/LogsAlertNotificationDetailScene 9.03 kB 0 B
frontend/dist-report/exporter/_parent/products/logs/frontend/scenes/LogsSamplingDetailScene/LogsSamplingDetailScene 6.14 kB 0 B
frontend/dist-report/exporter/_parent/products/logs/frontend/scenes/LogsSamplingNewScene/LogsSamplingNewScene 3.15 kB 0 B
frontend/dist-report/exporter/_parent/products/managed_migrations/frontend/ManagedMigration 15.2 kB 0 B
frontend/dist-report/exporter/_parent/products/mcp_analytics/frontend/MCPAnalyticsScene 108 kB 0 B
frontend/dist-report/exporter/_parent/products/mcp_analytics/frontend/MCPAnalyticsToolDetail 20.3 kB 0 B
frontend/dist-report/exporter/_parent/products/metrics/frontend/MetricsScene 18 kB 0 B
frontend/dist-report/exporter/_parent/products/posthog_ai/frontend/sandbox/components/tool/builtinToolRenderers 4.48 kB 0 B
frontend/dist-report/exporter/_parent/products/posthog_ai/frontend/sandbox/SandboxQuestionRenderer 1.76 kB 0 B
frontend/dist-report/exporter/_parent/products/product_analytics/frontend/insights/stickiness/StickinessBarChart/StickinessBarChart 4.21 kB 0 B
frontend/dist-report/exporter/_parent/products/product_analytics/frontend/insights/stickiness/StickinessLineChart/StickinessLineChart 4.09 kB 0 B
frontend/dist-report/exporter/_parent/products/product_analytics/frontend/insights/trends/TrendsBarChart/TrendsBarChart 9.62 kB 0 B
frontend/dist-report/exporter/_parent/products/product_analytics/frontend/insights/trends/TrendsLifecycleChart/TrendsLifecycleChart 5.98 kB +77 B (+1.3%)
frontend/dist-report/exporter/_parent/products/product_analytics/frontend/insights/trends/TrendsLineChart/TrendsLineChart 5.86 kB 0 B
frontend/dist-report/exporter/_parent/products/product_analytics/frontend/insights/trends/TrendsPieChart/TrendsPieChart 5.04 kB 0 B
frontend/dist-report/exporter/_parent/products/product_analytics/frontend/insights/trends/TrendsSlopeChart/TrendsSlopeChart 2.6 kB 0 B
frontend/dist-report/exporter/_parent/products/replay_vision/frontend/observations/ReplayObservation 17.9 kB 0 B
frontend/dist-report/exporter/_parent/products/replay_vision/frontend/replay_scanners/ReplayScanner 35.7 kB -34 B (-0.1%)
frontend/dist-report/exporter/_parent/products/replay_vision/frontend/replay_scanners/ReplayScannersScene 22 kB -34 B (-0.15%)
frontend/dist-report/exporter/_parent/products/replay_vision/frontend/replay_scanners/ScannerEditorScene 25.2 kB 0 B
frontend/dist-report/exporter/_parent/products/revenue_analytics/frontend/revenueAnalyticsLogic 1.49 kB 0 B
frontend/dist-report/exporter/_parent/products/revenue_analytics/frontend/RevenueAnalyticsScene 29.7 kB -34 B (-0.11%)
frontend/dist-report/exporter/_parent/products/session_summaries/frontend/SessionGroupSummariesTable 5.4 kB 0 B
frontend/dist-report/exporter/_parent/products/session_summaries/frontend/SessionGroupSummaryScene 23.2 kB 0 B
frontend/dist-report/exporter/_parent/products/skills/frontend/LLMSkillScene 1.47 kB 0 B
frontend/dist-report/exporter/_parent/products/skills/frontend/LLMSkillsScene 1.48 kB 0 B
frontend/dist-report/exporter/_parent/products/tasks/frontend/SlackTaskContextScene 9 kB 0 B
frontend/dist-report/exporter/_parent/products/tasks/frontend/TaskDetailScene 49.7 kB 0 B
frontend/dist-report/exporter/_parent/products/tasks/frontend/TaskTracker 14.7 kB 0 B
frontend/dist-report/exporter/_parent/products/tracing/frontend/TracingScene 86.7 kB 0 B
frontend/dist-report/exporter/_parent/products/user_interviews/frontend/UserInterview 10.8 kB 0 B
frontend/dist-report/exporter/_parent/products/user_interviews/frontend/UserInterviewResponse 8.05 kB 0 B
frontend/dist-report/exporter/_parent/products/user_interviews/frontend/UserInterviews 6.46 kB 0 B
frontend/dist-report/exporter/_parent/products/visual_review/frontend/scenes/VisualReviewIndexScene 3 kB 0 B
frontend/dist-report/exporter/_parent/products/visual_review/frontend/scenes/VisualReviewRunScene 47.2 kB 0 B
frontend/dist-report/exporter/_parent/products/visual_review/frontend/scenes/VisualReviewRunsScene 8.23 kB 0 B
frontend/dist-report/exporter/_parent/products/visual_review/frontend/scenes/VisualReviewSettingsScene 11.6 kB 0 B
frontend/dist-report/exporter/_parent/products/visual_review/frontend/scenes/VisualReviewSnapshotHistoryScene 14.2 kB 0 B
frontend/dist-report/exporter/_parent/products/visual_review/frontend/scenes/VisualReviewSnapshotOverviewScene 19.8 kB 0 B
frontend/dist-report/exporter/_parent/products/workflows/frontend/TemplateLibrary/MessageTemplate 17 kB 0 B
frontend/dist-report/exporter/_parent/products/workflows/frontend/Workflows/WorkflowScene 112 kB 0 B
frontend/dist-report/exporter/_parent/products/workflows/frontend/WorkflowsScene 61.5 kB 0 B
frontend/dist-report/exporter/src/exporter/exporter 25.9 kB 0 B
frontend/dist-report/exporter/src/exporter/scenes/ExporterDashboardScene 6.54 kB -34 B (-0.52%)
frontend/dist-report/exporter/src/exporter/scenes/ExporterHeatmapScene 20.1 kB 0 B
frontend/dist-report/exporter/src/exporter/scenes/ExporterInsightScene 7.18 kB -34 B (-0.47%)
frontend/dist-report/exporter/src/exporter/scenes/ExporterInterviewScene 310 kB 0 B
frontend/dist-report/exporter/src/exporter/scenes/ExporterNotebookScene 2.89 MB -840 B (-0.03%)
frontend/dist-report/exporter/src/exporter/scenes/ExporterRecordingScene 5.56 kB 0 B
frontend/dist-report/exporter/src/exporterSharedChunkAnchors 1.26 kB 0 B
frontend/dist-report/exporter/src/lib/components/ActivityLog/describers 129 kB 0 B
frontend/dist-report/exporter/src/lib/components/Cards/TextCard/TextCardMarkdownEditor 10.6 kB 0 B
frontend/dist-report/exporter/src/lib/components/MonacoDiffEditor 533 B 0 B
frontend/dist-report/exporter/src/lib/lemon-ui/LemonMarkdown/MermaidDiagram 2 kB 0 B
frontend/dist-report/exporter/src/lib/lemon-ui/LemonTextArea/LemonTextAreaMarkdown 790 B 0 B
frontend/dist-report/exporter/src/lib/lemon-ui/Link/Link 415 B 0 B
frontend/dist-report/exporter/src/lib/monaco/CodeEditor 448 B 0 B
frontend/dist-report/exporter/src/lib/monaco/CodeEditorImpl 26 kB 0 B
frontend/dist-report/exporter/src/lib/monaco/CodeEditorInline 649 B 0 B
frontend/dist-report/exporter/src/lib/monaco/vimMode 211 kB 0 B
frontend/dist-report/exporter/src/lib/ui/Button/ButtonPrimitives 482 B 0 B
frontend/dist-report/exporter/src/queries/nodes/WebVitals/WebVitals 11.5 kB -34 B (-0.3%)
frontend/dist-report/exporter/src/queries/nodes/WebVitals/WebVitalsPathBreakdown 4.76 kB 0 B
frontend/dist-report/exporter/src/queries/Query/Query 5.05 kB -34 B (-0.67%)
frontend/dist-report/exporter/src/queries/schema 952 kB +350 B (+0.04%)
frontend/dist-report/exporter/src/scenes/approvals/changeRequestsLogic 622 B 0 B
frontend/dist-report/exporter/src/scenes/authentication/login/loginLogic 569 B 0 B
frontend/dist-report/exporter/src/scenes/authentication/shared/passkeyLogic 602 B 0 B
frontend/dist-report/exporter/src/scenes/data-pipelines/event-filtering/EventFilterScene 22.8 kB 0 B
frontend/dist-report/exporter/src/scenes/data-pipelines/TransformationsScene 8.02 kB 0 B
frontend/dist-report/exporter/src/scenes/experiments/notebook/NotebookCompactTable 1.54 kB 0 B
frontend/dist-report/exporter/src/scenes/hog-functions/misc/Diff 1.35 kB 0 B
frontend/dist-report/exporter/src/scenes/insights/views/BoxPlot/BoxPlot 4.52 kB 0 B
frontend/dist-report/exporter/src/scenes/insights/views/CalendarHeatMap/CalendarHeatMap 8.88 kB 0 B
frontend/dist-report/exporter/src/scenes/insights/views/RegionMap/RegionMap 30.3 kB 0 B
frontend/dist-report/exporter/src/scenes/insights/views/WorldMap/WorldMap 1.04 MB 0 B
frontend/dist-report/exporter/src/scenes/max/messages/adapters/CreateInsightWidget 5.7 kB -34 B (-0.59%)
frontend/dist-report/exporter/src/scenes/max/messages/adapters/CreateNotebookWidget 1.8 kB 0 B
frontend/dist-report/exporter/src/scenes/max/messages/adapters/EditDiffRenderer 3.23 kB 0 B
frontend/dist-report/exporter/src/scenes/max/messages/adapters/ErrorTrackingWidget 5.48 kB 0 B
frontend/dist-report/exporter/src/scenes/max/messages/adapters/QueryWidget 5.64 kB -34 B (-0.6%)
frontend/dist-report/exporter/src/scenes/max/messages/adapters/SearchSessionRecordingsWidget 5.51 kB 0 B
frontend/dist-report/exporter/src/scenes/max/messages/adapters/UpsertDashboardWidget 1.61 kB 0 B
frontend/dist-report/exporter/src/scenes/models/ModelsScene 19.1 kB 0 B
frontend/dist-report/exporter/src/scenes/models/NodeDetailScene 18.9 kB 0 B
frontend/dist-report/monaco-editor-worker/src/lib/monaco/workers/monacoEditorWorker 288 kB 0 B
frontend/dist-report/monaco-json-worker/src/lib/monaco/workers/monacoJsonWorker 419 kB 0 B
frontend/dist-report/monaco-typescript-worker/src/lib/monaco/workers/monacoTsWorker 7.02 MB 0 B
frontend/dist-report/posthog-app/_parent/products/actions/frontend/pages/Action 29.3 kB -34 B (-0.12%)
frontend/dist-report/posthog-app/_parent/products/actions/frontend/pages/Actions 6.92 kB -34 B (-0.49%)
frontend/dist-report/posthog-app/_parent/products/ai_gateway/frontend/AIGatewayScene 13.7 kB 0 B
frontend/dist-report/posthog-app/_parent/products/ai_observability/frontend/AIObservabilityScene 123 kB -34 B (-0.03%)
frontend/dist-report/posthog-app/_parent/products/ai_observability/frontend/AIObservabilitySessionScene 20.3 kB 0 B
frontend/dist-report/posthog-app/_parent/products/ai_observability/frontend/AIObservabilityTraceScene 133 kB 0 B
frontend/dist-report/posthog-app/_parent/products/ai_observability/frontend/AIObservabilityUsers 4.26 kB 0 B
frontend/dist-report/posthog-app/_parent/products/ai_observability/frontend/clusters/AIObservabilityClusterScene 22.3 kB 0 B
frontend/dist-report/posthog-app/_parent/products/ai_observability/frontend/clusters/AIObservabilityClustersScene 54.4 kB 0 B
frontend/dist-report/posthog-app/_parent/products/ai_observability/frontend/datasets/AIObservabilityDatasetScene 21.2 kB 0 B
frontend/dist-report/posthog-app/_parent/products/ai_observability/frontend/datasets/AIObservabilityDatasetsScene 4.54 kB 0 B
frontend/dist-report/posthog-app/_parent/products/ai_observability/frontend/evaluations/AIObservabilityEvaluation 61 kB 0 B
frontend/dist-report/posthog-app/_parent/products/ai_observability/frontend/evaluations/AIObservabilityEvaluationsScene 33.8 kB -34 B (-0.1%)
frontend/dist-report/posthog-app/_parent/products/ai_observability/frontend/evaluations/EvaluationTemplates 671 B 0 B
frontend/dist-report/posthog-app/_parent/products/ai_observability/frontend/LLMASessionFeedbackDisplay 4.81 kB 0 B
frontend/dist-report/posthog-app/_parent/products/ai_observability/frontend/playground/AIObservabilityPlaygroundScene 38.1 kB 0 B
frontend/dist-report/posthog-app/_parent/products/ai_observability/frontend/prompts/LLMPromptScene 34.1 kB -34 B (-0.1%)
frontend/dist-report/posthog-app/_parent/products/ai_observability/frontend/prompts/LLMPromptsScene 5.69 kB 0 B
frontend/dist-report/posthog-app/_parent/products/ai_observability/frontend/tags/AIObservabilityTag 33.2 kB -34 B (-0.1%)
frontend/dist-report/posthog-app/_parent/products/ai_observability/frontend/tags/AIObservabilityTagsScene 13 kB -34 B (-0.26%)
frontend/dist-report/posthog-app/_parent/products/business_knowledge/frontend/scenes/BusinessKnowledgeScene 23.8 kB 0 B
frontend/dist-report/posthog-app/_parent/products/conversations/frontend/components/Assignee/CyclotronJobInputAssignee 1.38 kB 0 B
frontend/dist-report/posthog-app/_parent/products/conversations/frontend/components/SlaBusinessHours/CyclotronJobInputBusinessHours 2.7 kB 0 B
frontend/dist-report/posthog-app/_parent/products/conversations/frontend/components/TicketTags/CyclotronJobInputTicketTags 783 B 0 B
frontend/dist-report/posthog-app/_parent/products/conversations/frontend/scenes/settings/SupportSettingsScene 7.77 kB 0 B
frontend/dist-report/posthog-app/_parent/products/conversations/frontend/scenes/ticket/SupportTicketScene 32.2 kB -34 B (-0.11%)
frontend/dist-report/posthog-app/_parent/products/conversations/frontend/scenes/tickets/SupportTicketsScene 2.12 kB 0 B
frontend/dist-report/posthog-app/_parent/products/customer_analytics/frontend/CustomerAnalyticsScene 93.3 kB -34 B (-0.04%)
frontend/dist-report/posthog-app/_parent/products/customer_analytics/frontend/scenes/CustomerAnalyticsConfigurationScene/CustomerAnalyticsConfigurationScene 8.52 kB 0 B
frontend/dist-report/posthog-app/_parent/products/customer_analytics/frontend/scenes/CustomerJourneyBuilderScene/CustomerJourneyBuilderScene 7.55 kB -34 B (-0.45%)
frontend/dist-report/posthog-app/_parent/products/customer_analytics/frontend/scenes/CustomerJourneyTemplatesScene/CustomerJourneyTemplatesScene 10 kB 0 B
frontend/dist-report/posthog-app/_parent/products/data_warehouse/DataWarehouseScene 2.04 kB 0 B
frontend/dist-report/posthog-app/_parent/products/data_warehouse/frontend/scenes/NewSourceScene/NewSourceScene 3.52 kB 0 B
frontend/dist-report/posthog-app/_parent/products/data_warehouse/frontend/scenes/SchemaScene/SchemaScene 34.4 kB 0 B
frontend/dist-report/posthog-app/_parent/products/data_warehouse/frontend/scenes/SourceConnectScene/SourceConnectScene 7.58 kB 0 B
frontend/dist-report/posthog-app/_parent/products/data_warehouse/frontend/scenes/SourceScene/SourceScene 3.23 kB 0 B
frontend/dist-report/posthog-app/_parent/products/data_warehouse/frontend/scenes/SourcesScene/SourcesScene 8.1 kB 0 B
frontend/dist-report/posthog-app/_parent/products/early_access_features/frontend/EarlyAccessFeature 6.93 kB -34 B (-0.49%)
frontend/dist-report/posthog-app/_parent/products/early_access_features/frontend/EarlyAccessFeatures 4.21 kB 0 B
frontend/dist-report/posthog-app/_parent/products/endpoints/frontend/EndpointScene 48.7 kB -34 B (-0.07%)
frontend/dist-report/posthog-app/_parent/products/endpoints/frontend/EndpointsScene 26.7 kB -34 B (-0.13%)
frontend/dist-report/posthog-app/_parent/products/engineering_analytics/frontend/scenes/EngineeringAnalyticsScene 24.3 kB 0 B
frontend/dist-report/posthog-app/_parent/products/engineering_analytics/frontend/scenes/PullRequestDetailScene 11.9 kB 0 B
frontend/dist-report/posthog-app/_parent/products/error_tracking/frontend/scenes/ErrorTrackingFingerprintsScene/ErrorTrackingIssueFingerprintsScene 8.17 kB 0 B
frontend/dist-report/posthog-app/_parent/products/error_tracking/frontend/scenes/ErrorTrackingIssueScene/ErrorTrackingIssueScene 103 kB -34 B (-0.03%)
frontend/dist-report/posthog-app/_parent/products/error_tracking/frontend/scenes/ErrorTrackingScene/ErrorTrackingScene 44.9 kB -34 B (-0.08%)
frontend/dist-report/posthog-app/_parent/products/feature_flags/frontend/FeatureFlagTemplatesScene 6.92 kB 0 B
frontend/dist-report/posthog-app/_parent/products/games/368Hedgehogs/368Hedgehogs 5.24 kB 0 B
frontend/dist-report/posthog-app/_parent/products/games/FlappyHog/FlappyHog 5.7 kB 0 B
frontend/dist-report/posthog-app/_parent/products/growth/frontend/IdentityMatchingScene 32.8 kB 0 B
frontend/dist-report/posthog-app/_parent/products/legal_documents/frontend/scenes/LegalDocumentNewScene 61 kB 0 B
frontend/dist-report/posthog-app/_parent/products/legal_documents/frontend/scenes/LegalDocumentsScene 7.15 kB 0 B
frontend/dist-report/posthog-app/_parent/products/links/frontend/LinkScene 25.9 kB 0 B
frontend/dist-report/posthog-app/_parent/products/links/frontend/LinksScene 5.63 kB 0 B
frontend/dist-report/posthog-app/_parent/products/live_debugger/frontend/LiveDebugger 20 kB 0 B
frontend/dist-report/posthog-app/_parent/products/logs/frontend/components/LogsViewer/LogsViewerModal/LogsViewerModal 2.52 kB 0 B
frontend/dist-report/posthog-app/_parent/products/logs/frontend/LogsScene 24.1 kB 0 B
frontend/dist-report/posthog-app/_parent/products/logs/frontend/scenes/LogsAlertDetailScene/LogsAlertDetailScene 19.2 kB 0 B
frontend/dist-report/posthog-app/_parent/products/logs/frontend/scenes/LogsAlertNotificationDetailScene/LogsAlertNotificationDetailScene 9.54 kB 0 B
frontend/dist-report/posthog-app/_parent/products/logs/frontend/scenes/LogsSamplingDetailScene/LogsSamplingDetailScene 6.63 kB 0 B
frontend/dist-report/posthog-app/_parent/products/logs/frontend/scenes/LogsSamplingNewScene/LogsSamplingNewScene 3.63 kB 0 B
frontend/dist-report/posthog-app/_parent/products/managed_migrations/frontend/ManagedMigration 15.7 kB 0 B
frontend/dist-report/posthog-app/_parent/products/mcp_analytics/frontend/MCPAnalyticsScene 108 kB 0 B
frontend/dist-report/posthog-app/_parent/products/mcp_analytics/frontend/MCPAnalyticsToolDetail 20.8 kB 0 B
frontend/dist-report/posthog-app/_parent/products/metrics/frontend/MetricsScene 18.8 kB 0 B
frontend/dist-report/posthog-app/_parent/products/posthog_ai/frontend/sandbox/components/tool/builtinToolRenderers 4.48 kB 0 B
frontend/dist-report/posthog-app/_parent/products/posthog_ai/frontend/sandbox/SandboxQuestionRenderer 1.76 kB 0 B
frontend/dist-report/posthog-app/_parent/products/product_analytics/frontend/insights/stickiness/StickinessBarChart/StickinessBarChart 4.65 kB 0 B
frontend/dist-report/posthog-app/_parent/products/product_analytics/frontend/insights/stickiness/StickinessLineChart/StickinessLineChart 4.53 kB 0 B
frontend/dist-report/posthog-app/_parent/products/product_analytics/frontend/insights/trends/TrendsBarChart/TrendsBarChart 10.1 kB 0 B
frontend/dist-report/posthog-app/_parent/products/product_analytics/frontend/insights/trends/TrendsLifecycleChart/TrendsLifecycleChart 6.42 kB +77 B (+1.21%)
frontend/dist-report/posthog-app/_parent/products/product_analytics/frontend/insights/trends/TrendsLineChart/TrendsLineChart 6.3 kB 0 B
frontend/dist-report/posthog-app/_parent/products/product_analytics/frontend/insights/trends/TrendsPieChart/TrendsPieChart 5.49 kB 0 B
frontend/dist-report/posthog-app/_parent/products/product_analytics/frontend/insights/trends/TrendsSlopeChart/TrendsSlopeChart 3 kB 0 B
frontend/dist-report/posthog-app/_parent/products/replay_vision/frontend/observations/ReplayObservation 20 kB 0 B
frontend/dist-report/posthog-app/_parent/products/replay_vision/frontend/replay_scanners/ReplayScanner 37 kB -34 B (-0.09%)
frontend/dist-report/posthog-app/_parent/products/replay_vision/frontend/replay_scanners/ReplayScannersScene 23.3 kB -34 B (-0.15%)
frontend/dist-report/posthog-app/_parent/products/replay_vision/frontend/replay_scanners/ScannerEditorScene 25.7 kB 0 B
frontend/dist-report/posthog-app/_parent/products/revenue_analytics/frontend/revenueAnalyticsLogic 1.86 kB 0 B
frontend/dist-report/posthog-app/_parent/products/revenue_analytics/frontend/RevenueAnalyticsScene 31.1 kB -34 B (-0.11%)
frontend/dist-report/posthog-app/_parent/products/session_summaries/frontend/SessionGroupSummariesTable 5.88 kB 0 B
frontend/dist-report/posthog-app/_parent/products/session_summaries/frontend/SessionGroupSummaryScene 25.3 kB 0 B
frontend/dist-report/posthog-app/_parent/products/skills/frontend/LLMSkillScene 1.94 kB 0 B
frontend/dist-report/posthog-app/_parent/products/skills/frontend/LLMSkillsScene 1.96 kB 0 B
frontend/dist-report/posthog-app/_parent/products/tasks/frontend/SlackTaskContextScene 9.47 kB 0 B
frontend/dist-report/posthog-app/_parent/products/tasks/frontend/TaskDetailScene 25.3 kB 0 B
frontend/dist-report/posthog-app/_parent/products/tasks/frontend/TaskTracker 15.3 kB 0 B
frontend/dist-report/posthog-app/_parent/products/tracing/frontend/TracingScene 87.2 kB 0 B
frontend/dist-report/posthog-app/_parent/products/user_interviews/frontend/UserInterview 10.8 kB 0 B
frontend/dist-report/posthog-app/_parent/products/user_interviews/frontend/UserInterviewResponse 8.52 kB 0 B
frontend/dist-report/posthog-app/_parent/products/user_interviews/frontend/UserInterviews 6.94 kB 0 B
frontend/dist-report/posthog-app/_parent/products/visual_review/frontend/scenes/VisualReviewIndexScene 3.48 kB 0 B
frontend/dist-report/posthog-app/_parent/products/visual_review/frontend/scenes/VisualReviewRunScene 47.7 kB 0 B
frontend/dist-report/posthog-app/_parent/products/visual_review/frontend/scenes/VisualReviewRunsScene 8.71 kB 0 B
frontend/dist-report/posthog-app/_parent/products/visual_review/frontend/scenes/VisualReviewSettingsScene 12.1 kB 0 B
frontend/dist-report/posthog-app/_parent/products/visual_review/frontend/scenes/VisualReviewSnapshotHistoryScene 14.7 kB 0 B
frontend/dist-report/posthog-app/_parent/products/visual_review/frontend/scenes/VisualReviewSnapshotOverviewScene 20.3 kB 0 B
frontend/dist-report/posthog-app/_parent/products/workflows/frontend/TemplateLibrary/MessageTemplate 17.6 kB 0 B
frontend/dist-report/posthog-app/_parent/products/workflows/frontend/Workflows/WorkflowScene 106 kB 0 B
frontend/dist-report/posthog-app/_parent/products/workflows/frontend/WorkflowsScene 62.5 kB 0 B
frontend/dist-report/posthog-app/src/index 62.4 kB 0 B
frontend/dist-report/posthog-app/src/layout/panel-layout/ai-first/tabs/NavTabChat 7.89 kB 0 B
frontend/dist-report/posthog-app/src/lib/components/ActivityLog/describers 130 kB 0 B
frontend/dist-report/posthog-app/src/lib/components/AppShortcuts/utils/DebugCHQueriesImpl 20.1 kB 0 B
frontend/dist-report/posthog-app/src/lib/components/Cards/TextCard/TextCardMarkdownEditor 10.6 kB 0 B
frontend/dist-report/posthog-app/src/lib/components/MonacoDiffEditor 533 B 0 B
frontend/dist-report/posthog-app/src/lib/components/Support/supportRouterLogic 1.56 kB 0 B
frontend/dist-report/posthog-app/src/lib/lemon-ui/LemonMarkdown/MermaidDiagram 2 kB 0 B
frontend/dist-report/posthog-app/src/lib/lemon-ui/LemonTextArea/LemonTextAreaMarkdown 790 B 0 B
frontend/dist-report/posthog-app/src/lib/lemon-ui/Link/Link 415 B 0 B
frontend/dist-report/posthog-app/src/lib/monaco/CodeEditor 448 B 0 B
frontend/dist-report/posthog-app/src/lib/monaco/CodeEditorImpl 26 kB 0 B
frontend/dist-report/posthog-app/src/lib/monaco/CodeEditorInline 649 B 0 B
frontend/dist-report/posthog-app/src/lib/monaco/vimMode 211 kB 0 B
frontend/dist-report/posthog-app/src/lib/ui/Button/ButtonPrimitives 482 B 0 B
frontend/dist-report/posthog-app/src/queries/nodes/WebVitals/WebVitals 12.7 kB -34 B (-0.27%)
frontend/dist-report/posthog-app/src/queries/nodes/WebVitals/WebVitalsPathBreakdown 5.13 kB 0 B
frontend/dist-report/posthog-app/src/queries/Query/Query 6.3 kB -34 B (-0.54%)
frontend/dist-report/posthog-app/src/queries/schema 952 kB +350 B (+0.04%)
frontend/dist-report/posthog-app/src/scenes/activity/explore/EventsScene 8.47 kB -34 B (-0.4%)
frontend/dist-report/posthog-app/src/scenes/activity/explore/SessionsScene 9.81 kB -34 B (-0.35%)
frontend/dist-report/posthog-app/src/scenes/activity/live/LiveEventsTable 6.64 kB 0 B
frontend/dist-report/posthog-app/src/scenes/agentic/AgenticAuthorize 5.51 kB 0 B
frontend/dist-report/posthog-app/src/scenes/approvals/ApprovalDetail 17.7 kB 0 B
frontend/dist-report/posthog-app/src/scenes/approvals/changeRequestsLogic 622 B 0 B
frontend/dist-report/posthog-app/src/scenes/audit-logs/AdvancedActivityLogsScene 43 kB 0 B
frontend/dist-report/posthog-app/src/scenes/AuthenticatedShell 212 kB 0 B
frontend/dist-report/posthog-app/src/scenes/authentication/account/AccountConnected 3.29 kB 0 B
frontend/dist-report/posthog-app/src/scenes/authentication/account/AgenticAccountMismatch 2.43 kB 0 B
frontend/dist-report/posthog-app/src/scenes/authentication/account/credential-review/CredentialReview 5.04 kB 0 B
frontend/dist-report/posthog-app/src/scenes/authentication/cli/CLIAuthorize 12.1 kB 0 B
frontend/dist-report/posthog-app/src/scenes/authentication/cli/CLILive 4.05 kB 0 B
frontend/dist-report/posthog-app/src/scenes/authentication/email-mfa-verify/EmailMFAVerify 3.04 kB 0 B
frontend/dist-report/posthog-app/src/scenes/authentication/invite-signup/InviteSignup 1.44 kB 0 B
frontend/dist-report/posthog-app/src/scenes/authentication/login-2fa/Login2FA 4.74 kB 0 B
frontend/dist-report/posthog-app/src/scenes/authentication/login/Login 1.42 kB 0 B
frontend/dist-report/posthog-app/src/scenes/authentication/login/loginLogic 569 B 0 B
frontend/dist-report/posthog-app/src/scenes/authentication/password-reset/PasswordReset 4.5 kB 0 B
frontend/dist-report/posthog-app/src/scenes/authentication/password-reset/PasswordResetComplete 3.06 kB 0 B
frontend/dist-report/posthog-app/src/scenes/authentication/shared/passkeyLogic 602 B 0 B
frontend/dist-report/posthog-app/src/scenes/authentication/signup/SignupContainer 1.42 kB 0 B
frontend/dist-report/posthog-app/src/scenes/authentication/two-factor-reset/TwoFactorReset 4.04 kB 0 B
frontend/dist-report/posthog-app/src/scenes/authentication/vercel/VercelConnect 5.03 kB 0 B
frontend/dist-report/posthog-app/src/scenes/authentication/vercel/VercelLinkError 2.3 kB 0 B
frontend/dist-report/posthog-app/src/scenes/authentication/verify-email/VerifyEmail 1.44 kB 0 B
frontend/dist-report/posthog-app/src/scenes/billing/AuthorizationStatus 768 B 0 B
frontend/dist-report/posthog-app/src/scenes/billing/Billing 717 B 0 B
frontend/dist-report/posthog-app/src/scenes/billing/BillingSection 21.7 kB 0 B
frontend/dist-report/posthog-app/src/scenes/cohorts/Cohort 33.9 kB -34 B (-0.1%)
frontend/dist-report/posthog-app/src/scenes/cohorts/CohortCalculationHistory 7.3 kB 0 B
frontend/dist-report/posthog-app/src/scenes/cohorts/Cohorts 11 kB 0 B
frontend/dist-report/posthog-app/src/scenes/coupons/Coupons 895 B 0 B
frontend/dist-report/posthog-app/src/scenes/dashboard/Dashboard 7.72 kB -34 B (-0.44%)
frontend/dist-report/posthog-app/src/scenes/dashboard/dashboards/Dashboards 22.6 kB 0 B
frontend/dist-report/posthog-app/src/scenes/dashboard/dashboards/templates/DashboardTemplateCopyScene 7.02 kB 0 B
frontend/dist-report/posthog-app/src/scenes/data-management/DataManagementScene 6.62 kB -34 B (-0.51%)
frontend/dist-report/posthog-app/src/scenes/data-management/definition/DefinitionEdit 23.2 kB -34 B (-0.15%)
frontend/dist-report/posthog-app/src/scenes/data-management/definition/DefinitionView 31.4 kB -34 B (-0.11%)
frontend/dist-report/posthog-app/src/scenes/data-management/MaterializedColumns/MaterializedColumns 12.8 kB 0 B
frontend/dist-report/posthog-app/src/scenes/data-management/variables/SqlVariableEditScene 8.5 kB 0 B
frontend/dist-report/posthog-app/src/scenes/data-pipelines/batch-exports/BatchExportScene 67.7 kB 0 B
frontend/dist-report/posthog-app/src/scenes/data-pipelines/DataPipelinesNewScene 5.11 kB 0 B
frontend/dist-report/posthog-app/src/scenes/data-pipelines/DestinationsScene 5.64 kB 0 B
frontend/dist-report/posthog-app/src/scenes/data-pipelines/event-filtering/EventFilterScene 23.3 kB 0 B
frontend/dist-report/posthog-app/src/scenes/data-pipelines/legacy-plugins/LegacyPluginScene 22 kB 0 B
frontend/dist-report/posthog-app/src/scenes/data-pipelines/TransformationsScene 4.75 kB 0 B
frontend/dist-report/posthog-app/src/scenes/data-pipelines/WebScriptsScene 5.51 kB 0 B
frontend/dist-report/posthog-app/src/scenes/data-warehouse/DataWarehouseScene 2.02 kB 0 B
frontend/dist-report/posthog-app/src/scenes/data-warehouse/editor/EditorScene 4.77 kB 0 B
frontend/dist-report/posthog-app/src/scenes/debug/DebugScene 25.3 kB -34 B (-0.13%)
frontend/dist-report/posthog-app/src/scenes/debug/hog/HogRepl 8.98 kB 0 B
frontend/dist-report/posthog-app/src/scenes/experiments/Experiments 23 kB -241 B (-1.04%)
frontend/dist-report/posthog-app/src/scenes/experiments/notebook/NotebookCompactTable 1.98 kB 0 B
frontend/dist-report/posthog-app/src/scenes/experiments/SharedMetrics/SharedMetric 12.3 kB -34 B (-0.28%)
frontend/dist-report/posthog-app/src/scenes/experiments/SharedMetrics/SharedMetrics 1.81 kB 0 B
frontend/dist-report/posthog-app/src/scenes/exports/ExportsScene 5.53 kB 0 B
frontend/dist-report/posthog-app/src/scenes/feature-flags/FeatureFlag 117 kB -34 B (-0.03%)
frontend/dist-report/posthog-app/src/scenes/feature-flags/FeatureFlags 3.87 kB 0 B
frontend/dist-report/posthog-app/src/scenes/groups/Group 23.4 kB -34 B (-0.14%)
frontend/dist-report/posthog-app/src/scenes/groups/Groups 9.45 kB -34 B (-0.36%)
frontend/dist-report/posthog-app/src/scenes/groups/GroupsNew 8.59 kB 0 B
frontend/dist-report/posthog-app/src/scenes/health-alerts/HealthAlertsScene 6.33 kB 0 B
frontend/dist-report/posthog-app/src/scenes/health/categoryDetail/HealthCategoryDetailScene 13.2 kB -34 B (-0.26%)
frontend/dist-report/posthog-app/src/scenes/health/HealthScene 17.1 kB -34 B (-0.2%)
frontend/dist-report/posthog-app/src/scenes/health/pipelineStatus/PipelineStatusScene 12.3 kB 0 B
frontend/dist-report/posthog-app/src/scenes/heatmaps/scenes/heatmap/HeatmapNewScene 6.35 kB 0 B
frontend/dist-report/posthog-app/src/scenes/heatmaps/scenes/heatmap/HeatmapRecordingScene 5.15 kB 0 B
frontend/dist-report/posthog-app/src/scenes/heatmaps/scenes/heatmap/HeatmapScene 7.93 kB 0 B
frontend/dist-report/posthog-app/src/scenes/heatmaps/scenes/heatmaps/HeatmapsScene 5.16 kB 0 B
frontend/dist-report/posthog-app/src/scenes/hog-functions/HogFunctionScene 60.6 kB -34 B (-0.06%)
frontend/dist-report/posthog-app/src/scenes/hog-functions/misc/Diff 1.35 kB 0 B
frontend/dist-report/posthog-app/src/scenes/inbox/InboxScene 211 kB -34 B (-0.02%)
frontend/dist-report/posthog-app/src/scenes/insights/InsightQuickStart/InsightQuickStart 8.12 kB 0 B
frontend/dist-report/posthog-app/src/scenes/insights/InsightScene 41 kB -34 B (-0.08%)
frontend/dist-report/posthog-app/src/scenes/insights/views/BoxPlot/BoxPlot 4.96 kB 0 B
frontend/dist-report/posthog-app/src/scenes/insights/views/CalendarHeatMap/CalendarHeatMap 9.26 kB 0 B
frontend/dist-report/posthog-app/src/scenes/insights/views/RegionMap/RegionMap 30.8 kB 0 B
frontend/dist-report/posthog-app/src/scenes/insights/views/WorldMap/WorldMap 6.13 kB 0 B
frontend/dist-report/posthog-app/src/scenes/instance/AsyncMigrations/AsyncMigrations 14.3 kB 0 B
frontend/dist-report/posthog-app/src/scenes/instance/DeadLetterQueue/DeadLetterQueue 6.65 kB 0 B
frontend/dist-report/posthog-app/src/scenes/instance/QueryPerformance/QueryPerformance 10.3 kB -857 B (-7.71%) ✅
frontend/dist-report/posthog-app/src/scenes/instance/SystemStatus/SystemStatus 18.1 kB 0 B
frontend/dist-report/posthog-app/src/scenes/integrations/IntegrationsLandingScene 1.64 kB 0 B
frontend/dist-report/posthog-app/src/scenes/IntegrationsRedirect/IntegrationsRedirect 921 B 0 B
frontend/dist-report/posthog-app/src/scenes/marketing-analytics/MarketingAnalyticsScene 46.8 kB -34 B (-0.07%)
frontend/dist-report/posthog-app/src/scenes/max/Max 20.5 kB -34 B (-0.17%)
frontend/dist-report/posthog-app/src/scenes/max/messages/adapters/CreateInsightWidget 6.96 kB -34 B (-0.49%)
frontend/dist-report/posthog-app/src/scenes/max/messages/adapters/CreateNotebookWidget 1.8 kB 0 B
frontend/dist-report/posthog-app/src/scenes/max/messages/adapters/EditDiffRenderer 3.23 kB 0 B
frontend/dist-report/posthog-app/src/scenes/max/messages/adapters/ErrorTrackingWidget 7.52 kB 0 B
frontend/dist-report/posthog-app/src/scenes/max/messages/adapters/QueryWidget 6.9 kB -34 B (-0.49%)
frontend/dist-report/posthog-app/src/scenes/max/messages/adapters/SearchSessionRecordingsWidget 7.55 kB 0 B
frontend/dist-report/posthog-app/src/scenes/max/messages/adapters/UpsertDashboardWidget 1.61 kB 0 B
frontend/dist-report/posthog-app/src/scenes/models/ModelsScene 19.6 kB 0 B
frontend/dist-report/posthog-app/src/scenes/models/NodeDetailScene 19.6 kB 0 B
frontend/dist-report/posthog-app/src/scenes/moveToPostHogCloud/MoveToPostHogCloud 4.5 kB 0 B
frontend/dist-report/posthog-app/src/scenes/new-tab/NewTabScene 2.76 kB 0 B
frontend/dist-report/posthog-app/src/scenes/notebooks/NotebookCanvasScene 12.2 kB -34 B (-0.28%)
frontend/dist-report/posthog-app/src/scenes/notebooks/NotebookPanel/NotebookPanel 14.2 kB -34 B (-0.24%)
frontend/dist-report/posthog-app/src/scenes/notebooks/NotebookScene 17.7 kB -34 B (-0.19%)
frontend/dist-report/posthog-app/src/scenes/notebooks/NotebooksScene 8.69 kB 0 B
frontend/dist-report/posthog-app/src/scenes/oauth/OAuthAuthorize 810 B 0 B
frontend/dist-report/posthog-app/src/scenes/onboarding/legacy/coupon/OnboardingCouponRedemption 1.34 kB 0 B
frontend/dist-report/posthog-app/src/scenes/onboarding/Onboarding 782 kB 0 B
frontend/dist-report/posthog-app/src/scenes/onboarding/shared/sdkHealth/SdkHealthScene 9.12 kB 0 B
frontend/dist-report/posthog-app/src/scenes/organization/ConfirmOrganization/ConfirmOrganization 4.5 kB 0 B
frontend/dist-report/posthog-app/src/scenes/organization/Create/Create 704 B 0 B
frontend/dist-report/posthog-app/src/scenes/organization/Deactivated 1.17 kB 0 B
frontend/dist-report/posthog-app/src/scenes/organization/PendingDeletion 2.24 kB 0 B
frontend/dist-report/posthog-app/src/scenes/persons/PersonScene 28.3 kB -34 B (-0.12%)
frontend/dist-report/posthog-app/src/scenes/persons/PersonsScene 11.7 kB -34 B (-0.29%)
frontend/dist-report/posthog-app/src/scenes/PreflightCheck/PreflightCheck 5.57 kB 0 B
frontend/dist-report/posthog-app/src/scenes/product-tours/ProductTour 273 kB -34 B (-0.01%)
frontend/dist-report/posthog-app/src/scenes/product-tours/ProductTours 5.97 kB 0 B
frontend/dist-report/posthog-app/src/scenes/project-homepage/ProjectHomepage 27.2 kB -34 B (-0.12%)
frontend/dist-report/posthog-app/src/scenes/project/Create/Create 982 B 0 B
frontend/dist-report/posthog-app/src/scenes/project/PendingDeletion 2.6 kB 0 B
frontend/dist-report/posthog-app/src/scenes/resource-transfer/ResourceTransfer 10.5 kB 0 B
frontend/dist-report/posthog-app/src/scenes/saved-insights/SavedInsights 3.43 kB 0 B
frontend/dist-report/posthog-app/src/scenes/session-recordings/detail/SessionRecordingDetail 8.55 kB 0 B
frontend/dist-report/posthog-app/src/scenes/session-recordings/file-playback/SessionRecordingFilePlaybackScene 11.2 kB 0 B
frontend/dist-report/posthog-app/src/scenes/session-recordings/kiosk/SessionRecordingsKiosk 16.6 kB 0 B
frontend/dist-report/posthog-app/src/scenes/session-recordings/player/modal/SessionPlayerModal 8.26 kB 0 B
frontend/dist-report/posthog-app/src/scenes/session-recordings/player/snapshot-processing/DecompressionWorkerManager 323 B 0 B
frontend/dist-report/posthog-app/src/scenes/session-recordings/playlist/SessionRecordingsPlaylistScene 11.7 kB 0 B
frontend/dist-report/posthog-app/src/scenes/session-recordings/SessionRecordings 7.68 kB 0 B
frontend/dist-report/posthog-app/src/scenes/session-recordings/settings/SessionRecordingsSettingsScene 8.91 kB 0 B
frontend/dist-report/posthog-app/src/scenes/sessions/SessionProfileScene 21.8 kB 0 B
frontend/dist-report/posthog-app/src/scenes/settings/SettingsMap 6.62 kB 0 B
frontend/dist-report/posthog-app/src/scenes/settings/SettingsScene 9.96 kB 0 B
frontend/dist-report/posthog-app/src/scenes/sites/Site 1.57 kB 0 B
frontend/dist-report/posthog-app/src/scenes/startups/StartupProgram 21.1 kB 0 B
frontend/dist-report/posthog-app/src/scenes/StripeConfirmInstall/StripeConfirmInstall 3.67 kB 0 B
frontend/dist-report/posthog-app/src/scenes/subscriptions/SubscriptionScene 17.5 kB 0 B
frontend/dist-report/posthog-app/src/scenes/subscriptions/SubscriptionsScene 6.99 kB 0 B
frontend/dist-report/posthog-app/src/scenes/surveys/forms/SurveyFormBuilder 3.02 kB 0 B
frontend/dist-report/posthog-app/src/scenes/surveys/Survey 7.44 kB -34 B (-0.45%)
frontend/dist-report/posthog-app/src/scenes/surveys/Surveys 27.7 kB 0 B
frontend/dist-report/posthog-app/src/scenes/surveys/wizard/SurveyWizard 69.7 kB 0 B
frontend/dist-report/posthog-app/src/scenes/themes/CustomCssScene 4.91 kB 0 B
frontend/dist-report/posthog-app/src/scenes/toolbar-launch/ToolbarLaunch 3.86 kB 0 B
frontend/dist-report/posthog-app/src/scenes/Unsubscribe/Unsubscribe 1.71 kB 0 B
frontend/dist-report/posthog-app/src/scenes/web-analytics/SessionAttributionExplorer/SessionAttributionExplorerScene 12.3 kB -34 B (-0.28%)
frontend/dist-report/posthog-app/src/scenes/web-analytics/WebAnalyticsScene 20.7 kB -34 B (-0.16%)
frontend/dist-report/posthog-app/src/scenes/wizard/Wizard 4.45 kB 0 B
frontend/dist-report/posthog-app/src/sharedChunkAnchors 1.33 kB 0 B

compressed-size-action

@scheduled-actions-posthog

This comment was marked as resolved.

@rodrigoi
rodrigoi force-pushed the experiments/breakdown-attribution-metric-row-group branch from 63649fa to 4285ee0 Compare June 16, 2026 22:54
@rodrigoi rodrigoi removed the stale label Jun 16, 2026
@scheduled-actions-posthog

This comment was marked as resolved.

@scheduled-actions-posthog

This comment was marked as resolved.

@rodrigoi rodrigoi added waiting Prevents stale-bot from marking the PR as stale. and removed stale labels Jul 3, 2026
@rodrigoi
rodrigoi force-pushed the experiments/breakdown-attribution-metric-row-group branch from 4285ee0 to 374ecbe Compare July 16, 2026 01:45
@github-actions

github-actions Bot commented Jul 16, 2026 •

Copy link
Copy Markdown
Contributor

🤖 CI report

⚠️ Bundle size — 🔺 +9.7 KiB (+0.0%)

Uncompressed size of every built .js bundle, compared against the base branch.

Total: 68.19 MiB · 🔺 +9.7 KiB (+0.0%)

File Size Δ vs base
render-query/src/render-query/render-query.js 21.82 MiB 🔺 +5.0 KiB (+0.0%)
posthog-app/src/scenes/experiments/Experiment.js 256.3 KiB 🔺 +3.5 KiB (+1.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.28 MiB · 22 files no change ███░░░░░░░ 28.4% of 4.51 MiB
authenticated shell (every logged-in page)
src/scenes/AuthenticatedShell.tsx
8.54 MiB · 3,144 files 🔺 +590 B (+0.0%) █████████░ 87.9% of 9.71 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/scenes/AuthenticatedShell.tsx
🟢 src/lib/components/ActivityLog/describers 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

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/RootErrorBoundary.tsx
912 B ../node_modules/.pnpm/ieee754@1.2.1/node_modules/ieee754/index.js
789 B src/scenes/ChunkLoadErrorBoundary.tsx
762 B src/index.tsx
Largest files eagerly shipped from src/scenes/AuthenticatedShell.tsx
Size File
304.7 KiB ../node_modules/.pnpm/posthog-js@1.417.1/node_modules/posthog-js/dist/rrweb.js
267.7 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
243.9 KiB ../node_modules/.pnpm/posthog-js@1.417.1/node_modules/posthog-js/dist/module.js
238.5 KiB src/taxonomy/core-filter-definitions-by-group.json
154.2 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
103.9 KiB src/lib/api.ts
95.0 KiB ../packages/quill/packages/quill/dist/index.js
93.3 KiB ../node_modules/.pnpm/prosemirror-view@1.40.1/node_modules/prosemirror-view/dist/index.js
90.6 KiB ../node_modules/.pnpm/@tiptap+core@3.20.6_@tiptap+pm@3.20.6/node_modules/@tiptap/core/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.23 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.23 MiB · 17 files 🔺 +72 B (+0.0%) ████░░░░░░ 38.9% of 5.72 MiB
Deferred (lazy) 2.08 MiB · 33 files no change n/a — loads on demand
Loader dist/toolbar.js 1.1 KiB no change █░░░░░░░░░ 5.8% of 19.5 KiB
Largest eagerly-shipped chunks
Size File
741.7 KiB dist/toolbar/toolbar-app-WKC4VBYK.css
565.6 KiB dist/toolbar/chunk-chunk-3WQDNPNI.js
484.6 KiB dist/toolbar/chunk-chunk-UISDLV4D.js
133.6 KiB dist/toolbar/chunk-chunk-KGYL6IWX.js
131.8 KiB dist/toolbar/chunk-chunk-T5KY5WYR.js
71.2 KiB dist/toolbar/toolbar-app-YPMSMIMY.js
69.0 KiB dist/toolbar/chunk-chunk-27JL52RE.js
35.6 KiB dist/toolbar/chunk-chunk-3HDUBWIR.js
20.9 KiB dist/toolbar/chunk-chunk-AYYGAPFX.js
12.2 KiB dist/toolbar/chunk-chunk-PIK3PADE.js

Posted automatically by check-toolbar-size · sizes are toolbar output bytes (shipped, post-tree-shake) from the esbuild metafile

✅ Dist folder size — 🔺 +120.1 KiB (+0.0%)

Total size of the built frontend/dist folder (all assets), compared against the base branch.

Total: 1442.59 MiB · 🔺 +120.1 KiB (+0.0%)

✅ Playwright — all passed

All tests passed.

View test results →

@trunk-io

trunk-io Bot commented Jul 16, 2026 •

Copy link
Copy Markdown

Static Badge   Static Badge   Static Badge

View Full Report ↗︎ ⋅ Docs

@rodrigoi
rodrigoi force-pushed the experiments/breakdown-attribution-metric-row-group branch 2 times, most recently from 860939e to af9db15 Compare July 16, 2026 20:48
@rodrigoi
rodrigoi marked this pull request as ready for review July 16, 2026 20:48
@rodrigoi
rodrigoi requested a review from a team July 16, 2026 20:48
@github-actions

github-actions Bot commented Jul 16, 2026 •

Copy link
Copy Markdown
Contributor

🦔 Hogbox preview · ✅ ready

▶ Open the preview

🔑 Login test@posthog.com / 12345678 (demo data)
🧩 Running this PR's backend and frontend, on the PostHog :master base
🔗 Link stable across rebuilds — a re-push swaps the box underneath, the URL stays
🔒 Access tailnet only (PostHog VPN)
🛠️ Admin inspect & debug state in hogland
💤 Idle sleeps after ~30 min idle (snapshot to S3, zero node cost) and wakes on your next visit in ~30s, behind a brief "waking up" screen

commit 7576a14 · box box-dec8c5f0555e · ready in 608s (push → usable) · build log · rebuilds on every push, torn down on close

@greptile-apps

greptile-apps Bot commented Jul 16, 2026

Copy link
Copy Markdown
Contributor

Reviews (1): Last reviewed commit: "fix(experiments): removing em-dashes fro..." | Re-trigger Greptile

@trunk-io

trunk-io Bot commented Jul 28, 2026

Copy link
Copy Markdown

Merging to master in this repository is managed by Trunk.

  • To merge this pull request, check the box to the left or comment /trunk merge below.

After your PR is submitted to the merge queue, this comment will be automatically updated with its status. If the PR fails, failure details will also be posted here

@scheduled-actions-posthog

Copy link
Copy Markdown
Contributor

This PR hasn't seen activity in a week! Should it be merged, closed, or further worked on? If you want to keep it open, please remove the stale label – otherwise this will be closed in another week. If you want to permanently keep it open, use the waiting label.

@rodrigoi rodrigoi added waiting Prevents stale-bot from marking the PR as stale. and removed stale labels Aug 7, 2026
@rodrigoi
rodrigoi force-pushed the experiments/breakdown-attribution-metric-row-group branch from 440324d to 0adb791 Compare August 14, 2026 21:21
@posthog

posthog Bot commented Aug 15, 2026 •

Copy link
Copy Markdown
Contributor

🦔 ReviewHog reviewed this pull request

Found 0 must fix, 1 should fix, 1 consider.

Published 2 findings (view the review).

@posthog

posthog Bot commented Aug 15, 2026

Copy link
Copy Markdown
Contributor

ReviewHog Alpha 🦔 If you find any issues helpful - please reply "valid", "invalid", etc., for evaluation purposes 🙏

@posthog posthog Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ReviewHog Report

Found 1 should fix, 1 consider.

Comment on lines +284 to +293
<div
// Prevent the attribution dropdown (and chip close) from toggling the collapse.
onClick={(e) => e.stopPropagation()}
>
<BreakdownChipsRow
metric={metric}
onRemoveBreakdown={onRemoveBreakdown}
onAttributionChange={onAttributionChange}
onBreakdownLimitChange={onBreakdownLimitChange}
/>

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The collapse header contains nested buttons

consider accessibility

Why we think it's a valid issue
  • Checked: how LemonCollapse renders a panel header, what LemonSelect renders, and whether the nesting is new or pre-existing in this component.
  • Found: the premise holds. LemonCollapsePanel wraps headerChildren in a LemonButton — frontend/src/lib/lemon-ui/LemonCollapse/LemonCollapse.tsx:151-166 for the expandable case, :167-174 for the disabled case. LemonSelect renders its trigger as a LemonButton (frontend/src/lib/lemon-ui/LemonSelect/LemonSelect.tsx:157), which emits a real <button>. So MetricBreakdownAttribution and MetricBreakdownLimit both land inside the header <button> at MetricRowGroup.tsx:284-293.
  • Found: React's dev-mode validateDOMNesting treats <button> inside <button> as invalid and logs a warning on every render of an expanded metric row.
  • Found: LemonUI already supplies the sibling-control API the suggestion asks for. LemonCollapse accepts header as LemonButtonProps (LemonCollapse.tsx:15 and :140-144), and sideAction renders the extra control as a sibling of the toggle inside a wrapper div, not a descendant (frontend/src/lib/lemon-ui/LemonButton/LemonButton.tsx:312-338). frontend/src/scenes/hog-functions/mapping/HogFunctionMappings.tsx:311-336 uses that pattern. So the fix is available without new component work.
  • Found: the nesting is not introduced by this PR. On master the same header already rendered BreakdownTag with onClose, which emits a nested LemonButton close control (frontend/src/scenes/insights/filters/BreakdownFilter/BreakdownTag.tsx:183-195). The PR extends an existing defect rather than creating one.
  • Impact: confirmed invalid markup and muddied accessible-name computation for the header button, plus React dev warnings. There is no functional break for mouse or keyboard users: the wrapper onClick stops the click before it reaches the toggle handler, and the select's popover renders in a portal outside the button.
  • Priority: lowered to consider. The defect is real and deterministic, but it predates the PR in the same header, it breaks no user-visible behavior, and the two added controls widen an existing condition rather than opening a new failure mode.
Issue description

LemonCollapse renders its header as a LemonButton. Both new selectors also render LemonButton controls. This creates invalid nested button markup and unclear screen-reader semantics. Stopping click propagation does not fix the HTML structure.

Suggested fix

Render the selectors outside the collapse toggle button. Alternatively, update the header API to render the toggle and its actions as sibling controls.

Prompt to fix with AI (copy-paste)
## Context
@frontend/src/scenes/experiments/MetricsView/new/MetricRowGroup.tsx#L284-293

<issue_description>
LemonCollapse renders its header as a LemonButton. Both new selectors also render LemonButton controls. This creates invalid nested button markup and unclear screen-reader semantics. Stopping click propagation does not fix the HTML structure.
</issue_description>

<issue_validation>
- **Checked:** how `LemonCollapse` renders a panel header, what `LemonSelect` renders, and whether the nesting is new or pre-existing in this component.
- **Found:** the premise holds. `LemonCollapsePanel` wraps `headerChildren` in a `LemonButton` — `frontend/src/lib/lemon-ui/LemonCollapse/LemonCollapse.tsx:151-166` for the expandable case, `:167-174` for the disabled case. `LemonSelect` renders its trigger as a `LemonButton` (`frontend/src/lib/lemon-ui/LemonSelect/LemonSelect.tsx:157`), which emits a real `<button>`. So `MetricBreakdownAttribution` and `MetricBreakdownLimit` both land inside the header `<button>` at `MetricRowGroup.tsx:284-293`.
- **Found:** React's dev-mode `validateDOMNesting` treats `<button>` inside `<button>` as invalid and logs a warning on every render of an expanded metric row.
- **Found:** LemonUI already supplies the sibling-control API the suggestion asks for. `LemonCollapse` accepts `header` as `LemonButtonProps` (`LemonCollapse.tsx:15` and `:140-144`), and `sideAction` renders the extra control as a sibling of the toggle inside a wrapper div, not a descendant (`frontend/src/lib/lemon-ui/LemonButton/LemonButton.tsx:312-338`). `frontend/src/scenes/hog-functions/mapping/HogFunctionMappings.tsx:311-336` uses that pattern. So the fix is available without new component work.
- **Found:** the nesting is not introduced by this PR. On master the same header already rendered `BreakdownTag` with `onClose`, which emits a nested `LemonButton` close control (`frontend/src/scenes/insights/filters/BreakdownFilter/BreakdownTag.tsx:183-195`). The PR extends an existing defect rather than creating one.
- **Impact:** confirmed invalid markup and muddied accessible-name computation for the header button, plus React dev warnings. There is no functional break for mouse or keyboard users: the wrapper `onClick` stops the click before it reaches the toggle handler, and the select's popover renders in a portal outside the button.
- **Priority:** lowered to `consider`. The defect is real and deterministic, but it predates the PR in the same header, it breaks no user-visible behavior, and the two added controls widen an existing condition rather than opening a new failure mode.
</issue_validation>

## Task
Investigate the issue and solve it

<potential_solution>
Render the selectors outside the collapse toggle button. Alternatively, update the header API to render the toggle and its actions as sibling controls.
</potential_solution>

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Confirmed: the collapse header is always rendered inside a LemonButton (LemonCollapse has no non-button header variant), so the attribution/limit LemonSelect triggers and the chip close buttons do end up as nested <button>s. Stopping click propagation avoids the toggle firing but doesn't change the HTML nesting or the accessible-name computation, as you note.

I'm escalating rather than fixing this unattended, for two reasons. First, this isn't new to the PR — the header already nested a button on master (the breakdown chip's close control), so this change widens an existing condition rather than opening a new one, and there's no functional break for mouse or keyboard users. Second, the two clean fixes are both bigger than a mechanical change: moving the controls out of the collapse header is a layout decision whose result needs to be eyeballed, and the sideAction route doesn't fit here — sideAction renders its contents inside a second LemonButton, so a whole chips-plus-two-selects row would just re-nest the same buttons. A proper sibling-controls fix means either restructuring this header's layout or extending the shared LemonCollapse header API, which reaches beyond this PR's scope.

Decision for a human: whether to invest in restructuring the breakdown row so the interactive controls render as siblings of the collapse toggle (and if so, header-layout change here vs. a LemonCollapse API addition), or to accept the pre-existing nesting as-is.

The updateMetricAttribution and updateMetricBreakdownLimit listeners fired a
recalculation immediately after dispatching updateExperiment without awaiting it.
The updateExperiment loader defers its PATCH into a microtask, so the recalculation
request left the browser before the save, and a failed save (e.g. a version conflict)
still kicked off a recalculation that recomputed with the old attribution or limit.

Await asyncActions.updateExperiment before triggering the recalculation, matching the
existing pattern in changeExperimentStartDate, changeExperimentEndDate, and
updateExperimentSettings. On a failed save the recalculation no longer runs.

Generated-By: PostHog Desktop
Task-Id: 4c96df3c-fa46-4fb2-908a-a95cd926252e
@rodrigoi

Copy link
Copy Markdown
Member Author

closed in favor of #84861, #84867, #85122 and #86544

@rodrigoi rodrigoi closed this Aug 21, 2026

This branch was successfully deployed

1 active deployment
preview-pr-61788 — 7576a14b Deployed Aug 15, 2026 by github-actions[bot]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

waiting Prevents stale-bot from marking the PR as stale.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants