Skip to content

feat(experiments): update experiment serializer and service to handle excluded variants#60005

Merged
rodrigoi merged 7 commits into
masterfrom
experiments/exclude-variant-from-experiment-api-serializers
May 29, 2026
Merged

feat(experiments): update experiment serializer and service to handle excluded variants#60005
rodrigoi merged 7 commits into
masterfrom
experiments/exclude-variant-from-experiment-api-serializers

Conversation

@rodrigoi
Copy link
Copy Markdown
Member

@rodrigoi rodrigoi commented May 26, 2026

Problem

The frontend needs a backend contract for excluding test variants from experiment analysis. This PR adds that contract on the serializer and service layer so the API accepts, validates, and persists an excluded_variants list on Experiment.parameters, and downstream code paths (fingerprinting, recompute) thread it through.

Changes

This PR is the API + service entry point of the excluded-variants feature. It validates user input, documents the new parameter on the generated TypeScript / MCP schemas, and propagates the list into metric fingerprint computation so cached results invalidate when the exclusion set changes.

Validation

ExperimentService.validate_experiment_parameters enforces the invariants that protect downstream code from bad input:

  • excluded_variants must be a list of strings.
  • The baseline variant (defaults to control, overridable via stats_config.baseline_variant_key) cannot be excluded.
  • Holdout pseudo-variants (holdout-*) cannot be excluded - they have their own opt-out mechanism.
  • Unknown variant keys are rejected.
  • At least one non-baseline variant must remain, otherwise the analysis has nothing to compare against.

All rejections collect every offender in the message rather than stopping at the first, which is friendlier for API and MCP callers fixing a batch payload.

  • products/experiments/backend/experiment_service.py
  • products/experiments/backend/test/test_experiment_service.py

Serializer

The parameters field's help_text is rewritten to enumerate all supported keys and document excluded_variants semantics, so the new field surfaces correctly in the generated OpenAPI schema and downstream MCP tool definitions. The serializer also threads excluded_variants into _recompute_fingerprints during updates.

  • products/experiments/backend/presentation/serializers.py

Fingerprint propagation

