Skip to content

feat(dashboards): add interval filter override - #71063

Merged
thmsobrmlr merged 2 commits into
masterfrom
posthog-code/dashboard-interval-filter-override
Jul 16, 2026
Merged

feat(dashboards): add interval filter override#71063
thmsobrmlr merged 2 commits into
masterfrom
posthog-code/dashboard-interval-filter-override

Conversation

@thmsobrmlr

Copy link
Copy Markdown
Collaborator

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

  • A compact "grouped by" interval select in the dashboard edit bar and primary filters, next to the date filter, with an "each insight's interval" inherit option (the default, so existing dashboards are unchanged).
  • A new setInterval action wired into the existing intermittent → effective filter pipeline. The key flows through the filter-combination utility, the refresh filters_override param, 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 an interval change 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 setBreakdownFilter path 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

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

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

@thmsobrmlr thmsobrmlr self-assigned this Jul 15, 2026
thmsobrmlr added a commit that referenced this pull request Jul 15, 2026
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
@github-actions

github-actions Bot commented Jul 15, 2026

Copy link
Copy Markdown
Contributor

🤖 CI report

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

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

Total: 64.80 MiB · 🔺 +1.2 KiB (+0.0%)

No file changed by more than 1000 B.

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,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%)

Playwright — all passed

All tests passed.

View test results →

@trunk-io

trunk-io Bot commented Jul 15, 2026

Copy link
Copy Markdown

Static BadgeStatic BadgeStatic BadgeStatic Badge

View Full Report ↗︎Docs

@github-actions

github-actions Bot commented Jul 15, 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 fc0a3e8 · box box-efc86835e5b7 · ready in 840s (push → usable) · build log · rebuilds on every push, torn down on close

@pr-assigner-resolver-posthog
pr-assigner-resolver-posthog Bot requested a review from a team July 15, 2026 14:16
@greptile-apps

greptile-apps Bot commented Jul 15, 2026

Copy link
Copy Markdown
Contributor

Reviews (1): Last reviewed commit: "feat(dashboards): add interval filter ov..." | Re-trigger Greptile

@posthog

posthog Bot commented Jul 15, 2026

Copy link
Copy Markdown
Contributor

@thmsobrmlr
thmsobrmlr removed the request for review from a team July 15, 2026 20:19
thmsobrmlr and others added 2 commits July 16, 2026 14:46
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>
@thmsobrmlr
thmsobrmlr force-pushed the posthog-code/dashboard-interval-filter-override branch from ce2f721 to fc0a3e8 Compare July 16, 2026 12:46
@thmsobrmlr thmsobrmlr added the stamphog Request AI approval (no full review) label Jul 16, 2026

@stamphog stamphog Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

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

@thmsobrmlr
thmsobrmlr enabled auto-merge (squash) July 16, 2026 14:37
@thmsobrmlr
thmsobrmlr merged commit aac2d26 into master Jul 16, 2026
300 of 302 checks passed
@thmsobrmlr
thmsobrmlr deleted the posthog-code/dashboard-interval-filter-override branch July 16, 2026 14:47
@deployment-status-posthog

deployment-status-posthog Bot commented Jul 16, 2026

Copy link
Copy Markdown

Deploy status

Environment Status Deployed At Workflow
dev ✅ Deployed 2026-07-16 15:52 UTC Run
prod-us ✅ Deployed 2026-07-16 16:08 UTC Run
prod-eu ✅ Deployed 2026-07-16 16:07 UTC Run

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

Labels

stamphog Request AI approval (no full review)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant