Skip to content

chore(dashboards): remove dashboard quick filters experiment - #71058

Merged
thmsobrmlr merged 1 commit into
masterfrom
posthog-code/remove-dashboard-quick-filters-experiment
Jul 15, 2026
Merged

chore(dashboards): remove dashboard quick filters experiment#71058
thmsobrmlr merged 1 commit into
masterfrom
posthog-code/remove-dashboard-quick-filters-experiment

Conversation

@thmsobrmlr

Copy link
Copy Markdown
Collaborator

TL;DR

The dashboard quick filters A/B test lost, so the code behind it is being deleted. Dashboards keep the regular filter edit bar everyone in the control group already sees. Nothing changes for users.

Problem

The dashboard-quick-filters-experiment feature flag gated a quick-filters bar on the dashboard scene. The experiment failed, so the test-variant code should be removed and the control experience (the standard edit bar) kept.

Changes

  • Remove the DASHBOARD_QUICK_FILTERS_EXPERIMENT flag constant
  • Delete the dashboard-scene experiment surface: DashboardQuickFiltersButton, dashboardQuickFiltersLogic, dashboardQuickFiltersSelectionLogic, dashboardFiltersLogic (advanced-options toggle), and the debounce test
  • Simplify DashboardFilters.tsx to always render DashboardEditBar and strip quick-filter rows/advanced options
  • Remove quick filter wiring from dashboardLogic (URL restore deferral, commit-debounce refresh, filter merging selectors, dashboardFiltersEnabled)

The shared lib/components/QuickFilters library, QuickFilterContext, and the backend QuickFilter model/API are untouched — they're used by error tracking and dashboard widgets. The now-unused Dashboard.quick_filter_ids backend field is left in place; dropping the column safely is a separate staged migration if wanted.

Why

The experiment failed, so the losing variant's code is dead weight and the flag can be cleaned up.

How did you test this code?

No manual testing (headless environment without node_modules). Ran oxfmt and oxlint on the changed files; verified via repo-wide search that no references to the removed flag, components, selectors, or actions remain. Existing dashboard tests and CI typecheck cover the touched paths. Deleted dashboardQuickFiltersDebounce.test.ts since it only tested removed behavior.

Automatic notifications

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

Docs update

None needed — experiment was never documented.

🤖 Agent context

Autonomy: Human-driven (agent-assisted)

Authored with PostHog Code (Claude Code). Scoped the removal by tracing what the dashboard-quick-filters-experiment flag actually gated (dashboardFiltersEnabled selector); deliberately kept the shared QuickFilters library and backend model/API because error tracking and dashboard widgets consume them, and left the quick_filter_ids dashboard field for a separate column-drop migration.


Created with PostHog Code

@github-actions

github-actions Bot commented Jul 15, 2026

Copy link
Copy Markdown
Contributor

🤖 CI report

Bundle size — 🟢 -8.1 KiB (-0.0%)

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

Total: 64.79 MiB · 🟢 -8.1 KiB (-0.0%)

File Size Δ vs base
exporter/src/exporter/scenes/ExporterDashboardScene.js 266.6 KiB 🟢 -5.4 KiB (-2.0%)
render-query/src/render-query/render-query.js 21.26 MiB 🟢 -2.7 KiB (-0.0%)

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.22 MiB · 22 files no change ███░░░░░░░ 28.4% of 4.29 MiB
authenticated shell (every logged-in page)
src/scenes/AuthenticatedShell.tsx
8.14 MiB · 2,978 files 🟢 -2.6 KiB (-0.0%) █████████░ 88.0% of 9.25 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
281.1 KiB ../node_modules/.pnpm/posthog-js@1.401.0/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
235.5 KiB src/taxonomy/core-filter-definitions-by-group.json
222.7 KiB ../node_modules/.pnpm/posthog-js@1.401.0/node_modules/posthog-js/dist/module.js
164.0 KiB src/queries/validators.js
154.3 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
106.1 KiB src/lib/api.ts
93.3 KiB ../node_modules/.pnpm/prosemirror-view@1.40.1/node_modules/prosemirror-view/dist/index.js
92.7 KiB ../packages/quill/packages/quill/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

Dist folder size — 🟢 -102.7 KiB (-0.0%)

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

Total: 1308.62 MiB · 🟢 -102.7 KiB (-0.0%)

⚠️ Playwright — 1 failed

🎭 Playwright report · View test results →

1 failed test:

  • level facet passes severityLevels to API (chromium)

These issues are not necessarily caused by your changes.
Annoyed by this section? Help fix flakies and failures and it will go green!

@github-actions

github-actions Bot commented Jul 15, 2026

Copy link
Copy Markdown
Contributor

🦔 Hogbox preview · ❌ build failed

The preview didn't come up for commit f26b172. See the build log for the failing step. It'll retry on the next push.

@pr-assigner-resolver-posthog
pr-assigner-resolver-posthog Bot requested a review from a team July 15, 2026 13:20
@trunk-io

trunk-io Bot commented Jul 15, 2026

Copy link
Copy Markdown

Static BadgeStatic BadgeStatic BadgeStatic Badge

View Full Report ↗︎Docs

@greptile-apps

greptile-apps Bot commented Jul 15, 2026

Copy link
Copy Markdown
Contributor

Comments Outside Diff (1)

  1. frontend/src/scenes/dashboard/DashboardFilters.tsx, line 68-76 (link)

    P1 DataOps Filter Bar Disappears

    DataOps dashboards previously reached this branch and rendered either DashboardEditBar or the experimental primary filters. Adding DashboardPlacement.DataOps to the exclusion list now renders neither, so these dashboards lose their filter controls instead of retaining the control experience.

Reviews (1): Last reviewed commit: "chore(dashboards): remove dashboard quic..." | Re-trigger Greptile

Copy link
Copy Markdown
Collaborator Author

Re Greptile's P1 "DataOps Filter Bar Disappears": false positive. DashboardPlacement.DataOps was already in the exclusion list on master (before) — this PR doesn't add it. The diff only collapses dashboardFiltersEnabled ? <DashboardPrimaryFilters /> : <DashboardEditBar /> to <DashboardEditBar /> (the control experience), so DataOps dashboards render exactly what they did before.

Comment posted by PostHog Code on behalf of Thomas.

The experiment failed, so the control experience (edit bar) stays. Removes the flag, the dashboard-scene quick filter UI and logics, and the quick filter wiring in dashboardLogic. The shared QuickFilters library and backend API remain in use by other surfaces (error tracking, dashboard widgets).

Generated-By: PostHog Code
Task-Id: 7c2776aa-ecf7-4d4c-8f47-7928c7a0daa1
@thmsobrmlr
thmsobrmlr force-pushed the posthog-code/remove-dashboard-quick-filters-experiment branch from b735559 to f26b172 Compare July 15, 2026 14:13
@thmsobrmlr
thmsobrmlr enabled auto-merge (squash) July 15, 2026 14:26
@thmsobrmlr
thmsobrmlr merged commit fba113c into master Jul 15, 2026
194 of 195 checks passed
@thmsobrmlr
thmsobrmlr deleted the posthog-code/remove-dashboard-quick-filters-experiment branch July 15, 2026 14:32
@deployment-status-posthog

deployment-status-posthog Bot commented Jul 15, 2026

Copy link
Copy Markdown

Deploy status

Environment Status Deployed At Workflow
dev ✅ Deployed 2026-07-15 15:04 UTC Run
prod-us ✅ Deployed 2026-07-15 15:30 UTC Run
prod-eu ✅ Deployed 2026-07-15 15:30 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