feat(dashboards): add interval filter override - #71063
Conversation
The interval filter override moved to its own PR (#71063), leaving only the test-account override here. Generated-By: PostHog Code Task-Id: 7b1d64d5-1f4b-4def-971c-eddc8b42f699
🤖 CI report
|
| 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,981 files | 🔺 +513 B (+0.0%) | █████████░ 87.9% 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.3 KiB | ../node_modules/.pnpm/posthog-js@1.402.3/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.9 KiB | ../node_modules/.pnpm/posthog-js@1.402.3/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 |
| 105.8 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 — 🔺 +13.4 KiB (+0.0%)
Total size of the built frontend/dist folder (all assets), compared against the base branch.
Total: 1315.41 MiB · 🔺 +13.4 KiB (+0.0%)
🦔 Hogbox preview · ✅ ready▶ Open the preview
commit |
|
Reviews (1): Last reviewed commit: "feat(dashboards): add interval filter ov..." | Re-trigger Greptile |
|
✅ Visual changes approved by @thmsobrmlr — baseline updated in 4 changed. Changed |
Adds a "grouped by" interval select to the dashboard edit bar, letting viewers force a time granularity (hour/day/week/month) across all insights on a dashboard. Defaults to inherit, so existing dashboards are unchanged. Extracted from the combined interval + test-account overrides PR (#68612). Generated-By: PostHog Code Task-Id: 7b1d64d5-1f4b-4def-971c-eddc8b42f699
4 updated Run: 6ea5b75e-be6c-4185-b5e9-4529c84e2adf Co-authored-by: thmsobrmlr <1851359+thmsobrmlr@users.noreply.github.com>
ce2f721 to
fc0a3e8
Compare
There was a problem hiding this comment.
Contained frontend-only feature (dashboard interval filter UI) that mirrors the existing setBreakdownFilter wiring pattern exactly; the underlying schema field and backend logic already shipped in a prior merged PR, so this just adds the UI control. No risky territory touched, no unresolved concerns, and reactions are positive.
- Author wrote 50% of the modified lines and has 204 merged PRs in these paths (familiarity MODERATE).
- 👍 on the PR from greptile-apps[bot], hex-security-app[bot].
Gate mechanics and policy version
| Gate | Result | |
|---|---|---|
| prerequisites | ✓ | all clear |
| deny-list | ✓ | no deny categories matched |
| size | ✓ | 87L, 4F substantive — within ceiling |
| tier | ✓ | T1-agent / T1b-small (87L, 4F, single-area, feat) |
| stamphog 2.0.0b3 | .stamphog/policy.yml @ f47efb0 · reviewed head fc0a3e8 |
TL;DR
Dashboards get a "grouped by" dropdown next to the date filter. Pick hour/day/week/month and every time-series insight on the dashboard uses that granularity. Leave it on "each insight's interval" and nothing changes.
Problem
Dashboard-level filters let a viewer override date range, properties, and breakdown across all insights on a dashboard, but there was no way to change time granularity. To see every time-series tile at, say, weekly, you had to open each insight individually.
Extracted from #68612, which now carries only the test-account override. The schema fields, query-runner application, and backend tests shipped in #68754 (merged).
Changes
setIntervalaction wired into the existing intermittent → effective filter pipeline. The key flows through the filter-combination utility, the refreshfilters_overrideparam, the URL filter params, and the edit-mode save diff with no per-key plumbing, since those helpers are key-generic. Filter change reporting gains anintervalchange type.How did you test this code?
The diff is extracted verbatim from #68612, which passed full CI. No new tests here: the wiring mirrors the existing
setBreakdownFilterpath exactly, and the backend behavior (override application per query type, API round-trip) is covered by the automated tests merged in #68754. I ran oxlint and oxfmt on the changed files; I was not able to run the app or exercise the UI in this session.Automatic notifications
Docs update
No docs changes needed.
🤖 Agent context
Autonomy: Human-driven (agent-assisted)
I (Claude, via PostHog Code) split this out of #68612 at @thmsobrmlr's request so the interval override and the test-account override can land independently. The extraction is a pure partition of that PR's diff: interval pieces here, test-account pieces stay in #68612. Verified no cross-references remain in either half and cross-checked the local typecheck error set against a master baseline.
Created with PostHog Code