feat(insights): migrate the metric insight to the composable quill Metric - #70220
Conversation
🦔 Hogbox preview · ✅ ready▶ Open the preview
commit |
|
Reviews (1): Last reviewed commit: "feat(insights): migrate the metric insig..." | Re-trigger Greptile |
🤖 CI report
|
| File | Size | Δ vs base |
|---|---|---|
render-query/src/render-query/render-query.js |
21.24 MiB | 🔺 +29.6 KiB (+0.1%) |
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.21 MiB · 22 files | 🔺 +161 B (+0.0%) | ███░░░░░░░ 28.2% of 4.29 MiB |
authenticated shell (every logged-in page)src/scenes/AuthenticatedShell.tsx |
8.11 MiB · 2,973 files | no change | █████████░ 87.7% 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 |
| 668 B | src/index.tsx |
Largest files eagerly shipped from src/scenes/AuthenticatedShell.tsx
| Size | File |
|---|---|
| 278.6 KiB | ../node_modules/.pnpm/posthog-js@1.399.5/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 |
| 234.9 KiB | src/taxonomy/core-filter-definitions-by-group.json |
| 222.1 KiB | ../node_modules/.pnpm/posthog-js@1.399.5/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.9 KiB | src/lib/api.ts |
| 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
⚠️ Dist folder size — 🔺 +493.5 KiB (+0.0%)
Total size of the built frontend/dist folder (all assets), compared against the base branch.
Total: 1284.35 MiB · 🔺 +493.5 KiB (+0.0%)
|
✅ Visual changes approved by @sampennington — baseline updated in 2 changed. Changed
|
…tric Swaps the legacy quill-charts MetricCard for the composed parts; the scene component is renamed MetricCard locally. Data wiring (summary modes, comparison change, labels, dashed in-progress period, axis formatting) is unchanged. Generated-By: PostHog Code Task-Id: 72430f28-e189-4960-a853-2de2c6250990
4f23856 to
180b0a4
Compare
2 updated Run: 689cece9-f1c2-4c5a-a69d-3c6c0adf3848 Co-authored-by: sampennington <56024559+sampennington@users.noreply.github.com>
There was a problem hiding this comment.
Small presentational refactor swapping a monolithic quill component for its composable parts, authored by the owning team with strong familiarity; the one substantive Greptile concern was discussed and mutually resolved as inapplicable, and visual snapshots were reviewed/approved.
- Author wrote 100% of the modified lines and has 406 merged PRs in these paths (familiarity STRONG).
- 👍 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 | ✓ | 43L, 4F substantive — within ceiling |
| tier | ✓ | T1-agent / T1b-small (43L, 4F, single-area, feat) |
| stamphog 2.0.0b3 | .stamphog/policy.yml @ 1d13637 · reviewed head 08199d7 |
Problem
The metric insight renders the legacy monolithic
MetricCardfrom@posthog/quill-charts. The composableMetricin@posthog/quill-components/metricis the direction of travel and reached feature parity in #70142 (user-configured pill colors, working change-pill tooltip); the insight should compose it instead.Changes
Stacked on #70142.
frontend/src/scenes/insights/views/Metric/Metric.tsxswapsMetricCardfor the composed parts. All data wiring — summary modes, comparison change, labels, dashed in-progress period, axis formatting — is unchanged; only the presentation layer moves:MetricCard'stitle={null}+changeInline+changeSize="md"props become composition: noMetricTitle, and aMetricHeaderrow ofMetricValue+MetricDeltawith the insight's larger-pill classes passed viaclassNameMetricCard(quill'sMetricis imported un-aliased)At rest and hovering a period:
The Metric chart type stays gated on the
metric-insightflag (the flag only gates the picker option; saved insights render regardless).How did you test this code?
Insights/Metricstory snapshot covers the rendered scene; no new tests, since the change is presentational and the data wiring is untouchedAutomatic notifications
Docs update
🤖 Agent context
Autonomy: Human-driven (agent-assisted)
classNameonMetricDelta) rather than as a quill Badge size variant — the larger pill is an insight need, not a design-system concept.Created with PostHog Code