_recompute_fingerprints accepts the new excluded_variants kwarg and forwards it to compute_metric_fingerprint. Every call site within the service (create, update, fingerprint recompute) passes the value pulled from (experiment.parameters or {}).get(\"excluded_variants\"). Without this, the fingerprint would not invalidate when the exclusion list changes, leaving stale ExperimentMetricResult rows in the cache.

Generated artifacts

Help text and validation propagate into the OpenAPI / MCP surface via hogli build:openapi. Regenerated files:

  • products/experiments/frontend/generated/api.schemas.ts (generated)
  • services/mcp/src/api/generated.ts (generated)
  • services/mcp/src/generated/experiments/api.ts (generated)
  • services/mcp/tests/unit/__snapshots__/tool-schemas/common/experiment-create.json (generated)
  • services/mcp/tests/unit/__snapshots__/tool-schemas/common/experiment-duplicate.json (generated)
  • services/mcp/tests/unit/__snapshots__/tool-schemas/common/experiment-update.json (generated)

How did you test this code?

pnpm turbo run backend:test --filter=@posthog/products-experiments

cat-type-small

Publish to changelog?

no

🤖 Agent context

Model: Opus 4.7
Manually refactored: yes
Skills used:

  • /brainstorming (superpowers)
  • /writing-plans (superpowers)
  • /subagent-driven-development (superpowers)
  • /test-driven-development (superpowers)
  • /improving-drf-endpoints (local)

Relevant decisions:

  • Storage on Experiment.parameters.excluded_variants: string[], keyed by variant key rather than ID, so the schema travels through the planned deprecation of feature_flag_variants (variant keys remain the stable identifier).
  • Validator uses set operations and reports every offender at once instead of bailing at the first invalid entry. Better DX for API and MCP callers fixing batch payloads.
  • Cache fingerprint includes excluded_variants (sorted, for determinism) so changing the list invalidates ExperimentMetricResult rows. Threaded through _recompute_fingerprints to every create / update / recompute path.

@tests-posthog

This comment was marked as outdated.

@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented May 26, 2026

Size Change: +17.1 kB (+0.02%)

Total Size: 80.8 MB

📦 View Changed
Filename Size Change
frontend/dist-report/exporter/_chunks/chunk 8.42 MB +5.7 kB (+0.07%)
frontend/dist-report/exporter/src/exporter/scenes/ExporterNotebookScene 2.71 MB -1.22 kB (-0.05%)
frontend/dist-report/posthog-app/_chunks/chunk 8.63 MB +5.7 kB (+0.07%)
frontend/dist-report/render-query/src/render-query/render-query 27.4 MB +5.75 kB (+0.02%)
frontend/dist-report/toolbar/src/toolbar/toolbar 15.7 MB +1.16 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 24.9 kB -34 B (-0.14%)
frontend/dist-report/exporter/_parent/products/actions/frontend/pages/Actions 1.3 kB -34 B (-2.55%)
frontend/dist-report/exporter/_parent/products/ai_observability/frontend/AIObservabilityScene 118 kB -34 B (-0.03%)
frontend/dist-report/exporter/_parent/products/ai_observability/frontend/AIObservabilitySessionScene 18.3 kB -34 B (-0.19%)
frontend/dist-report/exporter/_parent/products/ai_observability/frontend/AIObservabilityTraceScene 130 kB -40 B (-0.03%)
frontend/dist-report/exporter/_parent/products/ai_observability/frontend/AIObservabilityUsers 838 B -34 B (-3.9%)
frontend/dist-report/exporter/_parent/products/ai_observability/frontend/clusters/AIObservabilityClusterScene 21.7 kB -34 B (-0.16%)
frontend/dist-report/exporter/_parent/products/ai_observability/frontend/clusters/AIObservabilityClustersScene 55 kB -34 B (-0.06%)
frontend/dist-report/exporter/_parent/products/ai_observability/frontend/datasets/AIObservabilityDatasetScene 20.9 kB -34 B (-0.16%)
frontend/dist-report/exporter/_parent/products/ai_observability/frontend/datasets/AIObservabilityDatasetsScene 3.6 kB -34 B (-0.93%)
frontend/dist-report/exporter/_parent/products/ai_observability/frontend/evaluations/AIObservabilityEvaluation 59.8 kB -34 B (-0.06%)
frontend/dist-report/exporter/_parent/products/ai_observability/frontend/evaluations/AIObservabilityEvaluationsScene 28.1 kB -34 B (-0.12%)
frontend/dist-report/exporter/_parent/products/ai_observability/frontend/evaluations/EvaluationTemplates 881 B -34 B (-3.72%)
frontend/dist-report/exporter/_parent/products/ai_observability/frontend/LLMASessionFeedbackDisplay 5.16 kB -34 B (-0.65%)
frontend/dist-report/exporter/_parent/products/ai_observability/frontend/playground/AIObservabilityPlaygroundScene 37.7 kB -34 B (-0.09%)
frontend/dist-report/exporter/_parent/products/ai_observability/frontend/prompts/LLMPromptScene 29.1 kB -34 B (-0.12%)
frontend/dist-report/exporter/_parent/products/ai_observability/frontend/prompts/LLMPromptsScene 4.79 kB -34 B (-0.7%)
frontend/dist-report/exporter/_parent/products/ai_observability/frontend/skills/LLMSkillScene 895 B -34 B (-3.66%)
frontend/dist-report/exporter/_parent/products/ai_observability/frontend/skills/LLMSkillsScene 912 B -34 B (-3.59%)
frontend/dist-report/exporter/_parent/products/ai_observability/frontend/tags/AIObservabilityTag 27.3 kB -34 B (-0.12%)
frontend/dist-report/exporter/_parent/products/ai_observability/frontend/tags/AIObservabilityTagsScene 7.27 kB -34 B (-0.47%)
frontend/dist-report/exporter/_parent/products/business_knowledge/frontend/scenes/BusinessKnowledgeScene 19 kB -34 B (-0.18%)
frontend/dist-report/exporter/_parent/products/conversations/frontend/components/Assignee/CyclotronJobInputAssignee 1.64 kB -34 B (-2.03%)
frontend/dist-report/exporter/_parent/products/conversations/frontend/components/SlaBusinessHours/CyclotronJobInputBusinessHours 3.02 kB -34 B (-1.11%)
frontend/dist-report/exporter/_parent/products/conversations/frontend/components/TicketTags/CyclotronJobInputTicketTags 1.02 kB -34 B (-3.22%)
frontend/dist-report/exporter/_parent/products/conversations/frontend/scenes/settings/SupportSettingsScene 1.78 kB -34 B (-1.87%)
frontend/dist-report/exporter/_parent/products/conversations/frontend/scenes/ticket/SupportTicketScene 33.9 kB -34 B (-0.1%)
frontend/dist-report/exporter/_parent/products/conversations/frontend/scenes/tickets/SupportTicketsScene 1.04 kB -34 B (-3.17%)
frontend/dist-report/exporter/_parent/products/customer_analytics/frontend/CustomerAnalyticsScene 45.2 kB -34 B (-0.08%)
frontend/dist-report/exporter/_parent/products/customer_analytics/frontend/scenes/CustomerAnalyticsConfigurationScene/CustomerAnalyticsConfigurationScene 2.61 kB -34 B (-1.28%)
frontend/dist-report/exporter/_parent/products/customer_analytics/frontend/scenes/CustomerJourneyBuilderScene/CustomerJourneyBuilderScene 2.15 kB -34 B (-1.56%)
frontend/dist-report/exporter/_parent/products/customer_analytics/frontend/scenes/CustomerJourneyTemplatesScene/CustomerJourneyTemplatesScene 7.83 kB -34 B (-0.43%)
frontend/dist-report/exporter/_parent/products/data_warehouse/DataWarehouseScene 46.8 kB -34 B (-0.07%)
frontend/dist-report/exporter/_parent/products/data_warehouse/frontend/scenes/NewSourceScene/NewSourceScene 1.08 kB -34 B (-3.05%)
frontend/dist-report/exporter/_parent/products/data_warehouse/frontend/scenes/SchemaScene/SchemaScene 24.4 kB -34 B (-0.14%)
frontend/dist-report/exporter/_parent/products/data_warehouse/frontend/scenes/SourceScene/SourceScene 1.03 kB -34 B (-3.2%)
frontend/dist-report/exporter/_parent/products/data_warehouse/frontend/scenes/SourcesScene/SourcesScene 6.27 kB -34 B (-0.54%)
frontend/dist-report/exporter/_parent/products/deployments/frontend/Deployment 4.02 kB -34 B (-0.84%)
frontend/dist-report/exporter/_parent/products/deployments/frontend/DeploymentProject 5.54 kB -34 B (-0.61%)
frontend/dist-report/exporter/_parent/products/deployments/frontend/Deployments 9.28 kB -34 B (-0.37%)
frontend/dist-report/exporter/_parent/products/early_access_features/frontend/EarlyAccessFeature 991 B -34 B (-3.32%)
frontend/dist-report/exporter/_parent/products/early_access_features/frontend/EarlyAccessFeatures 3.21 kB -34 B (-1.05%)
frontend/dist-report/exporter/_parent/products/endpoints/frontend/EndpointScene 40.6 kB -34 B (-0.08%)
frontend/dist-report/exporter/_parent/products/endpoints/frontend/EndpointsScene 24.5 kB -34 B (-0.14%)
frontend/dist-report/exporter/_parent/products/error_tracking/frontend/scenes/ErrorTrackingFingerprintsScene/ErrorTrackingIssueFingerprintsScene 7.37 kB -34 B (-0.46%)
frontend/dist-report/exporter/_parent/products/error_tracking/frontend/scenes/ErrorTrackingIssueScene/ErrorTrackingIssueScene 104 kB -34 B (-0.03%)
frontend/dist-report/exporter/_parent/products/error_tracking/frontend/scenes/ErrorTrackingScene/ErrorTrackingScene 27.1 kB -34 B (-0.13%)
frontend/dist-report/exporter/_parent/products/feature_flags/frontend/FeatureFlagTemplatesScene 7.35 kB -34 B (-0.46%)
frontend/dist-report/exporter/_parent/products/games/368Hedgehogs/368Hedgehogs 5.58 kB -34 B (-0.61%)
frontend/dist-report/exporter/_parent/products/games/FlappyHog/FlappyHog 6.09 kB -34 B (-0.56%)
frontend/dist-report/exporter/_parent/products/legal_documents/frontend/scenes/LegalDocumentNewScene 59.7 kB -34 B (-0.06%)
frontend/dist-report/exporter/_parent/products/legal_documents/frontend/scenes/LegalDocumentsScene 5.28 kB -34 B (-0.64%)
frontend/dist-report/exporter/_parent/products/links/frontend/LinkScene 25.2 kB -34 B (-0.13%)
frontend/dist-report/exporter/_parent/products/links/frontend/LinksScene 4.51 kB -34 B (-0.75%)
frontend/dist-report/exporter/_parent/products/live_debugger/frontend/LiveDebugger 19.4 kB -34 B (-0.17%)
frontend/dist-report/exporter/_parent/products/logs/frontend/LogsScene 17.8 kB -34 B (-0.19%)
frontend/dist-report/exporter/_parent/products/logs/frontend/scenes/LogsAlertDetailScene/LogsAlertDetailScene 17.3 kB -34 B (-0.2%)
frontend/dist-report/exporter/_parent/products/logs/frontend/scenes/LogsSamplingDetailScene/LogsSamplingDetailScene 5.27 kB -34 B (-0.64%)
frontend/dist-report/exporter/_parent/products/logs/frontend/scenes/LogsSamplingNewScene/LogsSamplingNewScene 2.22 kB -34 B (-1.51%)
frontend/dist-report/exporter/_parent/products/managed_migrations/frontend/ManagedMigration 14.9 kB -34 B (-0.23%)
frontend/dist-report/exporter/_parent/products/mcp_analytics/frontend/MCPAnalyticsScene 40.5 kB -34 B (-0.08%)
frontend/dist-report/exporter/_parent/products/mcp_analytics/frontend/MCPAnalyticsToolDetail 18.5 kB -34 B (-0.18%)
frontend/dist-report/exporter/_parent/products/metrics/frontend/MetricsScene 16.2 kB -34 B (-0.21%)
frontend/dist-report/exporter/_parent/products/product_analytics/frontend/insights/stickiness/StickinessBarChart/StickinessBarChart 3.27 kB -34 B (-1.03%)
frontend/dist-report/exporter/_parent/products/product_analytics/frontend/insights/stickiness/StickinessLineChart/StickinessLineChart 3.11 kB -34 B (-1.08%)
frontend/dist-report/exporter/_parent/products/product_analytics/frontend/insights/trends/TrendsBarChart/TrendsBarChart 7.33 kB -34 B (-0.46%)
frontend/dist-report/exporter/_parent/products/product_analytics/frontend/insights/trends/TrendsLifecycleChart/TrendsLifecycleChart 4.21 kB -34 B (-0.8%)
frontend/dist-report/exporter/_parent/products/product_analytics/frontend/insights/trends/TrendsLineChart/TrendsLineChart 4.57 kB -34 B (-0.74%)
frontend/dist-report/exporter/_parent/products/product_analytics/frontend/insights/trends/TrendsPieChart/TrendsPieChart 4.31 kB -34 B (-0.78%)
frontend/dist-report/exporter/_parent/products/replay_vision/frontend/observations/ReplayObservation 8.13 kB -34 B (-0.42%)
frontend/dist-report/exporter/_parent/products/replay_vision/frontend/replay_scanners/ReplayScanner 32.8 kB -34 B (-0.1%)
frontend/dist-report/exporter/_parent/products/replay_vision/frontend/replay_scanners/ReplayScannersScene 11.5 kB -34 B (-0.29%)
frontend/dist-report/exporter/_parent/products/replay_vision/frontend/replay_scanners/ScannerTemplatesScene 4.56 kB -34 B (-0.74%)
frontend/dist-report/exporter/_parent/products/revenue_analytics/frontend/RevenueAnalyticsScene 26.5 kB -34 B (-0.13%)
frontend/dist-report/exporter/_parent/products/session_summaries/frontend/SessionGroupSummariesTable 5.02 kB -34 B (-0.67%)
frontend/dist-report/exporter/_parent/products/session_summaries/frontend/SessionGroupSummaryScene 19.2 kB -34 B (-0.18%)
frontend/dist-report/exporter/_parent/products/tasks/frontend/SlackTaskContextScene 8.84 kB -34 B (-0.38%)
frontend/dist-report/exporter/_parent/products/tasks/frontend/TaskDetailScene 23.8 kB -34 B (-0.14%)
frontend/dist-report/exporter/_parent/products/tasks/frontend/TaskTracker 14.6 kB -34 B (-0.23%)
frontend/dist-report/exporter/_parent/products/tracing/frontend/TracingScene 54.4 kB -34 B (-0.06%)
frontend/dist-report/exporter/_parent/products/user_interviews/frontend/UserInterview 9.28 kB -34 B (-0.36%)
frontend/dist-report/exporter/_parent/products/user_interviews/frontend/UserInterviewResponse 5.64 kB -34 B (-0.6%)
frontend/dist-report/exporter/_parent/products/user_interviews/frontend/UserInterviews 6.04 kB -34 B (-0.56%)
frontend/dist-report/exporter/_parent/products/visual_review/frontend/scenes/VisualReviewIndexScene 2.52 kB -34 B (-1.33%)
frontend/dist-report/exporter/_parent/products/visual_review/frontend/scenes/VisualReviewRunScene 44.6 kB -34 B (-0.08%)
frontend/dist-report/exporter/_parent/products/visual_review/frontend/scenes/VisualReviewRunsScene 7.29 kB -34 B (-0.46%)
frontend/dist-report/exporter/_parent/products/visual_review/frontend/scenes/VisualReviewSettingsScene 11.1 kB -34 B (-0.31%)
frontend/dist-report/exporter/_parent/products/visual_review/frontend/scenes/VisualReviewSnapshotHistoryScene 13.9 kB -34 B (-0.24%)
frontend/dist-report/exporter/_parent/products/visual_review/frontend/scenes/VisualReviewSnapshotOverviewScene 19.5 kB -34 B (-0.17%)
frontend/dist-report/exporter/_parent/products/workflows/frontend/TemplateLibrary/MessageTemplate 16.6 kB -34 B (-0.2%)
frontend/dist-report/exporter/_parent/products/workflows/frontend/Workflows/WorkflowScene 111 kB -34 B (-0.03%)
frontend/dist-report/exporter/_parent/products/workflows/frontend/WorkflowsScene 60.1 kB -34 B (-0.06%)
frontend/dist-report/exporter/src/exporter/exporter 19.6 kB -34 B (-0.17%)
frontend/dist-report/exporter/src/exporter/scenes/ExporterDashboardScene 1.99 kB -34 B (-1.68%)
frontend/dist-report/exporter/src/exporter/scenes/ExporterHeatmapScene 19.9 kB -34 B (-0.17%)
frontend/dist-report/exporter/src/exporter/scenes/ExporterInsightScene 2.98 kB -34 B (-1.13%)
frontend/dist-report/exporter/src/exporter/scenes/ExporterInterviewScene 310 kB -34 B (-0.01%)
frontend/dist-report/exporter/src/exporter/scenes/ExporterRecordingScene 1.1 kB -34 B (-3.01%)
frontend/dist-report/exporter/src/exporterSharedChunkAnchors 1.19 kB 0 B
frontend/dist-report/exporter/src/lib/components/Cards/TextCard/TextCardMarkdownEditor 11.3 kB -34 B (-0.3%)
frontend/dist-report/exporter/src/lib/components/MonacoDiffEditor 471 B 0 B
frontend/dist-report/exporter/src/lib/lemon-ui/LemonMarkdown/MermaidDiagram 2.22 kB -34 B (-1.51%)
frontend/dist-report/exporter/src/lib/lemon-ui/LemonTextArea/LemonTextAreaMarkdown 808 B -34 B (-4.04%)
frontend/dist-report/exporter/src/lib/lemon-ui/Link/Link 359 B 0 B
frontend/dist-report/exporter/src/lib/monaco/CodeEditorInline 798 B -34 B (-4.09%)
frontend/dist-report/exporter/src/lib/monaco/vimMode 211 kB 0 B
frontend/dist-report/exporter/src/lib/ui/Button/ButtonPrimitives 422 B 0 B
frontend/dist-report/exporter/src/queries/nodes/WebVitals/WebVitals 7.48 kB -34 B (-0.45%)
frontend/dist-report/exporter/src/queries/nodes/WebVitals/WebVitalsPathBreakdown 4.05 kB -34 B (-0.83%)
frontend/dist-report/exporter/src/queries/schema 850 kB 0 B
frontend/dist-report/exporter/src/scenes/approvals/changeRequestsLogic 850 B -34 B (-3.85%)
frontend/dist-report/exporter/src/scenes/authentication/passkeyLogic 790 B -34 B (-4.13%)
frontend/dist-report/exporter/src/scenes/data-pipelines/event-filtering/EventFilterScene 22.2 kB -34 B (-0.15%)
frontend/dist-report/exporter/src/scenes/data-pipelines/TransformationsScene 6.51 kB -34 B (-0.52%)
frontend/dist-report/exporter/src/scenes/insights/views/BoxPlot/BoxPlot 5.35 kB -34 B (-0.63%)
frontend/dist-report/exporter/src/scenes/insights/views/CalendarHeatMap/CalendarHeatMap 8.81 kB -34 B (-0.38%)
frontend/dist-report/exporter/src/scenes/insights/views/RegionMap/RegionMap 29.7 kB -34 B (-0.11%)
frontend/dist-report/exporter/src/scenes/insights/views/WorldMap/WorldMap 1.04 MB -34 B (0%)
frontend/dist-report/exporter/src/scenes/models/ModelsScene 19 kB -34 B (-0.18%)
frontend/dist-report/exporter/src/scenes/models/NodeDetailScene 17 kB -34 B (-0.2%)
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 25.1 kB -34 B (-0.14%)
frontend/dist-report/posthog-app/_parent/products/actions/frontend/pages/Actions 1.36 kB -34 B (-2.43%)
frontend/dist-report/posthog-app/_parent/products/ai_observability/frontend/AIObservabilityScene 119 kB -34 B (-0.03%)
frontend/dist-report/posthog-app/_parent/products/ai_observability/frontend/AIObservabilitySessionScene 18.3 kB -34 B (-0.19%)
frontend/dist-report/posthog-app/_parent/products/ai_observability/frontend/AIObservabilityTraceScene 130 kB -34 B (-0.03%)
frontend/dist-report/posthog-app/_parent/products/ai_observability/frontend/AIObservabilityUsers 872 B -34 B (-3.75%)
frontend/dist-report/posthog-app/_parent/products/ai_observability/frontend/clusters/AIObservabilityClusterScene 21.7 kB -34 B (-0.16%)
frontend/dist-report/posthog-app/_parent/products/ai_observability/frontend/clusters/AIObservabilityClustersScene 55.1 kB -34 B (-0.06%)
frontend/dist-report/posthog-app/_parent/products/ai_observability/frontend/datasets/AIObservabilityDatasetScene 21 kB -34 B (-0.16%)
frontend/dist-report/posthog-app/_parent/products/ai_observability/frontend/datasets/AIObservabilityDatasetsScene 3.64 kB -34 B (-0.93%)
frontend/dist-report/posthog-app/_parent/products/ai_observability/frontend/evaluations/AIObservabilityEvaluation 59.9 kB -34 B (-0.06%)
frontend/dist-report/posthog-app/_parent/products/ai_observability/frontend/evaluations/AIObservabilityEvaluationsScene 28.2 kB -34 B (-0.12%)
frontend/dist-report/posthog-app/_parent/products/ai_observability/frontend/evaluations/EvaluationTemplates 915 B -34 B (-3.58%)
frontend/dist-report/posthog-app/_parent/products/ai_observability/frontend/LLMASessionFeedbackDisplay 5.19 kB -34 B (-0.65%)
frontend/dist-report/posthog-app/_parent/products/ai_observability/frontend/playground/AIObservabilityPlaygroundScene 37.8 kB -34 B (-0.09%)
frontend/dist-report/posthog-app/_parent/products/ai_observability/frontend/prompts/LLMPromptScene 29.2 kB -34 B (-0.12%)
frontend/dist-report/posthog-app/_parent/products/ai_observability/frontend/prompts/LLMPromptsScene 4.83 kB -34 B (-0.7%)
frontend/dist-report/posthog-app/_parent/products/ai_observability/frontend/skills/LLMSkillScene 929 B -34 B (-3.53%)
frontend/dist-report/posthog-app/_parent/products/ai_observability/frontend/skills/LLMSkillsScene 946 B -34 B (-3.47%)
frontend/dist-report/posthog-app/_parent/products/ai_observability/frontend/tags/AIObservabilityTag 27.4 kB -34 B (-0.12%)
frontend/dist-report/posthog-app/_parent/products/ai_observability/frontend/tags/AIObservabilityTagsScene 7.31 kB -34 B (-0.46%)
frontend/dist-report/posthog-app/_parent/products/business_knowledge/frontend/scenes/BusinessKnowledgeScene 19 kB -34 B (-0.18%)
frontend/dist-report/posthog-app/_parent/products/conversations/frontend/components/Assignee/CyclotronJobInputAssignee 1.67 kB -34 B (-1.99%)
frontend/dist-report/posthog-app/_parent/products/conversations/frontend/components/SlaBusinessHours/CyclotronJobInputBusinessHours 3.06 kB -34 B (-1.1%)
frontend/dist-report/posthog-app/_parent/products/conversations/frontend/components/TicketTags/CyclotronJobInputTicketTags 1.06 kB -34 B (-3.12%)
frontend/dist-report/posthog-app/_parent/products/conversations/frontend/scenes/settings/SupportSettingsScene 1.82 kB -34 B (-1.84%)
frontend/dist-report/posthog-app/_parent/products/conversations/frontend/scenes/ticket/SupportTicketScene 26.5 kB -34 B (-0.13%)
frontend/dist-report/posthog-app/_parent/products/conversations/frontend/scenes/tickets/SupportTicketsScene 1.07 kB -34 B (-3.07%)
frontend/dist-report/posthog-app/_parent/products/customer_analytics/frontend/CustomerAnalyticsScene 43.9 kB -34 B (-0.08%)
frontend/dist-report/posthog-app/_parent/products/customer_analytics/frontend/scenes/CustomerAnalyticsConfigurationScene/CustomerAnalyticsConfigurationScene 2.65 kB -34 B (-1.27%)
frontend/dist-report/posthog-app/_parent/products/customer_analytics/frontend/scenes/CustomerJourneyBuilderScene/CustomerJourneyBuilderScene 2.18 kB -34 B (-1.53%)
frontend/dist-report/posthog-app/_parent/products/customer_analytics/frontend/scenes/CustomerJourneyTemplatesScene/CustomerJourneyTemplatesScene 7.86 kB -34 B (-0.43%)
frontend/dist-report/posthog-app/_parent/products/data_warehouse/DataWarehouseScene 1.78 kB -34 B (-1.88%)
frontend/dist-report/posthog-app/_parent/products/data_warehouse/frontend/scenes/NewSourceScene/NewSourceScene 1.15 kB -34 B (-2.87%)
frontend/dist-report/posthog-app/_parent/products/data_warehouse/frontend/scenes/SchemaScene/SchemaScene 24.4 kB -34 B (-0.14%)
frontend/dist-report/posthog-app/_parent/products/data_warehouse/frontend/scenes/SourceScene/SourceScene 1.06 kB -34 B (-3.1%)
frontend/dist-report/posthog-app/_parent/products/data_warehouse/frontend/scenes/SourcesScene/SourcesScene 6.31 kB -34 B (-0.54%)
frontend/dist-report/posthog-app/_parent/products/deployments/frontend/Deployment 4.05 kB -34 B (-0.83%)
frontend/dist-report/posthog-app/_parent/products/deployments/frontend/DeploymentProject 5.58 kB -34 B (-0.61%)
frontend/dist-report/posthog-app/_parent/products/deployments/frontend/Deployments 9.31 kB -34 B (-0.36%)
frontend/dist-report/posthog-app/_parent/products/early_access_features/frontend/EarlyAccessFeature 1.16 kB -34 B (-2.85%)
frontend/dist-report/posthog-app/_parent/products/early_access_features/frontend/EarlyAccessFeatures 3.24 kB -34 B (-1.04%)
frontend/dist-report/posthog-app/_parent/products/endpoints/frontend/EndpointScene 40.7 kB -34 B (-0.08%)
frontend/dist-report/posthog-app/_parent/products/endpoints/frontend/EndpointsScene 22.4 kB -34 B (-0.15%)
frontend/dist-report/posthog-app/_parent/products/error_tracking/frontend/scenes/ErrorTrackingFingerprintsScene/ErrorTrackingIssueFingerprintsScene 7.44 kB -34 B (-0.45%)
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 27.2 kB -34 B (-0.12%)
frontend/dist-report/posthog-app/_parent/products/feature_flags/frontend/FeatureFlagTemplatesScene 7.38 kB -34 B (-0.46%)
frontend/dist-report/posthog-app/_parent/products/games/368Hedgehogs/368Hedgehogs 5.61 kB -34 B (-0.6%)
frontend/dist-report/posthog-app/_parent/products/games/FlappyHog/FlappyHog 6.12 kB -34 B (-0.55%)
frontend/dist-report/posthog-app/_parent/products/legal_documents/frontend/scenes/LegalDocumentNewScene 59.7 kB -34 B (-0.06%)
frontend/dist-report/posthog-app/_parent/products/legal_documents/frontend/scenes/LegalDocumentsScene 5.32 kB -34 B (-0.64%)
frontend/dist-report/posthog-app/_parent/products/links/frontend/LinkScene 25.2 kB -34 B (-0.13%)
frontend/dist-report/posthog-app/_parent/products/links/frontend/LinksScene 4.55 kB -34 B (-0.74%)
frontend/dist-report/posthog-app/_parent/products/live_debugger/frontend/LiveDebugger 19.5 kB -34 B (-0.17%)
frontend/dist-report/posthog-app/_parent/products/logs/frontend/LogsScene 17.8 kB -34 B (-0.19%)
frontend/dist-report/posthog-app/_parent/products/logs/frontend/scenes/LogsAlertDetailScene/LogsAlertDetailScene 17.3 kB -34 B (-0.2%)
frontend/dist-report/posthog-app/_parent/products/logs/frontend/scenes/LogsSamplingDetailScene/LogsSamplingDetailScene 5.31 kB -34 B (-0.64%)
frontend/dist-report/posthog-app/_parent/products/logs/frontend/scenes/LogsSamplingNewScene/LogsSamplingNewScene 2.26 kB -34 B (-1.48%)
frontend/dist-report/posthog-app/_parent/products/managed_migrations/frontend/ManagedMigration 14.9 kB -34 B (-0.23%)
frontend/dist-report/posthog-app/_parent/products/mcp_analytics/frontend/MCPAnalyticsScene 40.5 kB -34 B (-0.08%)
frontend/dist-report/posthog-app/_parent/products/mcp_analytics/frontend/MCPAnalyticsToolDetail 18.5 kB -34 B (-0.18%)
frontend/dist-report/posthog-app/_parent/products/metrics/frontend/MetricsScene 16.2 kB -34 B (-0.21%)
frontend/dist-report/posthog-app/_parent/products/product_analytics/frontend/insights/stickiness/StickinessBarChart/StickinessBarChart 3.31 kB -34 B (-1.02%)
frontend/dist-report/posthog-app/_parent/products/product_analytics/frontend/insights/stickiness/StickinessLineChart/StickinessLineChart 3.14 kB -34 B (-1.07%)
frontend/dist-report/posthog-app/_parent/products/product_analytics/frontend/insights/trends/TrendsBarChart/TrendsBarChart 7.36 kB -34 B (-0.46%)
frontend/dist-report/posthog-app/_parent/products/product_analytics/frontend/insights/trends/TrendsLifecycleChart/TrendsLifecycleChart 4.24 kB -34 B (-0.79%)
frontend/dist-report/posthog-app/_parent/products/product_analytics/frontend/insights/trends/TrendsLineChart/TrendsLineChart 4.6 kB -34 B (-0.73%)
frontend/dist-report/posthog-app/_parent/products/product_analytics/frontend/insights/trends/TrendsPieChart/TrendsPieChart 4.35 kB -34 B (-0.78%)
frontend/dist-report/posthog-app/_parent/products/replay_vision/frontend/observations/ReplayObservation 8.17 kB -34 B (-0.41%)
frontend/dist-report/posthog-app/_parent/products/replay_vision/frontend/replay_scanners/ReplayScanner 32.9 kB -34 B (-0.1%)
frontend/dist-report/posthog-app/_parent/products/replay_vision/frontend/replay_scanners/ReplayScannersScene 11.6 kB -34 B (-0.29%)
frontend/dist-report/posthog-app/_parent/products/replay_vision/frontend/replay_scanners/ScannerTemplatesScene 4.59 kB -34 B (-0.73%)
frontend/dist-report/posthog-app/_parent/products/revenue_analytics/frontend/RevenueAnalyticsScene 26.6 kB -34 B (-0.13%)
frontend/dist-report/posthog-app/_parent/products/session_summaries/frontend/SessionGroupSummariesTable 5.05 kB -34 B (-0.67%)
frontend/dist-report/posthog-app/_parent/products/session_summaries/frontend/SessionGroupSummaryScene 19.2 kB -34 B (-0.18%)
frontend/dist-report/posthog-app/_parent/products/tasks/frontend/SlackTaskContextScene 8.88 kB -34 B (-0.38%)
frontend/dist-report/posthog-app/_parent/products/tasks/frontend/TaskDetailScene 23.8 kB -34 B (-0.14%)
frontend/dist-report/posthog-app/_parent/products/tasks/frontend/TaskTracker 14.6 kB -34 B (-0.23%)
frontend/dist-report/posthog-app/_parent/products/tracing/frontend/TracingScene 54.4 kB -34 B (-0.06%)
frontend/dist-report/posthog-app/_parent/products/user_interviews/frontend/UserInterview 9.32 kB -34 B (-0.36%)
frontend/dist-report/posthog-app/_parent/products/user_interviews/frontend/UserInterviewResponse 5.68 kB -34 B (-0.6%)
frontend/dist-report/posthog-app/_parent/products/user_interviews/frontend/UserInterviews 6.08 kB -34 B (-0.56%)
frontend/dist-report/posthog-app/_parent/products/visual_review/frontend/scenes/VisualReviewIndexScene 2.56 kB -34 B (-1.31%)
frontend/dist-report/posthog-app/_parent/products/visual_review/frontend/scenes/VisualReviewRunScene 44.7 kB -34 B (-0.08%)
frontend/dist-report/posthog-app/_parent/products/visual_review/frontend/scenes/VisualReviewRunsScene 7.32 kB -34 B (-0.46%)
frontend/dist-report/posthog-app/_parent/products/visual_review/frontend/scenes/VisualReviewSettingsScene 11.1 kB -34 B (-0.31%)
frontend/dist-report/posthog-app/_parent/products/visual_review/frontend/scenes/VisualReviewSnapshotHistoryScene 13.9 kB -34 B (-0.24%)
frontend/dist-report/posthog-app/_parent/products/visual_review/frontend/scenes/VisualReviewSnapshotOverviewScene 19.6 kB -34 B (-0.17%)
frontend/dist-report/posthog-app/_parent/products/workflows/frontend/TemplateLibrary/MessageTemplate 16.6 kB -34 B (-0.2%)
frontend/dist-report/posthog-app/_parent/products/workflows/frontend/Workflows/WorkflowScene 104 kB -34 B (-0.03%)
frontend/dist-report/posthog-app/_parent/products/workflows/frontend/WorkflowsScene 60.2 kB -34 B (-0.06%)
frontend/dist-report/posthog-app/src/index 61.1 kB -34 B (-0.06%)
frontend/dist-report/posthog-app/src/layout/panel-layout/ai-first/tabs/NavTabChat 7.16 kB -34 B (-0.47%)
frontend/dist-report/posthog-app/src/lib/components/Cards/TextCard/TextCardMarkdownEditor 11.3 kB -34 B (-0.3%)
frontend/dist-report/posthog-app/src/lib/components/MonacoDiffEditor 471 B 0 B
frontend/dist-report/posthog-app/src/lib/lemon-ui/LemonMarkdown/MermaidDiagram 2.25 kB -34 B (-1.49%)
frontend/dist-report/posthog-app/src/lib/lemon-ui/LemonTextArea/LemonTextAreaMarkdown 842 B -34 B (-3.88%)
frontend/dist-report/posthog-app/src/lib/lemon-ui/Link/Link 359 B 0 B
frontend/dist-report/posthog-app/src/lib/monaco/CodeEditorInline 832 B -34 B (-3.93%)
frontend/dist-report/posthog-app/src/lib/monaco/vimMode 211 kB 0 B
frontend/dist-report/posthog-app/src/lib/ui/Button/ButtonPrimitives 426 B 0 B
frontend/dist-report/posthog-app/src/queries/nodes/WebVitals/WebVitals 7.52 kB -34 B (-0.45%)
frontend/dist-report/posthog-app/src/queries/nodes/WebVitals/WebVitalsPathBreakdown 4.09 kB -34 B (-0.83%)
frontend/dist-report/posthog-app/src/queries/schema 850 kB 0 B
frontend/dist-report/posthog-app/src/scenes/activity/explore/EventsScene 3.28 kB -34 B (-1.03%)
frontend/dist-report/posthog-app/src/scenes/activity/explore/SessionsScene 4.69 kB -34 B (-0.72%)
frontend/dist-report/posthog-app/src/scenes/activity/live/LiveEventsTable 5.58 kB -34 B (-0.61%)
frontend/dist-report/posthog-app/src/scenes/agentic/AgenticAuthorize 5.84 kB -34 B (-0.58%)
frontend/dist-report/posthog-app/src/scenes/approvals/ApprovalDetail 16.6 kB -34 B (-0.2%)
frontend/dist-report/posthog-app/src/scenes/approvals/changeRequestsLogic 884 B -34 B (-3.7%)
frontend/dist-report/posthog-app/src/scenes/audit-logs/AdvancedActivityLogsScene 42.1 kB -34 B (-0.08%)
frontend/dist-report/posthog-app/src/scenes/AuthenticatedShell 165 kB -40 B (-0.02%)
frontend/dist-report/posthog-app/src/scenes/authentication/AccountConnected 3.33 kB -34 B (-1.01%)
frontend/dist-report/posthog-app/src/scenes/authentication/AgenticAccountMismatch 2.73 kB -34 B (-1.23%)
frontend/dist-report/posthog-app/src/scenes/authentication/CLIAuthorize 11.7 kB -34 B (-0.29%)
frontend/dist-report/posthog-app/src/scenes/authentication/CLILive 4.37 kB -34 B (-0.77%)
frontend/dist-report/posthog-app/src/scenes/authentication/credential-review/CredentialReview 3.95 kB -34 B (-0.85%)
frontend/dist-report/posthog-app/src/scenes/authentication/EmailMFAVerify 3.37 kB -34 B (-1%)
frontend/dist-report/posthog-app/src/scenes/authentication/InviteSignup 15.4 kB -34 B (-0.22%)
frontend/dist-report/posthog-app/src/scenes/authentication/Login 10.2 kB -34 B (-0.33%)
frontend/dist-report/posthog-app/src/scenes/authentication/Login2FA 5.08 kB -34 B (-0.67%)
frontend/dist-report/posthog-app/src/scenes/authentication/passkeyLogic 824 B -34 B (-3.96%)
frontend/dist-report/posthog-app/src/scenes/authentication/PasswordReset 4.71 kB -34 B (-0.72%)
frontend/dist-report/posthog-app/src/scenes/authentication/PasswordResetComplete 3.34 kB -34 B (-1.01%)
frontend/dist-report/posthog-app/src/scenes/authentication/signup/SignupContainer 28.5 kB -34 B (-0.12%)
frontend/dist-report/posthog-app/src/scenes/authentication/signup/verify-email/VerifyEmail 5.13 kB -34 B (-0.66%)
frontend/dist-report/posthog-app/src/scenes/authentication/TwoFactorReset 4.37 kB -34 B (-0.77%)
frontend/dist-report/posthog-app/src/scenes/authentication/VercelConnect 5.33 kB -34 B (-0.63%)
frontend/dist-report/posthog-app/src/scenes/authentication/VercelLinkError 2.61 kB -34 B (-1.29%)
frontend/dist-report/posthog-app/src/scenes/billing/AuthorizationStatus 1.07 kB -34 B (-3.08%)
frontend/dist-report/posthog-app/src/scenes/billing/Billing 833 B -34 B (-3.92%)
frontend/dist-report/posthog-app/src/scenes/billing/BillingSection 21.1 kB -34 B (-0.16%)
frontend/dist-report/posthog-app/src/scenes/cohorts/Cohort 28.4 kB -34 B (-0.12%)
frontend/dist-report/posthog-app/src/scenes/cohorts/CohortCalculationHistory 6.58 kB -34 B (-0.51%)
frontend/dist-report/posthog-app/src/scenes/cohorts/Cohorts 9.78 kB -34 B (-0.35%)
frontend/dist-report/posthog-app/src/scenes/coupons/Coupons 1.06 kB -34 B (-3.09%)
frontend/dist-report/posthog-app/src/scenes/dashboard/Dashboard 1.65 kB -34 B (-2.02%)
frontend/dist-report/posthog-app/src/scenes/dashboard/dashboards/Dashboards 19.8 kB -34 B (-0.17%)
frontend/dist-report/posthog-app/src/scenes/dashboard/dashboards/templates/DashboardTemplateCopyScene 6.06 kB -34 B (-0.56%)
frontend/dist-report/posthog-app/src/scenes/data-management/DataManagementScene 986 B -34 B (-3.33%)
frontend/dist-report/posthog-app/src/scenes/data-management/definition/DefinitionEdit 17.2 kB -34 B (-0.2%)
frontend/dist-report/posthog-app/src/scenes/data-management/definition/DefinitionView 24.4 kB -34 B (-0.14%)
frontend/dist-report/posthog-app/src/scenes/data-management/MaterializedColumns/MaterializedColumns 12 kB -34 B (-0.28%)
frontend/dist-report/posthog-app/src/scenes/data-management/variables/SqlVariableEditScene 7.6 kB -34 B (-0.45%)
frontend/dist-report/posthog-app/src/scenes/data-pipelines/batch-exports/BatchExportScene 61 kB -34 B (-0.06%)
frontend/dist-report/posthog-app/src/scenes/data-pipelines/DataPipelinesNewScene 2.66 kB -34 B (-1.26%)
frontend/dist-report/posthog-app/src/scenes/data-pipelines/DestinationsScene 3.03 kB -34 B (-1.11%)
frontend/dist-report/posthog-app/src/scenes/data-pipelines/event-filtering/EventFilterScene 22.2 kB -34 B (-0.15%)
frontend/dist-report/posthog-app/src/scenes/data-pipelines/legacy-plugins/LegacyPluginScene 21 kB -34 B (-0.16%)
frontend/dist-report/posthog-app/src/scenes/data-pipelines/TransformationsScene 2.27 kB -34 B (-1.48%)
frontend/dist-report/posthog-app/src/scenes/data-pipelines/WebScriptsScene 2.89 kB -34 B (-1.16%)
frontend/dist-report/posthog-app/src/scenes/data-warehouse/DataWarehouseScene 1.72 kB -34 B (-1.94%)
frontend/dist-report/posthog-app/src/scenes/data-warehouse/editor/EditorScene 1.48 kB -34 B (-2.24%)
frontend/dist-report/posthog-app/src/scenes/debug/DebugScene 20.3 kB -34 B (-0.17%)
frontend/dist-report/posthog-app/src/scenes/debug/hog/HogRepl 7.72 kB -34 B (-0.44%)
frontend/dist-report/posthog-app/src/scenes/experiments/Experiment 207 kB -34 B (-0.02%)
frontend/dist-report/posthog-app/src/scenes/experiments/Experiments 20.8 kB -34 B (-0.16%)
frontend/dist-report/posthog-app/src/scenes/experiments/SharedMetrics/SharedMetric 6.41 kB -34 B (-0.53%)
frontend/dist-report/posthog-app/src/scenes/experiments/SharedMetrics/SharedMetrics 889 B -34 B (-3.68%)
frontend/dist-report/posthog-app/src/scenes/exports/ExportsScene 4.33 kB -34 B (-0.78%)
frontend/dist-report/posthog-app/src/scenes/feature-flags/FeatureFlag 144 kB -34 B (-0.02%)
frontend/dist-report/posthog-app/src/scenes/feature-flags/FeatureFlags 1.08 kB -34 B (-3.05%)
frontend/dist-report/posthog-app/src/scenes/groups/Group 15.5 kB -34 B (-0.22%)
frontend/dist-report/posthog-app/src/scenes/groups/Groups 4.26 kB -34 B (-0.79%)
frontend/dist-report/posthog-app/src/scenes/groups/GroupsNew 7.7 kB -34 B (-0.44%)
frontend/dist-report/posthog-app/src/scenes/health-alerts/HealthAlertsScene 4.14 kB -34 B (-0.82%)
frontend/dist-report/posthog-app/src/scenes/health/categoryDetail/HealthCategoryDetailScene 7.6 kB -34 B (-0.45%)
frontend/dist-report/posthog-app/src/scenes/health/HealthScene 12.7 kB -34 B (-0.27%)
frontend/dist-report/posthog-app/src/scenes/health/pipelineStatus/PipelineStatusScene 11.5 kB -34 B (-0.29%)
frontend/dist-report/posthog-app/src/scenes/heatmaps/scenes/heatmap/HeatmapNewScene 5.38 kB -34 B (-0.63%)
frontend/dist-report/posthog-app/src/scenes/heatmaps/scenes/heatmap/HeatmapRecordingScene 4.27 kB -34 B (-0.79%)
frontend/dist-report/posthog-app/src/scenes/heatmaps/scenes/heatmap/HeatmapScene 6.91 kB -34 B (-0.49%)
frontend/dist-report/posthog-app/src/scenes/heatmaps/scenes/heatmaps/HeatmapsScene 4.23 kB -34 B (-0.8%)
frontend/dist-report/posthog-app/src/scenes/hog-functions/HogFunctionScene 59.6 kB -34 B (-0.06%)
frontend/dist-report/posthog-app/src/scenes/inbox/InboxScene 63.3 kB -34 B (-0.05%)
frontend/dist-report/posthog-app/src/scenes/insights/InsightQuickStart/InsightQuickStart 5.77 kB -34 B (-0.59%)
frontend/dist-report/posthog-app/src/scenes/insights/InsightScene 34.8 kB -34 B (-0.1%)
frontend/dist-report/posthog-app/src/scenes/insights/views/BoxPlot/BoxPlot 5.39 kB -34 B (-0.63%)
frontend/dist-report/posthog-app/src/scenes/insights/views/CalendarHeatMap/CalendarHeatMap 4.84 kB -34 B (-0.7%)
frontend/dist-report/posthog-app/src/scenes/insights/views/RegionMap/RegionMap 29.8 kB -34 B (-0.11%)
frontend/dist-report/posthog-app/src/scenes/insights/views/WorldMap/WorldMap 5.13 kB -34 B (-0.66%)
frontend/dist-report/posthog-app/src/scenes/instance/AsyncMigrations/AsyncMigrations 13.5 kB -34 B (-0.25%)
frontend/dist-report/posthog-app/src/scenes/instance/DeadLetterQueue/DeadLetterQueue 5.74 kB -34 B (-0.59%)
frontend/dist-report/posthog-app/src/scenes/instance/QueryPerformance/QueryPerformance 8.97 kB -34 B (-0.38%)
frontend/dist-report/posthog-app/src/scenes/instance/SystemStatus/SystemStatus 17.4 kB -34 B (-0.2%)
frontend/dist-report/posthog-app/src/scenes/IntegrationsRedirect/IntegrationsRedirect 1.08 kB -34 B (-3.06%)
frontend/dist-report/posthog-app/src/scenes/marketing-analytics/MarketingAnalyticsScene 42 kB -34 B (-0.08%)
frontend/dist-report/posthog-app/src/scenes/max/Max 1.02 kB -34 B (-3.21%)
frontend/dist-report/posthog-app/src/scenes/models/ModelsScene 19 kB -34 B (-0.18%)
frontend/dist-report/posthog-app/src/scenes/models/NodeDetailScene 17.1 kB -34 B (-0.2%)
frontend/dist-report/posthog-app/src/scenes/moveToPostHogCloud/MoveToPostHogCloud 4.81 kB -34 B (-0.7%)
frontend/dist-report/posthog-app/src/scenes/new-tab/NewTabScene 1.82 kB -34 B (-1.84%)
frontend/dist-report/posthog-app/src/scenes/notebooks/NotebookCanvasScene 3.89 kB -34 B (-0.87%)
frontend/dist-report/posthog-app/src/scenes/notebooks/NotebookPanel/NotebookPanel 5.94 kB -34 B (-0.57%)
frontend/dist-report/posthog-app/src/scenes/notebooks/NotebookScene 9.26 kB -34 B (-0.37%)
frontend/dist-report/posthog-app/src/scenes/notebooks/NotebooksScene 7.95 kB -34 B (-0.43%)
frontend/dist-report/posthog-app/src/scenes/oauth/OAuthAuthorize 980 B -34 B (-3.35%)
frontend/dist-report/posthog-app/src/scenes/onboarding/coupon/OnboardingCouponRedemption 1.55 kB -34 B (-2.15%)
frontend/dist-report/posthog-app/src/scenes/onboarding/Onboarding 791 kB -34 B (0%)
frontend/dist-report/posthog-app/src/scenes/onboarding/sdks/SdkDoctorScene 10.2 kB -34 B (-0.33%)
frontend/dist-report/posthog-app/src/scenes/organization/ConfirmOrganization/ConfirmOrganization 4.88 kB -34 B (-0.69%)
frontend/dist-report/posthog-app/src/scenes/organization/Create/Create 1 kB -34 B (-3.29%)
frontend/dist-report/posthog-app/src/scenes/organization/Deactivated 1.48 kB -34 B (-2.25%)
frontend/dist-report/posthog-app/src/scenes/organization/PendingDeletion 2.45 kB -34 B (-1.37%)
frontend/dist-report/posthog-app/src/scenes/persons/PersonScene 19 kB -34 B (-0.18%)
frontend/dist-report/posthog-app/src/scenes/persons/PersonsScene 6.09 kB -34 B (-0.56%)
frontend/dist-report/posthog-app/src/scenes/PreflightCheck/PreflightCheck 5.91 kB -34 B (-0.57%)
frontend/dist-report/posthog-app/src/scenes/product-tours/ProductTour 275 kB -34 B (-0.01%)
frontend/dist-report/posthog-app/src/scenes/product-tours/ProductTours 5.03 kB -34 B (-0.67%)
frontend/dist-report/posthog-app/src/scenes/project-homepage/ProjectHomepage 18.4 kB -34 B (-0.18%)
frontend/dist-report/posthog-app/src/scenes/project/Create/Create 1.18 kB -34 B (-2.8%)
frontend/dist-report/posthog-app/src/scenes/resource-transfer/ResourceTransfer 9.53 kB -34 B (-0.36%)
frontend/dist-report/posthog-app/src/scenes/saved-insights/SavedInsights 1 kB -34 B (-3.28%)
frontend/dist-report/posthog-app/src/scenes/session-recordings/detail/SessionRecordingDetail 2.1 kB -34 B (-1.59%)
frontend/dist-report/posthog-app/src/scenes/session-recordings/file-playback/SessionRecordingFilePlaybackScene 4.82 kB -34 B (-0.7%)
frontend/dist-report/posthog-app/src/scenes/session-recordings/kiosk/SessionRecordingsKiosk 10.3 kB -34 B (-0.33%)
frontend/dist-report/posthog-app/src/scenes/session-recordings/player/snapshot-processing/DecompressionWorkerManager 329 B 0 B
frontend/dist-report/posthog-app/src/scenes/session-recordings/playlist/SessionRecordingsPlaylistScene 5.45 kB -34 B (-0.62%)
frontend/dist-report/posthog-app/src/scenes/session-recordings/SessionRecordings 1.12 kB -34 B (-2.96%)
frontend/dist-report/posthog-app/src/scenes/session-recordings/settings/SessionRecordingsSettingsScene 2.31 kB -34 B (-1.45%)
frontend/dist-report/posthog-app/src/scenes/sessions/SessionProfileScene 15.6 kB -34 B (-0.22%)
frontend/dist-report/posthog-app/src/scenes/settings/SettingsScene 3.9 kB -34 B (-0.86%)
frontend/dist-report/posthog-app/src/scenes/sites/Site 1.53 kB -34 B (-2.17%)
frontend/dist-report/posthog-app/src/scenes/startups/StartupProgram 21.5 kB -34 B (-0.16%)
frontend/dist-report/posthog-app/src/scenes/StripeConfirmInstall/StripeConfirmInstall 3.88 kB -34 B (-0.87%)
frontend/dist-report/posthog-app/src/scenes/subscriptions/SubscriptionScene 14.4 kB -34 B (-0.24%)
frontend/dist-report/posthog-app/src/scenes/subscriptions/SubscriptionsScene 5.2 kB -34 B (-0.65%)
frontend/dist-report/posthog-app/src/scenes/surveys/forms/SurveyFormBuilder 1.89 kB -34 B (-1.77%)
frontend/dist-report/posthog-app/src/scenes/surveys/Survey 1.36 kB -34 B (-2.44%)
frontend/dist-report/posthog-app/src/scenes/surveys/Surveys 26.7 kB -34 B (-0.13%)
frontend/dist-report/posthog-app/src/scenes/surveys/wizard/SurveyWizard 72.7 kB -34 B (-0.05%)
frontend/dist-report/posthog-app/src/scenes/themes/CustomCssScene 3.91 kB -34 B (-0.86%)
frontend/dist-report/posthog-app/src/scenes/toolbar-launch/ToolbarLaunch 2.82 kB -34 B (-1.19%)
frontend/dist-report/posthog-app/src/scenes/Unsubscribe/Unsubscribe 2 kB -34 B (-1.67%)
frontend/dist-report/posthog-app/src/scenes/web-analytics/SessionAttributionExplorer/SessionAttributionExplorerScene 6.97 kB -34 B (-0.49%)
frontend/dist-report/posthog-app/src/scenes/web-analytics/WebAnalyticsScene 13.2 kB -34 B (-0.26%)
frontend/dist-report/posthog-app/src/scenes/wizard/Wizard 4.8 kB -34 B (-0.7%)
frontend/dist-report/posthog-app/src/sharedChunkAnchors 1.19 kB 0 B

compressed-size-action

@rodrigoi rodrigoi changed the title feat(experiments): udpate experiment serializer and service to handle updates for the excluded variants. feat(experiments): update experiment serializer and service to handle excluded variants May 26, 2026
@rodrigoi rodrigoi force-pushed the experiments/exclude-variant-from-experiment-api-serializers branch from 63f348a to 6aa8131 Compare May 26, 2026 14:13
@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented May 26, 2026

🎭 Playwright didn't run on this PR — your changes touch code that could affect E2E behavior, but Playwright is opt-in via label now to keep CI cost down.

Add the run-playwright label if you want an E2E sweep before merging — CI will pick it up automatically.

Most PRs don't need this. Real regressions still get caught on master and fix-forward.

@tests-posthog

This comment was marked as outdated.

@rodrigoi rodrigoi force-pushed the experiments/exclude-variant-from-experiment branch from ade310a to 8da70d1 Compare May 26, 2026 17:21
@rodrigoi rodrigoi force-pushed the experiments/exclude-variant-from-experiment-api-serializers branch from 18c4537 to 47c470a Compare May 26, 2026 17:21
@rodrigoi rodrigoi marked this pull request as ready for review May 26, 2026 17:22
@rodrigoi rodrigoi requested a review from a team May 26, 2026 17:22
@greptile-apps
Copy link
Copy Markdown
Contributor

greptile-apps Bot commented May 26, 2026

Prompt To Fix All With AI
Fix the following 2 code review issues. Work through them one at a time, proposing concise fixes.

---

### Issue 1 of 2
products/experiments/backend/test/test_experiment_service.py:4921-4962
**Tests should be parametrised**

The team convention is to prefer parametrised tests. The seven "raises" cases and four "valid" cases all share identical structure — they differ only in the `excluded_variants` value and the expected error message. Keeping them as individual methods means each new edge case requires a full copy-paste rather than adding a tuple to a `@pytest.mark.parametrize` decorator, and the repetition obscures the intent.

The error cases in particular (`test_excluding_unknown_key_raises`, `test_excluding_control_raises`, `test_excluding_holdout_pseudo_key_raises`, `test_excluding_all_test_variants_raises`, `test_non_list_excluded_variants_raises`, `test_non_string_entries_raises`, `test_excluding_custom_baseline_raises`) could be collapsed into a single `@pytest.mark.parametrize` test, and the valid cases similarly.

### Issue 2 of 2
products/experiments/backend/experiment_service.py:193-218
**Validation cannot see existing variants during a PATCH that omits `feature_flag_variants`**

`validate_parameters` in the serializer is called with only the incoming request value. If a caller PATCHes with `{"parameters": {"excluded_variants": ["test-1"]}}` and omits `feature_flag_variants`, this function receives `parameters.get("feature_flag_variants", [])``[]`, so `variant_keys` is empty and every entry in `excluded_variants` is immediately rejected as "unknown variants for this experiment".

This is fine if the API contract requires callers to always send the full `parameters` object — but that constraint isn't stated anywhere in the help text or validation error messages. A comment clarifying the expected usage (or a friendlier error when `feature_flag_variants` is absent but `excluded_variants` is non-empty) would prevent confusing support cases.

Reviews (1): Last reviewed commit: "test(mcp): update unit test snapshots" | Re-trigger Greptile

Comment thread products/experiments/backend/test/test_experiment_service.py Outdated
Comment thread products/experiments/backend/experiment_service.py
@rodrigoi rodrigoi force-pushed the experiments/exclude-variant-from-experiment branch from 8da70d1 to ad7a5b6 Compare May 26, 2026 22:38
@rodrigoi rodrigoi force-pushed the experiments/exclude-variant-from-experiment-api-serializers branch 2 times, most recently from 7e8f2d9 to 3375e8e Compare May 28, 2026 00:06
@rodrigoi rodrigoi force-pushed the experiments/exclude-variant-from-experiment branch from ad7a5b6 to 0e94f30 Compare May 28, 2026 00:06
Comment thread posthog/hogql_queries/experiments/experiment_metric_fingerprint.py Outdated
@rodrigoi rodrigoi force-pushed the experiments/exclude-variant-from-experiment branch from 0e94f30 to 5009ff6 Compare May 29, 2026 06:59
@rodrigoi rodrigoi force-pushed the experiments/exclude-variant-from-experiment-api-serializers branch from 3375e8e to 8484a73 Compare May 29, 2026 06:59
@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented May 29, 2026

🎭 Playwright report · View test results →

⚠️ 1 flaky test:

  • Save an insight, make changes, discard them, and save a copy (chromium)

These issues are not necessarily caused by your changes.
Annoyed by this comment? Help fix flakies and failures and it'll disappear!

Base automatically changed from experiments/exclude-variant-from-experiment to master May 29, 2026 16:01
@rodrigoi rodrigoi force-pushed the experiments/exclude-variant-from-experiment-api-serializers branch from 8484a73 to 467f5d6 Compare May 29, 2026 16:31
@rodrigoi rodrigoi merged commit d1a851b into master May 29, 2026
203 checks passed
@rodrigoi rodrigoi deleted the experiments/exclude-variant-from-experiment-api-serializers branch May 29, 2026 19:58
@deployment-status-posthog
Copy link
Copy Markdown

deployment-status-posthog Bot commented May 29, 2026

Deploy status

Environment Status Deployed At Workflow
dev ✅ Deployed 2026-05-29 20:30 UTC Run
prod-us ✅ Deployed 2026-05-29 20:46 UTC Run
prod-eu ✅ Deployed 2026-05-29 20:50 UTC Run

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants