Repository navigation
feat(devex): add filter, stats and link blocks to console tools - #130856
Conversation
|
😎 This pull request was merged. |
🤖 CI report
|
| File | Comment lines | Added lines |
|---|---|---|
frontend/public/admin-console/console.js |
4 | 34 |
posthog/admin/console/tools.py |
4 | 67 |
posthog/admin/console/panels.py |
2 | 8 |
This check does not block merging. It updates on every push and clears when the share drops.
⚠️ Bundle size — 🔺 +2.8 KiB (+0.0%)
Uncompressed size of every built .js bundle, compared against the base branch.
Total: 78.41 MiB · 🔺 +2.8 KiB (+0.0%)
| File | Size | Δ vs base |
|---|---|---|
posthog-app/_parent/products/autoresearch/frontend/AutoresearchPipelineScene.js |
135.7 KiB | 🔺 +2.8 KiB (+2.1%) |
Posted automatically by build-bundle-size-report · uncompressed bytes from dist-report
⚠️ Eager graph — 1 over 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.04 MiB · 25 files | no change | █████████░ 91.2% of 1.14 MiB |
🟡 logged-out boot: index + App + bootApp (preloaded by every page, including /login)src/index.tsx + src/scenes/App.tsx + src/scenes/bootApp.ts |
3.03 MiB · 627 files | no change | ██████████ 100.0% of 3.03 MiB |
authenticated shell (every logged-in page)src/scenes/AuthenticatedShell.tsx |
3.87 MiB · 1,235 files | no change | ██████████ 96.5% of 4.01 MiB |
dashboard scenesrc/scenes/dashboard/Dashboard.tsx |
7.80 MiB · 3,010 files | 🔺 +21 B (+0.0%) | ████████░░ 79.3% of 9.84 MiB |
today home pathsrc/scenes/AuthenticatedShell.tsx + src/scenes/project-homepage/ProjectHomepage.tsx + src/scenes/project-homepage/today/TodayHome.tsx |
4.84 MiB · 1,859 files | no change | ██████████ 98.2% of 4.93 MiB |
AI-first home pathsrc/scenes/AuthenticatedShell.tsx + src/scenes/project-homepage/ProjectHomepage.tsx + src/scenes/project-homepage/ai-first/AiFirstHomepage.tsx |
6.07 MiB · 2,290 files | no change | ██████████ 96.7% of 6.27 MiB |
events scenesrc/scenes/activity/explore/EventsScene.tsx |
6.79 MiB · 2,558 files | no change | ███████░░░ 72.1% of 9.41 MiB |
web analytics scenesrc/scenes/web-analytics/WebAnalyticsScene.tsx |
7.87 MiB · 2,946 files | no change | ████████░░ 75.0% of 10.49 MiB |
replay detail scenesrc/scenes/session-recordings/detail/SessionRecordingDetail.tsx |
6.97 MiB · 2,613 files | no change | █████████░ 85.8% of 8.13 MiB |
🟢 node_modules/monaco-editor/ stays out of src/index.tsx
🟢 products/product_analytics/frontend/insights/activityDescriptions stays out of src/index.tsx
🟢 node_modules/@posthog/brand/dist/generated/hoggies/svg/ stays out of src/index.tsx
🟢 node_modules/@posthog/brand/dist/generated/hoggies/components/ stays out of src/index.tsx
🟢 node_modules/monaco-editor/ stays out of src/index.tsx + src/scenes/App.tsx + src/scenes/bootApp.ts
🟢 src/layout/navigation-3000/navigationLogic.tsx stays out of src/index.tsx + src/scenes/App.tsx + src/scenes/bootApp.ts
🟢 src/scenes/dashboard/dashboardLogic.tsx stays out of src/index.tsx + src/scenes/App.tsx + src/scenes/bootApp.ts
🟢 src/lib/lemon-ui/LemonMarkdown/ stays out of src/index.tsx + src/scenes/App.tsx + src/scenes/bootApp.ts
🟢 src/lib/components/RichContentEditor/ stays out of src/index.tsx + src/scenes/App.tsx + src/scenes/bootApp.ts
🟢 src/lib/components/CodeSnippet/ stays out of src/index.tsx + src/scenes/App.tsx + src/scenes/bootApp.ts
🟢 src/taxonomy/core-filter-definitions-by-group.json stays out of src/index.tsx + src/scenes/App.tsx + src/scenes/bootApp.ts
🟢 node_modules/zod/ stays out of src/index.tsx + src/scenes/App.tsx + src/scenes/bootApp.ts
🟢 src/lib/logic/billing/billingLogic.tsx stays out of src/index.tsx + src/scenes/App.tsx + src/scenes/bootApp.ts
🟢 src/lib/components/ProductEmptyState/productSetupPreloadLogic.ts stays out of src/index.tsx + src/scenes/App.tsx + src/scenes/bootApp.ts
🟢 node_modules/kea-test-utils/ stays out of src/index.tsx + src/scenes/App.tsx + src/scenes/bootApp.ts
🟢 node_modules/monaco-editor/ stays out of src/scenes/AuthenticatedShell.tsx
🟢 products/product_analytics/frontend/insights/activityDescriptions stays out of src/scenes/AuthenticatedShell.tsx
🟢 node_modules/kea-test-utils/ stays out of src/scenes/AuthenticatedShell.tsx
🟢 products/dashboards/frontend/widgets/previews/ stays out of src/scenes/AuthenticatedShell.tsx
🟢 src/scenes/session-recordings/player/sessionRecordingPlayerLogic.ts stays out of src/scenes/AuthenticatedShell.tsx
🟢 src/layout/panel-layout/ProjectTree/menus/SessionReplayMenuItems.tsx stays out of src/scenes/AuthenticatedShell.tsx
🟢 src/taxonomy/core-filter-definitions-by-group.json stays out of src/scenes/AuthenticatedShell.tsx
🟢 src/layout/navigation/projectNoticeLogic.tsx stays out of src/scenes/AuthenticatedShell.tsx
🟢 src/layout/navigation/ImpersonationNotice/ImpersonationNotice.tsx stays out of src/scenes/AuthenticatedShell.tsx
🟢 src/scenes/cohorts/cohortSavedToast.ts stays out of src/scenes/AuthenticatedShell.tsx
🟢 products/wizard/frontend/runs/WizardRunDetailsDrawer.tsx stays out of src/scenes/AuthenticatedShell.tsx
🟢 src/layout/today/TodayShell.tsx stays out of src/scenes/AuthenticatedShell.tsx
🟢 src/layout/today/TodayContextPanelFloating.tsx stays out of src/scenes/AuthenticatedShell.tsx
🟢 src/layout/today/TodaySidePanel.tsx stays out of src/scenes/AuthenticatedShell.tsx
🟢 src/layout/today/TodayTopBar.tsx stays out of src/scenes/AuthenticatedShell.tsx
🟢 src/layout/today/todayRailItems.tsx stays out of src/scenes/AuthenticatedShell.tsx
🟢 products/subscriptions/frontend/components/Subscriptions/exportNudge/exportNudgeLogic.ts stays out of src/scenes/AuthenticatedShell.tsx
🟢 src/scenes/billing/paymentEntryLogic.ts stays out of src/scenes/AuthenticatedShell.tsx
🟢 products/conversations/frontend/components/SidePanel/sidepanelTicketsLogic.ts stays out of src/scenes/AuthenticatedShell.tsx
🟢 node_modules/zod/ stays out of src/scenes/AuthenticatedShell.tsx
🟢 src/scenes/authentication/auth/loginLogic.ts stays out of src/scenes/AuthenticatedShell.tsx
🟢 src/scenes/authentication/shared/passkeyLogic.ts stays out of src/scenes/AuthenticatedShell.tsx
🟢 src/scenes/cohorts/CohortFilters/constants.tsx stays out of src/scenes/AuthenticatedShell.tsx
🟢 products/persons/frontend/logics/personsLogic.tsx stays out of src/scenes/AuthenticatedShell.tsx
🟢 src/scenes/surveys/constants.tsx stays out of src/scenes/AuthenticatedShell.tsx
🟢 node_modules/@tiptap/ stays out of src/scenes/AuthenticatedShell.tsx
🟢 node_modules/prosemirror- stays out of src/scenes/AuthenticatedShell.tsx
🟢 node_modules/re2js/ stays out of src/scenes/AuthenticatedShell.tsx
🟢 node_modules/react-markdown/ stays out of src/scenes/AuthenticatedShell.tsx
🟢 src/lib/components/Command/Command.tsx stays out of src/scenes/AuthenticatedShell.tsx
🟢 packages/quill/packages/ stays out of src/scenes/AuthenticatedShell.tsx
🟢 zod/v4/locales/de.js stays out of src/scenes/AuthenticatedShell.tsx
🟢 node_modules/@posthog/brand/dist/generated/hoggies/svg/ stays out of src/scenes/AuthenticatedShell.tsx
🟢 node_modules/@posthog/brand/dist/generated/hoggies/components/ stays out of src/scenes/AuthenticatedShell.tsx
🟢 packages/quill/packages/quill/dist/ stays out of src/scenes/dashboard/Dashboard.tsx
🟢 node_modules/@tiptap/ stays out of src/scenes/dashboard/Dashboard.tsx
🟢 node_modules/prosemirror- stays out of src/scenes/dashboard/Dashboard.tsx
🟢 node_modules/marked/ stays out of src/scenes/dashboard/Dashboard.tsx
🟢 node_modules/frimousse/ stays out of src/scenes/dashboard/Dashboard.tsx
🟢 src/scenes/session-recordings/playlist/SessionRecordingsPlaylist.tsx stays out of src/scenes/dashboard/Dashboard.tsx
🟢 src/scenes/web-analytics/tiles/WebAnalyticsTile.tsx stays out of src/scenes/dashboard/Dashboard.tsx
🟢 src/queries/validators.js stays out of src/scenes/dashboard/Dashboard.tsx
🟢 src/queries/web-analytics-validators.js stays out of src/scenes/dashboard/Dashboard.tsx
🟢 node_modules/re2js/ stays out of src/scenes/dashboard/Dashboard.tsx
🟢 node_modules/kea-test-utils/ stays out of src/scenes/dashboard/Dashboard.tsx
🟢 src/scenes/debug/HogDebug.tsx stays out of src/scenes/dashboard/Dashboard.tsx
🟢 src/queries/QueryEditor/QueryEditor.tsx stays out of src/scenes/dashboard/Dashboard.tsx
🟢 packages/quill/packages/quill/dist/ stays out of src/scenes/AuthenticatedShell.tsx + src/scenes/project-homepage/ProjectHomepage.tsx + src/scenes/project-homepage/today/TodayHome.tsx
🟢 src/scenes/project-homepage/ai-first/AiFirstHomepage.tsx stays out of src/scenes/AuthenticatedShell.tsx + src/scenes/project-homepage/ProjectHomepage.tsx + src/scenes/project-homepage/today/TodayHome.tsx
🟢 src/scenes/project-homepage/today/TodayReportPage.tsx stays out of src/scenes/AuthenticatedShell.tsx + src/scenes/project-homepage/ProjectHomepage.tsx + src/scenes/project-homepage/today/TodayHome.tsx
🟢 src/queries/Query/Query.tsx stays out of src/scenes/AuthenticatedShell.tsx + src/scenes/project-homepage/ProjectHomepage.tsx + src/scenes/project-homepage/today/TodayHome.tsx
🟢 packages/quill/packages/charts/ stays out of src/scenes/AuthenticatedShell.tsx + src/scenes/project-homepage/ProjectHomepage.tsx + src/scenes/project-homepage/today/TodayHome.tsx
🟢 packages/quill/packages/quill/dist/ stays out of src/scenes/AuthenticatedShell.tsx + src/scenes/project-homepage/ProjectHomepage.tsx + src/scenes/project-homepage/ai-first/AiFirstHomepage.tsx
🟢 products/posthog_ai/frontend/components/tool/widgets/VisualizationWidget.tsx stays out of src/scenes/AuthenticatedShell.tsx + src/scenes/project-homepage/ProjectHomepage.tsx + src/scenes/project-homepage/ai-first/AiFirstHomepage.tsx
🟢 products/posthog_ai/frontend/components/tool/widgets/RecordingsWidget.tsx stays out of src/scenes/AuthenticatedShell.tsx + src/scenes/project-homepage/ProjectHomepage.tsx + src/scenes/project-homepage/ai-first/AiFirstHomepage.tsx
🟢 src/queries/Query/Query.tsx stays out of src/scenes/AuthenticatedShell.tsx + src/scenes/project-homepage/ProjectHomepage.tsx + src/scenes/project-homepage/ai-first/AiFirstHomepage.tsx
🟢 products/posthog_ai/frontend/api/primitives.ts stays out of src/scenes/AuthenticatedShell.tsx + src/scenes/project-homepage/ProjectHomepage.tsx + src/scenes/project-homepage/ai-first/AiFirstHomepage.tsx
🟢 src/scenes/notebooks/Notebook/notebookLogic.ts stays out of src/scenes/AuthenticatedShell.tsx + src/scenes/project-homepage/ProjectHomepage.tsx + src/scenes/project-homepage/ai-first/AiFirstHomepage.tsx
🟢 packages/quill/packages/quill/dist/ stays out of src/scenes/activity/explore/EventsScene.tsx
🟢 node_modules/@tiptap/ stays out of src/scenes/activity/explore/EventsScene.tsx
🟢 node_modules/prosemirror- stays out of src/scenes/activity/explore/EventsScene.tsx
🟢 node_modules/marked/ stays out of src/scenes/activity/explore/EventsScene.tsx
🟢 node_modules/frimousse/ stays out of src/scenes/activity/explore/EventsScene.tsx
🟢 src/scenes/session-recordings/playlist/SessionRecordingsPlaylist.tsx stays out of src/scenes/activity/explore/EventsScene.tsx
🟢 src/scenes/web-analytics/tiles/WebAnalyticsTile.tsx stays out of src/scenes/activity/explore/EventsScene.tsx
🟢 src/queries/validators.js stays out of src/scenes/activity/explore/EventsScene.tsx
🟢 src/queries/web-analytics-validators.js stays out of src/scenes/activity/explore/EventsScene.tsx
🟢 node_modules/re2js/ stays out of src/scenes/activity/explore/EventsScene.tsx
🟢 node_modules/kea-test-utils/ stays out of src/scenes/activity/explore/EventsScene.tsx
🟢 src/queries/nodes/InsightViz/InsightViz.tsx stays out of src/scenes/activity/explore/EventsScene.tsx
🟢 src/queries/nodes/DataVisualization/DataVisualization.tsx stays out of src/scenes/activity/explore/EventsScene.tsx
🟢 src/queries/nodes/WebOverview/WebOverview.tsx stays out of src/scenes/activity/explore/EventsScene.tsx
🟢 src/scenes/debug/HogDebug.tsx stays out of src/scenes/activity/explore/EventsScene.tsx
🟢 src/queries/QueryEditor/QueryEditor.tsx stays out of src/scenes/activity/explore/EventsScene.tsx
🟢 packages/quill/packages/quill/dist/ stays out of src/scenes/web-analytics/WebAnalyticsScene.tsx
🟢 node_modules/@tiptap/ stays out of src/scenes/web-analytics/WebAnalyticsScene.tsx
🟢 node_modules/prosemirror- stays out of src/scenes/web-analytics/WebAnalyticsScene.tsx
🟢 node_modules/marked/ stays out of src/scenes/web-analytics/WebAnalyticsScene.tsx
🟢 node_modules/frimousse/ stays out of src/scenes/web-analytics/WebAnalyticsScene.tsx
🟢 src/scenes/web-analytics/LiveMetricsDashboard/LiveWebAnalyticsMetrics.tsx stays out of src/scenes/web-analytics/WebAnalyticsScene.tsx
🟢 products/product_analytics/frontend/insights/trends/WorldMap/countryVectors.tsx stays out of src/scenes/web-analytics/WebAnalyticsScene.tsx
🟢 src/queries/validators.js stays out of src/scenes/web-analytics/WebAnalyticsScene.tsx
🟢 node_modules/re2js/ stays out of src/scenes/web-analytics/WebAnalyticsScene.tsx
🟢 node_modules/kea-test-utils/ stays out of src/scenes/web-analytics/WebAnalyticsScene.tsx
🟢 src/scenes/debug/HogDebug.tsx stays out of src/scenes/web-analytics/WebAnalyticsScene.tsx
🟢 src/queries/QueryEditor/QueryEditor.tsx stays out of src/scenes/web-analytics/WebAnalyticsScene.tsx
🟢 packages/quill/packages/quill/dist/ stays out of src/scenes/session-recordings/detail/SessionRecordingDetail.tsx
🟢 node_modules/@tiptap/ stays out of src/scenes/session-recordings/detail/SessionRecordingDetail.tsx
🟢 node_modules/prosemirror- stays out of src/scenes/session-recordings/detail/SessionRecordingDetail.tsx
🟢 node_modules/marked/ stays out of src/scenes/session-recordings/detail/SessionRecordingDetail.tsx
🟢 src/scenes/settings/SettingsMap.tsx stays out of src/scenes/session-recordings/detail/SessionRecordingDetail.tsx
🟢 @jspm/core/nodelibs/browser/fs stays out of src/scenes/session-recordings/detail/SessionRecordingDetail.tsx
🟢 node_modules/re2js/ stays out of src/scenes/session-recordings/detail/SessionRecordingDetail.tsx
🟢 node_modules/kea-test-utils/ stays out of src/scenes/session-recordings/detail/SessionRecordingDetail.tsx
🟢 node_modules/d3/src/ stays out of src/scenes/session-recordings/detail/SessionRecordingDetail.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.7 KiB | ../node_modules/.pnpm/@jspm+core@2.1.0/node_modules/@jspm/core/nodelibs/browser/process.js |
| 4.0 KiB | ../node_modules/.pnpm/scheduler@0.23.2/node_modules/scheduler/cjs/scheduler.production.min.js |
| 1.9 KiB | src/lib/utils/bootTiming.ts |
| 1.7 KiB | src/index.tsx |
| 1.7 KiB | ../node_modules/.pnpm/base64-js@1.5.1/node_modules/base64-js/index.js |
| 1.2 KiB | src/RootErrorBoundary.tsx |
| 1.1 KiB | src/lib/utils/deferredAppContext.ts |
Largest files eagerly shipped from src/index.tsx + src/scenes/App.tsx + src/scenes/bootApp.ts
| Size | File |
|---|---|
| 362.7 KiB | ../node_modules/.pnpm/posthog-js@1.447.12_@types+react@18.3.31_react@18.3.1/node_modules/posthog-js/dist/module.mjs |
| 224.1 KiB | ../node_modules/.pnpm/@posthog+icons@0.39.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@posthog/icons/dist/posthog-icons.es.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.4 KiB | src/products.tsx |
| 87.7 KiB | src/lib/api.ts |
| 69.0 KiB | src/lib/lemon-ui/icons/icons.tsx |
| 42.7 KiB | ../node_modules/.pnpm/@dnd-kit+core@6.3.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@dnd-kit/core/dist/core.esm.js |
| 36.4 KiB | ../node_modules/.pnpm/kea@4.0.0-pre.6_patch_hash=139b8d1f1304f9d9da452a9a1244c94ea679dbcb85687d8999563146879fb6f5_react@18.3.1/node_modules/kea/lib/index.cjs.js |
| 29.1 KiB | src/lib/constants.tsx |
| 24.6 KiB | ../node_modules/.pnpm/buffer@6.0.3/node_modules/buffer/index.js |
Largest files eagerly shipped from src/scenes/AuthenticatedShell.tsx
| Size | File |
|---|---|
| 362.7 KiB | ../node_modules/.pnpm/posthog-js@1.447.12_@types+react@18.3.31_react@18.3.1/node_modules/posthog-js/dist/module.mjs |
| 224.1 KiB | ../node_modules/.pnpm/@posthog+icons@0.39.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@posthog/icons/dist/posthog-icons.es.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.4 KiB | src/products.tsx |
| 87.7 KiB | src/lib/api.ts |
| 69.0 KiB | src/lib/lemon-ui/icons/icons.tsx |
| 42.7 KiB | ../node_modules/.pnpm/@dnd-kit+core@6.3.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@dnd-kit/core/dist/core.esm.js |
| 36.4 KiB | ../node_modules/.pnpm/kea@4.0.0-pre.6_patch_hash=139b8d1f1304f9d9da452a9a1244c94ea679dbcb85687d8999563146879fb6f5_react@18.3.1/node_modules/kea/lib/index.cjs.js |
| 32.6 KiB | src/lib/utils/eventUsageLogic.ts |
| 29.1 KiB | src/lib/constants.tsx |
Largest files eagerly shipped from src/scenes/dashboard/Dashboard.tsx
| Size | File |
|---|---|
| 362.7 KiB | ../node_modules/.pnpm/posthog-js@1.447.12_@types+react@18.3.31_react@18.3.1/node_modules/posthog-js/dist/module.mjs |
| 224.1 KiB | ../node_modules/.pnpm/@posthog+icons@0.39.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@posthog/icons/dist/posthog-icons.es.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 |
| 116.4 KiB | ../node_modules/.pnpm/posthog-js@1.447.12_@types+react@18.3.31_react@18.3.1/node_modules/posthog-js/dist/surveys-preview.js |
| 112.5 KiB | ../packages/quill/packages/primitives/dist/index.js |
| 106.4 KiB | src/products.tsx |
| 98.2 KiB | ../packages/quill/packages/components/dist/index.js |
| 87.7 KiB | src/lib/api.ts |
| 78.8 KiB | src/scenes/dashboard/dashboardLogic.tsx |
| 69.0 KiB | src/lib/lemon-ui/icons/icons.tsx |
Largest files eagerly shipped from src/scenes/AuthenticatedShell.tsx + src/scenes/project-homepage/ProjectHomepage.tsx + src/scenes/project-homepage/today/TodayHome.tsx
| Size | File |
|---|---|
| 362.7 KiB | ../node_modules/.pnpm/posthog-js@1.447.12_@types+react@18.3.31_react@18.3.1/node_modules/posthog-js/dist/module.mjs |
| 224.1 KiB | ../node_modules/.pnpm/@posthog+icons@0.39.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@posthog/icons/dist/posthog-icons.es.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 |
| 112.5 KiB | ../packages/quill/packages/primitives/dist/index.js |
| 106.4 KiB | src/products.tsx |
| 87.7 KiB | src/lib/api.ts |
| 69.0 KiB | src/lib/lemon-ui/icons/icons.tsx |
| 68.5 KiB | ../products/posthog_ai/frontend/logics/runStreamLogic.ts |
| 42.7 KiB | ../node_modules/.pnpm/@dnd-kit+core@6.3.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@dnd-kit/core/dist/core.esm.js |
| 36.4 KiB | ../node_modules/.pnpm/kea@4.0.0-pre.6_patch_hash=139b8d1f1304f9d9da452a9a1244c94ea679dbcb85687d8999563146879fb6f5_react@18.3.1/node_modules/kea/lib/index.cjs.js |
Largest files eagerly shipped from src/scenes/AuthenticatedShell.tsx + src/scenes/project-homepage/ProjectHomepage.tsx + src/scenes/project-homepage/ai-first/AiFirstHomepage.tsx
| Size | File |
|---|---|
| 362.7 KiB | ../node_modules/.pnpm/posthog-js@1.447.12_@types+react@18.3.31_react@18.3.1/node_modules/posthog-js/dist/module.mjs |
| 224.1 KiB | ../node_modules/.pnpm/@posthog+icons@0.39.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@posthog/icons/dist/posthog-icons.es.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 |
| 112.5 KiB | ../packages/quill/packages/primitives/dist/index.js |
| 106.4 KiB | src/products.tsx |
| 87.7 KiB | src/lib/api.ts |
| 69.0 KiB | src/lib/lemon-ui/icons/icons.tsx |
| 68.5 KiB | ../products/posthog_ai/frontend/logics/runStreamLogic.ts |
| 42.7 KiB | ../node_modules/.pnpm/@dnd-kit+core@6.3.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@dnd-kit/core/dist/core.esm.js |
| 41.7 KiB | src/scenes/hog-functions/sub-templates/sub-templates.ts |
Largest files eagerly shipped from src/scenes/activity/explore/EventsScene.tsx
| Size | File |
|---|---|
| 362.7 KiB | ../node_modules/.pnpm/posthog-js@1.447.12_@types+react@18.3.31_react@18.3.1/node_modules/posthog-js/dist/module.mjs |
| 224.1 KiB | ../node_modules/.pnpm/@posthog+icons@0.39.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@posthog/icons/dist/posthog-icons.es.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 |
| 112.5 KiB | ../packages/quill/packages/primitives/dist/index.js |
| 106.4 KiB | src/products.tsx |
| 98.2 KiB | ../packages/quill/packages/components/dist/index.js |
| 87.7 KiB | src/lib/api.ts |
| 78.8 KiB | src/scenes/dashboard/dashboardLogic.tsx |
| 69.0 KiB | src/lib/lemon-ui/icons/icons.tsx |
| 68.5 KiB | ../products/posthog_ai/frontend/logics/runStreamLogic.ts |
Largest files eagerly shipped from src/scenes/web-analytics/WebAnalyticsScene.tsx
| Size | File |
|---|---|
| 362.7 KiB | ../node_modules/.pnpm/posthog-js@1.447.12_@types+react@18.3.31_react@18.3.1/node_modules/posthog-js/dist/module.mjs |
| 224.1 KiB | ../node_modules/.pnpm/@posthog+icons@0.39.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@posthog/icons/dist/posthog-icons.es.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 |
| 116.4 KiB | ../node_modules/.pnpm/posthog-js@1.447.12_@types+react@18.3.31_react@18.3.1/node_modules/posthog-js/dist/surveys-preview.js |
| 112.5 KiB | ../packages/quill/packages/primitives/dist/index.js |
| 106.4 KiB | src/products.tsx |
| 98.2 KiB | ../packages/quill/packages/components/dist/index.js |
| 87.7 KiB | src/lib/api.ts |
| 78.8 KiB | src/scenes/dashboard/dashboardLogic.tsx |
| 69.0 KiB | src/lib/lemon-ui/icons/icons.tsx |
Largest files eagerly shipped from src/scenes/session-recordings/detail/SessionRecordingDetail.tsx
| Size | File |
|---|---|
| 362.7 KiB | ../node_modules/.pnpm/posthog-js@1.447.12_@types+react@18.3.31_react@18.3.1/node_modules/posthog-js/dist/module.mjs |
| 329.1 KiB | ../node_modules/.pnpm/posthog-js@1.447.12_@types+react@18.3.31_react@18.3.1/node_modules/posthog-js/dist/rrweb.js |
| 224.1 KiB | ../node_modules/.pnpm/@posthog+icons@0.39.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@posthog/icons/dist/posthog-icons.es.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 |
| 112.5 KiB | ../packages/quill/packages/primitives/dist/index.js |
| 106.4 KiB | src/products.tsx |
| 98.2 KiB | ../packages/quill/packages/components/dist/index.js |
| 87.7 KiB | src/lib/api.ts |
| 69.0 KiB | src/lib/lemon-ui/icons/icons.tsx |
| 68.5 KiB | ../products/posthog_ai/frontend/logics/runStreamLogic.ts |
Posted automatically by check-eager-graph · sizes are eager output bytes (shipped, post-tree-shake) from the esbuild metafile · part of #32479
✅ Frontend layers — no new upward imports, 0 removed
Static imports from a lower frontend layer into a higher one (layers, lowest first: kernel, shell, query, features). Compared with the base branch, so an import that a PR also adds to layer-baseline.txt still shows here. Sizes are the source bytes on the eager path of every logged-in page.
| Layer | Eager source bytes | Δ vs base |
|---|---|---|
| kernel | 3.00 MiB | no change |
| shell | 2.41 MiB | no change |
| query | 56.9 KiB | no change |
| features | 274.1 KiB | no change |
Download the interactive layer graph for this PR.
Posted automatically by check-layers
✅ Toolbar bundle — eager 2.45 MiB within budget
What the toolbar ships to customer pages, measured from the esbuild output (minified, post-tree-shake). The eager set is the entry plus everything statically imported from it — fetched before any feature runs; deferred chunks load lazily. The eager guardrail is 5.72 MiB. Each output file must also stay below 10 MB, where CloudFront stops compressing it. The module boundary is enforced separately by check-toolbar-graph.
| Metric | Size | Δ vs base | Budget |
|---|---|---|---|
| Eager (shipped) entry + static imports |
2.45 MiB · 19 files | no change | ████░░░░░░ 42.7% of 5.72 MiB |
| Deferred (lazy) | 2.64 MiB · 43 files | no change | n/a — loads on demand |
Loader dist/toolbar.js |
1.2 KiB | no change | █░░░░░░░░░ 6.0% of 19.5 KiB |
Largest eagerly-shipped chunks
| Size | File |
|---|---|
| 980.7 KiB | dist/toolbar/toolbar-app-HYLKOB2I.css |
| 738.5 KiB | dist/toolbar/chunk-chunk-4VATDHUM.js |
| 290.5 KiB | dist/toolbar/chunk-chunk-T6UVYVTK.js |
| 137.6 KiB | dist/toolbar/chunk-chunk-5KE6ERMB.js |
| 131.8 KiB | dist/toolbar/chunk-chunk-FQJO25M6.js |
| 75.7 KiB | dist/toolbar/toolbar-app-DY4W6A5U.js |
| 69.0 KiB | dist/toolbar/chunk-chunk-BFAXZMC5.js |
| 33.8 KiB | dist/toolbar/chunk-chunk-2J4VD6DQ.js |
| 21.9 KiB | dist/toolbar/chunk-chunk-HEE6ERIE.js |
| 6.8 KiB | dist/toolbar/chunk-chunk-RVLGRPCH.js |
Posted automatically by check-toolbar-size · sizes are toolbar output bytes (shipped, post-tree-shake) from the esbuild metafile
✅ Dist folder size — 🔺 +30.8 KiB (+0.0%)
Total size of the built frontend/dist folder (all assets), compared against the base branch.
Total: 1007.28 MiB · 🔺 +30.8 KiB (+0.0%)
⚠️ Playwright — 1 flaky
🎭 Playwright report · View test results →
- Remove an insight from a notebook and verify text persists (chromium)
These issues are not necessarily caused by your changes.
Annoyed by this section? Help fix flakies and failures and it will go green!
⚠️ Backend coverage — 90.0% of changed backend lines covered — 12 uncovered
🧪 Backend test coverage
Patch coverage — changed backend lines (products + core): ██████████████████░░ 90.0% (110 / 122)
| File | Patch | Uncovered changed lines |
|---|---|---|
posthog/admin/console/tools.py |
77.8% | 87–88, 97, 102–103, 117, 122–123, 134–136, 162 |
🤖 Agents: add a test only if an uncovered line exposes a realistic regression that existing tests miss. Otherwise explain why no new test is needed under "How did you test this code?". Gap list: the patch-coverage artifact on this run (gh run download 11556212464485 -n patch-coverage), or the coverage-data block at the end of this comment.
Per-product line coverage (touched products)
| Product | Coverage | Lines |
|---|---|---|
platform_features |
██░░░░░░░░░░░░░░░░░░ 12.1% |
7 / 58 |
data_tools |
████████████░░░░░░░░ 57.6% |
95 / 165 |
warehouse_sources_queue |
█████████████░░░░░░░ 65.8% |
2,192 / 3,330 |
demo |
██████████████░░░░░░ 71.5% |
1,996 / 2,793 |
knowledge_writer |
████████████████░░░░ 77.8% |
1,474 / 1,895 |
batch_exports |
█████████████████░░░ 82.9% |
24,782 / 29,889 |
engineering_analytics |
█████████████████░░░ 85.6% |
12,515 / 14,615 |
ml_inference |
█████████████████░░░ 86.3% |
524 / 607 |
commands |
█████████████████░░░ 86.7% |
1,674 / 1,930 |
mcp_analytics |
██████████████████░░ 87.8% |
6,827 / 7,777 |
posthog_ai |
██████████████████░░ 88.2% |
4,514 / 5,116 |
apm |
██████████████████░░ 88.2% |
1,973 / 2,236 |
notebooks |
██████████████████░░ 88.6% |
15,594 / 17,599 |
dashboards |
██████████████████░░ 89.6% |
9,050 / 10,097 |
cohorts |
██████████████████░░ 90.7% |
9,868 / 10,885 |
warehouse_suggestions |
██████████████████░░ 90.7% |
4,264 / 4,700 |
actions |
██████████████████░░ 90.9% |
1,524 / 1,677 |
visual_review |
██████████████████░░ 90.9% |
10,634 / 11,698 |
data_warehouse |
██████████████████░░ 91.1% |
15,984 / 17,546 |
signals |
██████████████████░░ 91.2% |
112,872 / 123,758 |
cdp |
██████████████████░░ 91.4% |
10,896 / 11,920 |
today |
██████████████████░░ 91.5% |
4,136 / 4,521 |
canvas |
██████████████████░░ 91.5% |
8,559 / 9,351 |
tasks |
██████████████████░░ 91.6% |
86,287 / 94,203 |
autoresearch |
██████████████████░░ 91.6% |
12,203 / 13,318 |
data_modeling |
██████████████████░░ 91.7% |
12,686 / 13,835 |
streamlit_apps |
██████████████████░░ 92.0% |
3,200 / 3,478 |
alerts_platform |
██████████████████░░ 92.0% |
10,654 / 11,576 |
release |
██████████████████░░ 92.1% |
453 / 492 |
business_knowledge |
██████████████████░░ 92.2% |
10,900 / 11,824 |
review_hog |
██████████████████░░ 92.4% |
18,498 / 20,025 |
metrics |
██████████████████░░ 92.4% |
12,950 / 14,019 |
conversations |
██████████████████░░ 92.4% |
31,728 / 34,335 |
wizard |
██████████████████░░ 92.4% |
7,323 / 7,922 |
error_tracking |
██████████████████░░ 92.5% |
20,979 / 22,680 |
slack_app |
███████████████████░ 92.5% |
25,572 / 27,631 |
notifications |
███████████████████░ 92.8% |
1,230 / 1,326 |
early_access_features |
███████████████████░ 92.8% |
1,400 / 1,509 |
legal_documents |
███████████████████░ 93.0% |
2,380 / 2,558 |
ai_training |
███████████████████░ 93.1% |
605 / 650 |
managed_warehouse |
███████████████████░ 93.2% |
15,792 / 16,947 |
alerts |
███████████████████░ 93.2% |
13,752 / 14,756 |
authorization |
███████████████████░ 93.2% |
851 / 913 |
stamphog |
███████████████████░ 93.2% |
11,448 / 12,277 |
webmcp |
███████████████████░ 93.3% |
277 / 297 |
web_analytics |
███████████████████░ 93.5% |
27,059 / 28,934 |
surveys |
███████████████████░ 93.6% |
7,847 / 8,388 |
exports |
███████████████████░ 93.7% |
4,474 / 4,777 |
approvals |
███████████████████░ 93.7% |
5,026 / 5,366 |
cross_project_dashboards |
███████████████████░ 93.7% |
867 / 925 |
context_layer |
███████████████████░ 93.9% |
4,075 / 4,342 |
marketing_analytics |
███████████████████░ 93.9% |
22,429 / 23,882 |
messaging |
███████████████████░ 93.9% |
9,282 / 9,883 |
ai_observability |
███████████████████░ 93.9% |
41,025 / 43,671 |
mcp_store |
███████████████████░ 94.0% |
9,391 / 9,991 |
ai_gateway |
███████████████████░ 94.0% |
1,472 / 1,566 |
billing_alerts |
███████████████████░ 94.0% |
2,332 / 2,480 |
annotations |
███████████████████░ 94.1% |
1,460 / 1,552 |
workflows |
███████████████████░ 94.1% |
30,380 / 32,289 |
managed_migrations |
███████████████████░ 94.2% |
1,886 / 2,003 |
customer_analytics |
███████████████████░ 94.2% |
31,846 / 33,808 |
access_control |
███████████████████░ 94.3% |
8,606 / 9,122 |
replay_vision |
███████████████████░ 94.4% |
33,431 / 35,422 |
logs |
███████████████████░ 94.4% |
20,547 / 21,762 |
reminders |
███████████████████░ 94.5% |
837 / 886 |
experiments |
███████████████████░ 95.0% |
47,426 / 49,941 |
growth |
███████████████████░ 95.0% |
11,604 / 12,218 |
warehouse_sources |
███████████████████░ 95.0% |
142,375 / 149,905 |
endpoints |
███████████████████░ 95.0% |
9,725 / 10,239 |
product_tours |
███████████████████░ 95.1% |
1,271 / 1,337 |
skills |
███████████████████░ 95.1% |
7,658 / 8,053 |
uptime_monitoring |
███████████████████░ 95.3% |
306 / 321 |
subscriptions |
███████████████████░ 95.7% |
14,272 / 14,921 |
data_catalog |
███████████████████░ 95.7% |
4,750 / 4,965 |
ui_customization |
███████████████████░ 95.7% |
714 / 746 |
tracing |
███████████████████░ 95.8% |
5,107 / 5,333 |
product_analytics |
███████████████████░ 95.8% |
31,451 / 32,837 |
feature_flags |
███████████████████░ 95.8% |
30,977 / 32,330 |
revenue_analytics |
███████████████████░ 95.9% |
1,877 / 1,958 |
data_quality |
███████████████████░ 96.0% |
8,583 / 8,937 |
aeo |
███████████████████░ 96.3% |
4,666 / 4,845 |
groups |
███████████████████░ 96.4% |
2,068 / 2,145 |
account_audits |
███████████████████░ 96.5% |
823 / 853 |
security |
███████████████████░ 96.8% |
1,597 / 1,650 |
pulse |
███████████████████░ 97.0% |
2,026 / 2,089 |
analytics_platform |
████████████████████ 98.0% |
2,962 / 3,022 |
field_notes |
████████████████████ 98.4% |
181 / 184 |
Report-only. Patch coverage = changed backend lines covered vs origin/master. Sorted lowest first.
Known gaps: lines covered only by Temporal tests show as uncovered; core line numbers may drift if master changed the same file.
Master landed its own tool operations (#130715, #130716) while this branch built an inline version of the same thing. Master's design wins where both built it: - ToolOperation, its handler protocol, the operation page at /tools/<tool>/<op>/, gate, preview via ConfirmStep and the signed token, and result pages all come from master. The inline OperationForm block, _fill_operation_forms and the POST path in tool_page are dropped, so tool pages stay read-only (@require_safe). - check_danger replaces check_danger_contract. - Live replaces Page.refresh_seconds and the meta refresh in base.html. - posthog/settings/logs.py takes master's version; the audit log level fix lands in #131086. Kept from this branch, adapted to master's block rendering (_block.html): - Filters (GET form, field groups and their contract check), Stats/Stat, Links/Link, Notice.tone (callout, now also shows the notice link), Table.title/numeric_columns/scrolls, Cell.detail - data-pending-label loading labels in console.js - the "Incidents" tool group - Live can hold a Stats block too, so a status row can follow running work Tests: the inline-operation cases now hit master's operation URL, which keeps coverage master lacks for tool operations (offered lookup, query kept on redirect, refusal re-renders the form, CSRF). The ToolOperation danger and Filters contract cases stay. AGENTS.md and the extending-the-admin-console skill describe master's operation model plus the new blocks. console.css rebuilt.
…label - Link.href now gets the same in-site check as Notice and Fact, so a tool cannot render an off-site or protocol-relative button. - Filters renders the form's hidden fields. The field-group check only looks at visible fields, so a hidden one used to vanish from the GET. - Operation and ToolOperation take pending_label. The button that runs the operation (the form page without a preview, or the confirm page) shows it through console.js, for operations whose next page takes a while. - One test renders a tool page with a toned Notice, Stats, Links and Filters with a hidden field, because Django templates hide typos.
Notice links now render as buttons in the new callout, so they get the same /\ check Fact and Link already have; browsers read a leading /\ like //. A Filters form with an invalid hidden field failed without telling staff why, so its errors render next to it like on operation pages.
|
Posted by an agent on @webjunkie's behalf. @dmarchuk heads-up while you're travelling: #130715 and #130716 landed today with the console's own
Everything is in separate commits, so it's easy to review or revert. |
…ole-tool-operations # Conflicts: # posthog/admin/test_admin_console.py
webjunkie
left a comment
There was a problem hiding this comment.
🤖 Agent review · verdict authorized, text not reviewed
Approving. The blocks and the operation changes had two review passes on Friday. The only new commit since then, the spacing fix, touches CSS and templates only.
Note for other reviewers: an agent on @webjunkie's behalf pushed several of the commits here, so this approval is not fully independent of the code.
…ole-tool-operations # Conflicts: # posthog/admin/console/registry.py # posthog/admin/test_admin_console.py
|
Risk: Low · 1 low This increment adds a Sentinel reviewed |
There was a problem hiding this comment.
PostHog Review · Standard · reviewed 20022d2: 1 Should fix.
See this review and its findings in PostHog Review. Comment @posthog review --deep for a Deep review. A Deep review takes longer and looks deeper than a Standard review.
…ole-tool-operations # Conflicts: # posthog/admin/console/AGENTS.md # posthog/admin/console/tools.py # posthog/admin/test_admin_console.py # posthog/templates/admin_console/_block.html
…ole-tool-operations # Conflicts: # posthog/admin/test_admin_console.py
…p secrets out of live blocks
…ole-tool-operations # Conflicts: # posthog/admin/test_admin_console.py
|
This pull request was merged into |
Deploy status
This table shows the |
Problem
Changes
Filtersblock: a form that submits by GET, so a reload or a shared link changes nothing. Every visible field must sit in a named group; hidden fields render too.Stats,Links(in-site links only) and a tone onNoticefor callouts. ALiveblock can holdStats.Tablegets a title, numeric columns and its own scrolling;Cellgets a detail line.pending_label) while a slow page loads.Note
Merged with master after #130715 and #130716 landed the console's own
ToolOperation(operation page, gate, preview,Live). This PR now uses those instead of its first inline-operation design. The audit log level fix moved to #131086.How did you test this code?
test_admin_consoleand the AI gateway console tests: 321 passed locally after merging master, which added theSecretblock and moved some tests into products.StatsandLinksnow opens after the operation runs. The secret result test fails without the fix.Liveblock refuses aSecret, so a live refresh can't show a password again./\t/example.com, are now refused, because browsers drop those characters and would leave the site. Tests cover aLinkand aFact.CI report: the uncovered lines in
tools.pyare class and field definitions, which run at import before coverage starts. Tests build and render every one of these blocks.CI report: the bundle size increase is in the exporter and render-query bundles, which this PR does not change. It only touches
frontend/public/admin-console/, which those bundles do not include.Release status
Docs update
posthog/admin/console/AGENTS.mdand/extending-the-admin-consoledescribe the new blocks.🤖 Agent context
Autonomy: Human-driven (agent-assisted)
Agent: Claude Code, Claude Opus 5.5 (original PR and the master merge)
Skills:
/extending-the-admin-console,/editing-agents-md,/writing-tests,/writing-user-facing-copy,/writing-pr-descriptionsScreenshot from the first version (the operation form now opens on its own page):