Repository navigation
Conversation
🤖 CI report
|
| Function | Location | Complexity | Limit |
|---|---|---|---|
getIntegrationNameFromKind |
frontend/src/lib/integrations/utils.ts:145 |
26 | 10 |
NativeEmailTemplaterForm |
frontend/src/scenes/hog-functions/email-templater/EmailTemplater.tsx:536 |
15 | 10 |
NativeEmailIntegrationChoice |
frontend/src/scenes/hog-functions/email-templater/EmailTemplater.tsx:273 |
13 | 10 |
⚠️ Bundle size — 🔺 +203.0 KiB (+0.3%)
Uncompressed size of every built .js bundle, compared against the base branch.
Total: 77.11 MiB · 🔺 +203.0 KiB (+0.3%)
| File | Size | Δ vs base |
|---|---|---|
render-query/src/render-query/render-query.js |
24.94 MiB | 🔺 +44.0 KiB (+0.2%) |
posthog-app/_parent/products/dashboards/frontend/dashboards/Dashboards.js |
41.1 KiB | 🔺 +41.1 KiB (new) |
posthog-app/src/scenes/dashboard/dashboards/Dashboards.js |
removed | 🟢 -41.1 KiB (-100.0%) |
posthog-app/src/scenes/authentication/auth/Auth.js |
39.2 KiB | 🔺 +39.2 KiB (new) |
posthog-app/_parent/products/ai_observability/frontend/evaluations/AIObservabilityEvaluation.js |
151.1 KiB | 🔺 +38.0 KiB (+33.6%) |
posthog-app/_parent/products/workflows/frontend/Transactional/TransactionalScene.js |
32.5 KiB | 🔺 +32.5 KiB (new) |
posthog-app/src/scenes/authentication/signup/Signup.js |
removed | 🟢 -20.9 KiB (-100.0%) |
posthog-app/src/scenes/authentication/login/Login.js |
removed | 🟢 -12.4 KiB (-100.0%) |
posthog-app/_parent/products/apm/frontend/ApplicationObservabilityScene.js |
24.0 KiB | 🔺 +12.2 KiB (+103.6%) |
exporter/src/exporter/exporter.js |
32.1 KiB | 🔺 +11.2 KiB (+53.6%) |
posthog-app/_parent/products/dashboards/frontend/dashboards/templates/DashboardTemplateCopyScene.js |
10.8 KiB | 🔺 +10.8 KiB (new) |
posthog-app/src/scenes/dashboard/dashboards/templates/DashboardTemplateCopyScene.js |
removed | 🟢 -10.7 KiB (-100.0%) |
posthog-app/src/scenes/web-analytics/WebAnalyticsScene.js |
247.8 KiB | 🔺 +10.4 KiB (+4.4%) |
posthog-app/_parent/products/product_analytics/frontend/insights/savedInsights/SavedInsights.js |
41.4 KiB | 🟢 -9.2 KiB (-18.1%) |
exporter/_parent/products/product_analytics/frontend/insights/editor/filters/WebAnalyticsEditorFilters.js |
8.5 KiB | 🔺 +8.5 KiB (new) |
exporter/src/scenes/insights/EditorFilters/WebAnalyticsEditorFilters.js |
removed | 🟢 -8.5 KiB (-100.0%) |
posthog-app/src/scenes/experiments/Experiment.js |
418.0 KiB | 🔺 +8.0 KiB (+2.0%) |
posthog-app/_parent/products/workflows/frontend/WorkflowsScene.js |
62.9 KiB | 🔺 +6.9 KiB (+12.3%) |
posthog-app/_parent/products/product_analytics/frontend/insights/editor/filters/WebAnalyticsEditorFilters.js |
6.0 KiB | 🔺 +6.0 KiB (new) |
posthog-app/src/scenes/insights/EditorFilters/WebAnalyticsEditorFilters.js |
removed | 🟢 -6.0 KiB (-100.0%) |
posthog-app/_parent/products/workflows/frontend/Broadcasts/BroadcastsScene.js |
32.2 KiB | 🔺 +5.9 KiB (+22.5%) |
exporter/src/exporter/scenes/ExporterNotebookScene.js |
3.90 MiB | 🔺 +3.2 KiB (+0.1%) |
posthog-app/_parent/products/signals/frontend/inbox/InboxScene.js |
515.0 KiB | 🔺 +2.8 KiB (+0.5%) |
exporter/src/queries/schema.js |
1.27 MiB | 🟢 -2.1 KiB (-0.2%) |
posthog-app/src/queries/schema.js |
1.27 MiB | 🟢 -2.1 KiB (-0.2%) |
posthog-app/_parent/products/replay_vision/frontend/replay_scanners/ScannerEditorScene.js |
83.8 KiB | 🔺 +1.7 KiB (+2.1%) |
posthog-app/src/scenes/analytics/AnalyticsList.js |
29.9 KiB | 🔺 +1.1 KiB (+3.9%) |
posthog-app/src/scenes/authentication/auth/loginLogic.js |
1.1 KiB | 🔺 +1.1 KiB (new) |
posthog-app/src/scenes/authentication/login/loginLogic.js |
removed | 🟢 -1.1 KiB (-100.0%) |
posthog-app/_parent/products/replay_vision/frontend/observations/ReplayObservation.js |
41.1 KiB | 🔺 +1013 B (+2.5%) |
Posted automatically by build-bundle-size-report · uncompressed bytes from dist-report
⚠️ Eager graph — 3 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.01 MiB · 25 files | 🔺 +10.1 KiB (+1.0%) | █████████░ 88.1% 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 |
2.97 MiB · 621 files | 🔺 +12.1 KiB (+0.4%) | ██████████ 98.1% of 3.03 MiB |
🟡 authenticated shell (every logged-in page)src/scenes/AuthenticatedShell.tsx |
7.59 MiB · 2,566 files | 🔺 +113.2 KiB (+1.5%) | ██████████ 101.2% of 7.50 MiB |
dashboard scenesrc/scenes/dashboard/Dashboard.tsx |
9.96 MiB · 3,731 files | 🔺 +28.8 KiB (+0.3%) | ██████████ 99.4% of 10.01 MiB |
🟡 today home pathsrc/scenes/AuthenticatedShell.tsx + src/scenes/project-homepage/ProjectHomepage.tsx + src/scenes/project-homepage/today/TodayHome.tsx |
7.77 MiB · 2,659 files | 🔺 +119.7 KiB (+1.5%) | ██████████ 100.4% of 7.74 MiB |
🟡 AI-first home pathsrc/scenes/AuthenticatedShell.tsx + src/scenes/project-homepage/ProjectHomepage.tsx + src/scenes/project-homepage/ai-first/AiFirstHomepage.tsx |
8.01 MiB · 2,652 files | 🔺 +120.4 KiB (+1.5%) | ██████████ 101.4% of 7.91 MiB |
events scenesrc/scenes/activity/explore/EventsScene.tsx |
9.40 MiB · 3,512 files | 🔺 +27.0 KiB (+0.3%) | ██████████ 98.0% of 9.59 MiB |
web analytics scenesrc/scenes/web-analytics/WebAnalyticsScene.tsx |
10.34 MiB · 3,763 files | 🔺 +34.3 KiB (+0.3%) | ██████████ 95.4% of 10.83 MiB |
replay detail scenesrc/scenes/session-recordings/detail/SessionRecordingDetail.tsx |
8.42 MiB · 3,088 files | 🔺 +15.9 KiB (+0.2%) | █████████░ 88.9% of 9.47 MiB |
🟢 node_modules/monaco-editor/ stays out of src/index.tsx
🟢 src/lib/components/ActivityLog/describers 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/scenes/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/monaco-editor/ stays out of src/scenes/AuthenticatedShell.tsx
🟢 src/lib/components/ActivityLog/describers 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
🟢 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
🟢 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
🟢 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/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
🟢 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
🟢 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/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/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
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.7 KiB | ../node_modules/.pnpm/base64-js@1.5.1/node_modules/base64-js/index.js |
| 1.7 KiB | src/index.tsx |
| 1.6 KiB | src/lib/utils/bootTiming.ts |
| 1.2 KiB | src/RootErrorBoundary.tsx |
| 949 B | src/scenes/ChunkLoadErrorBoundary.tsx |
Largest files eagerly shipped from src/index.tsx + src/scenes/App.tsx + src/scenes/bootApp.ts
| Size | File |
|---|---|
| 322.9 KiB | ../node_modules/.pnpm/posthog-js@1.438.23_@types+react@18.3.27_react@18.3.1/node_modules/posthog-js/dist/module.mjs |
| 217.5 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 |
| 102.1 KiB | src/products.tsx |
| 86.1 KiB | src/lib/api.ts |
| 68.3 KiB | src/lib/lemon-ui/icons/icons.tsx |
| 41.9 KiB | ../node_modules/.pnpm/@dnd-kit+core@6.0.8_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 |
| 27.0 KiB | ../node_modules/.pnpm/tailwind-merge@2.2.2/node_modules/tailwind-merge/dist/bundle-mjs.mjs |
| 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 |
|---|---|
| 322.9 KiB | ../node_modules/.pnpm/posthog-js@1.438.23_@types+react@18.3.27_react@18.3.1/node_modules/posthog-js/dist/module.mjs |
| 286.4 KiB | src/taxonomy/core-filter-definitions-by-group.json |
| 239.9 KiB | ../packages/quill/packages/quill/dist/index.js |
| 217.5 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 |
| 153.8 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 |
| 102.1 KiB | src/products.tsx |
| 94.5 KiB | ../node_modules/.pnpm/@tiptap+core@3.20.6_@tiptap+pm@3.20.6/node_modules/@tiptap/core/dist/index.js |
| 92.5 KiB | ../node_modules/.pnpm/prosemirror-view@1.40.1/node_modules/prosemirror-view/dist/index.js |
| 86.1 KiB | src/lib/api.ts |
Largest files eagerly shipped from src/scenes/dashboard/Dashboard.tsx
| Size | File |
|---|---|
| 322.9 KiB | ../node_modules/.pnpm/posthog-js@1.438.23_@types+react@18.3.27_react@18.3.1/node_modules/posthog-js/dist/module.mjs |
| 286.4 KiB | src/taxonomy/core-filter-definitions-by-group.json |
| 239.9 KiB | ../packages/quill/packages/quill/dist/index.js |
| 217.5 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 |
| 153.8 KiB | ../node_modules/.pnpm/re2js@0.4.1/node_modules/re2js/build/index.esm.js |
| 144.1 KiB | ../packages/quill/packages/primitives/dist/index.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 |
| 102.1 KiB | src/products.tsx |
| 94.5 KiB | ../node_modules/.pnpm/@tiptap+core@3.20.6_@tiptap+pm@3.20.6/node_modules/@tiptap/core/dist/index.js |
| 92.5 KiB | ../node_modules/.pnpm/prosemirror-view@1.40.1/node_modules/prosemirror-view/dist/index.js |
Largest files eagerly shipped from src/scenes/AuthenticatedShell.tsx + src/scenes/project-homepage/ProjectHomepage.tsx + src/scenes/project-homepage/today/TodayHome.tsx
| Size | File |
|---|---|
| 322.9 KiB | ../node_modules/.pnpm/posthog-js@1.438.23_@types+react@18.3.27_react@18.3.1/node_modules/posthog-js/dist/module.mjs |
| 286.4 KiB | src/taxonomy/core-filter-definitions-by-group.json |
| 239.9 KiB | ../packages/quill/packages/quill/dist/index.js |
| 217.5 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 |
| 153.8 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 |
| 102.1 KiB | src/products.tsx |
| 94.5 KiB | ../node_modules/.pnpm/@tiptap+core@3.20.6_@tiptap+pm@3.20.6/node_modules/@tiptap/core/dist/index.js |
| 92.5 KiB | ../node_modules/.pnpm/prosemirror-view@1.40.1/node_modules/prosemirror-view/dist/index.js |
| 86.1 KiB | src/lib/api.ts |
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 |
|---|---|
| 322.9 KiB | ../node_modules/.pnpm/posthog-js@1.438.23_@types+react@18.3.27_react@18.3.1/node_modules/posthog-js/dist/module.mjs |
| 286.4 KiB | src/taxonomy/core-filter-definitions-by-group.json |
| 239.9 KiB | ../packages/quill/packages/quill/dist/index.js |
| 217.5 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 |
| 153.8 KiB | ../node_modules/.pnpm/re2js@0.4.1/node_modules/re2js/build/index.esm.js |
| 144.1 KiB | ../packages/quill/packages/primitives/dist/index.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 |
| 102.1 KiB | src/products.tsx |
| 94.5 KiB | ../node_modules/.pnpm/@tiptap+core@3.20.6_@tiptap+pm@3.20.6/node_modules/@tiptap/core/dist/index.js |
| 92.5 KiB | ../node_modules/.pnpm/prosemirror-view@1.40.1/node_modules/prosemirror-view/dist/index.js |
Largest files eagerly shipped from src/scenes/activity/explore/EventsScene.tsx
| Size | File |
|---|---|
| 322.9 KiB | ../node_modules/.pnpm/posthog-js@1.438.23_@types+react@18.3.27_react@18.3.1/node_modules/posthog-js/dist/module.mjs |
| 286.4 KiB | src/taxonomy/core-filter-definitions-by-group.json |
| 239.9 KiB | ../packages/quill/packages/quill/dist/index.js |
| 217.5 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 |
| 153.8 KiB | ../node_modules/.pnpm/re2js@0.4.1/node_modules/re2js/build/index.esm.js |
| 144.1 KiB | ../packages/quill/packages/primitives/dist/index.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 |
| 102.1 KiB | src/products.tsx |
| 94.5 KiB | ../node_modules/.pnpm/@tiptap+core@3.20.6_@tiptap+pm@3.20.6/node_modules/@tiptap/core/dist/index.js |
| 92.5 KiB | ../node_modules/.pnpm/prosemirror-view@1.40.1/node_modules/prosemirror-view/dist/index.js |
Largest files eagerly shipped from src/scenes/web-analytics/WebAnalyticsScene.tsx
| Size | File |
|---|---|
| 322.9 KiB | ../node_modules/.pnpm/posthog-js@1.438.23_@types+react@18.3.27_react@18.3.1/node_modules/posthog-js/dist/module.mjs |
| 286.4 KiB | src/taxonomy/core-filter-definitions-by-group.json |
| 239.9 KiB | ../packages/quill/packages/quill/dist/index.js |
| 217.5 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 |
| 182.9 KiB | src/queries/validators.js |
| 153.8 KiB | ../node_modules/.pnpm/re2js@0.4.1/node_modules/re2js/build/index.esm.js |
| 144.1 KiB | ../packages/quill/packages/primitives/dist/index.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 |
| 102.1 KiB | src/products.tsx |
| 94.5 KiB | ../node_modules/.pnpm/@tiptap+core@3.20.6_@tiptap+pm@3.20.6/node_modules/@tiptap/core/dist/index.js |
Largest files eagerly shipped from src/scenes/session-recordings/detail/SessionRecordingDetail.tsx
| Size | File |
|---|---|
| 322.9 KiB | ../node_modules/.pnpm/posthog-js@1.438.23_@types+react@18.3.27_react@18.3.1/node_modules/posthog-js/dist/module.mjs |
| 316.1 KiB | ../node_modules/.pnpm/posthog-js@1.438.23_@types+react@18.3.27_react@18.3.1/node_modules/posthog-js/dist/rrweb.js |
| 286.4 KiB | src/taxonomy/core-filter-definitions-by-group.json |
| 239.9 KiB | ../packages/quill/packages/quill/dist/index.js |
| 217.5 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 |
| 153.8 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 |
| 102.1 KiB | src/products.tsx |
| 94.5 KiB | ../node_modules/.pnpm/@tiptap+core@3.20.6_@tiptap+pm@3.20.6/node_modules/@tiptap/core/dist/index.js |
| 92.5 KiB | ../node_modules/.pnpm/prosemirror-view@1.40.1/node_modules/prosemirror-view/dist/index.js |
Posted automatically by check-eager-graph · sizes are eager output bytes (shipped, post-tree-shake) from the esbuild metafile · part of PostHog#32479
✅ Toolbar bundle — eager 2.30 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.30 MiB · 18 files | 🔺 +9.5 KiB (+0.4%) | ████░░░░░░ 40.3% of 5.72 MiB |
| Deferred (lazy) | 2.11 MiB · 40 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 |
|---|---|
| 914.9 KiB | dist/toolbar/toolbar-app-IWMSDEIE.css |
| 694.7 KiB | dist/toolbar/chunk-chunk-QC5IAHEQ.js |
| 259.9 KiB | dist/toolbar/chunk-chunk-WGO24YVJ.js |
| 131.8 KiB | dist/toolbar/chunk-chunk-FDH2IBXT.js |
| 130.4 KiB | dist/toolbar/chunk-chunk-BMYOU6DS.js |
| 74.8 KiB | dist/toolbar/toolbar-app-X2KXA7ED.js |
| 69.0 KiB | dist/toolbar/chunk-chunk-TSAL54PB.js |
| 35.6 KiB | dist/toolbar/chunk-chunk-ZN36Z66T.js |
| 21.7 KiB | dist/toolbar/chunk-chunk-DSUUMA6S.js |
| 6.8 KiB | dist/toolbar/chunk-chunk-DV7IWQNF.js |
Posted automatically by check-toolbar-size · sizes are toolbar output bytes (shipped, post-tree-shake) from the esbuild metafile
✅ Dist folder size — 🔺 +2.89 MiB (+0.3%)
Total size of the built frontend/dist folder (all assets), compared against the base branch.
Total: 972.19 MiB · 🔺 +2.89 MiB (+0.3%)
ℹ️ MCP UI apps size — 35 app(s), 29001.2 KB JS
Built size of each MCP UI app (main.js + styles.css).
| App | JS | CSS |
|---|---|---|
| debug | 844.3 KB | 211.1 KB |
| explain-chart | 1005.6 KB | 211.1 KB |
| action | 767.7 KB | 211.1 KB |
| action-list | 835.3 KB | 211.1 KB |
| cohort | 766.7 KB | 211.1 KB |
| cohort-list | 834.3 KB | 211.1 KB |
| email-template | 766.6 KB | 211.1 KB |
| error-details | 771.6 KB | 211.1 KB |
| error-issue | 768.9 KB | 211.1 KB |
| error-issue-list | 836.8 KB | 211.1 KB |
| experiment | 832.4 KB | 211.1 KB |
| experiment-list | 836.1 KB | 211.1 KB |
| experiment-results | 835.0 KB | 211.1 KB |
| feature-flag | 834.7 KB | 211.1 KB |
| feature-flag-list | 838.4 KB | 211.1 KB |
| feature-flag-testing | 770.0 KB | 211.1 KB |
| inline-scan | 767.2 KB | 211.1 KB |
| insight-actors | 833.8 KB | 211.1 KB |
| llm-costs | 831.1 KB | 211.1 KB |
| session-recording | 769.0 KB | 211.1 KB |
| survey | 768.3 KB | 211.1 KB |
| survey-global-stats | 831.1 KB | 211.1 KB |
| survey-list | 836.0 KB | 211.1 KB |
| survey-stats | 831.1 KB | 211.1 KB |
| trace-span | 767.1 KB | 211.1 KB |
| trace-span-list | 835.2 KB | 211.1 KB |
| vision-observation-list | 834.4 KB | 211.1 KB |
| workflow | 767.1 KB | 211.1 KB |
| workflow-list | 834.7 KB | 211.1 KB |
| workflow-setup-status | 766.7 KB | 211.1 KB |
| query-results | 1087.6 KB | 211.1 KB |
| render-ui | 1187.2 KB | 211.1 KB |
| visual-review-snapshots | 771.6 KB | 211.1 KB |
| workflow-data-suggestions | 769.4 KB | 211.1 KB |
| workflow-sending-rules | 768.1 KB | 211.1 KB |
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> (cherry picked from commit e7d8226)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> (cherry picked from commit 5da89ec)
…faults Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> (cherry picked from commit 525bfee)
…status Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> (cherry picked from commit 53c404e)
9b5065f to
a403ef8
Compare
Problem
Stack
workflows-sandbox-delivery/daily-caps(feat(workflows): cap sandbox sends per project and recipient each day #604). Lands after feat(workflows): cap sandbox sends per project and recipient each day #604 and every PR below it.a403ef8656c: ruff clean, Workflows and CDP sandbox suites 436 passed; frontend typecheck has no errors in the stack's files (the remaining errors also occur on master), oxlint and oxfmt clean, touched Jest suites 29 passed. Review: GPT-6.1 Sol through a delegated review of the restack (each PR's diff, its conflict resolutions, the slice seams and the save gate), no findings.a403ef8656c, 2026-10-28: live run below. Proof gate: fails only on the fork-onlycigap (exit 3); every other check passes.Impact
Pays into Workflows activation (first billed action after a team creates its first workflow), through the sandbox funnel step. This PR alone moves nothing a user sees. It makes the sandbox row safe to exist.
Merge Danger
Caution
🔴 Merge risk: high · two-way door (merge-risk rubric)
provider: sandbox, which exists only after a flagged API call; the worker's member gate, route and caps land first (feat(workflows): restrict sandbox email to verified org members #594 to feat(workflows): cap sandbox sends per project and recipient each day #604); API tests cover each blocked action and the own-sender paths.Changes
workflows-sandbox-senderon and three settings present,POST /api/projects/:id/integrations/email_sandbox_sender/creates or refreshes one managed email sender for the project.SES_SANDBOX_TENANT_NAMEjoins the required settings, so the endpoint stays unavailable until the shared tenant is configured.Production lines (tests, generated types, docs excluded): 220, from
git diff --numstatagainst #604.How did you test this code?
Live run on the slice tip
1c08de0b9b4on a PostHog preview. Stubs: a local SES endpoint that records each call, andexample.comseeded as a valid MX domain.9b5065fbbfa: this rebuild changed only the PR's docs lines and its base.Lane gate on the head, run on a Fleet box:
pnpm --filter=@posthog/frontend typescript:check) reports no errors on the stack head.uv run mypy --cache-fine-grained .): no issues.hogli ci:preflight --strict: 0 failures (ruff, oxfmt, size, complexity, semgrep devex).posthog/api/test/test_integration.py,posthog/models/test/integration/, and the Workflows sandbox, setup, config and suggestion suites: 1214 passed. The sender suites passed again after the review fixes: 483 passed on a fresh scratch test database.EmailTemplater,lib/integrationsand the Workflows Channels suites: 316 passed.mix-lanescheck on the fork compares each layer with master, so it flags this layer until the Node PRs below it land.Test rationale:
test_sandbox_sender.py: provisioning, the 404 for each missing setting (now including the tenant name), API-key scope, and that users cannot change the managed row. Carried from feat(workflows): provision a managed sandbox email sender #426 with the tenant-name case added. Its status case returned 500 before the review fix.messageTemplateTestSendLogic.test.ts: the default test-send sender skips a sandbox row listed first. It failed before the review fix.EmailTemplater.test.tsx: the sandbox row is absent from both pickers, and a sandbox-only project reads as having no sender. Extends the existing picker test.channelSummary.test.ts,defaultEmailSender.test.ts: the sandbox row neither counts as a set-up email channel nor becomes the default sender.Proof (
fleet proof, on a preview of the stack head, which carries this head's files unchanged):POST email_sandbox_sendercreates the row "Hogflix via PostHog";email/statuson it returns 400 "The sandbox sender is managed by PostHog.".email/statuson the sandbox row goes from a 500 error page to that 400, and making it the project default goes from 200 to 400. The integration list and detail, own-sender status, setup status, reputation and every own-sender save are unchanged. The worker change belongs to fix(cdp): skip email sends through the sandbox sender in the worker #611, the save changes to feat(workflows): validate sandbox sender use at save time #603.email/status500 are fixed here. The setup guide count is fixed in feat(workflows): show the managed sandbox sender in channels #602, where the row first appears. The final read found nothing.Release status
Docs update
docs/internal/workflows-email-sending-tiers.mdnames the tenant setting and the worker skip.🤖 Agent context
Autonomy: Human-driven (agent-assisted)
Agent: Claude Code, Claude Opus 5.5 (carving and new code); review by GPT-6.1 Sol
email/statusendpoint), plus the tenant-name check from feat(workflows): honor shared sandbox tenant pauses #453.email/statusguard. The worker skip it once sat on (fix(cdp): skip email sends through the sandbox sender in the worker #611) is closed: the delivery stack'ssandboxcase lands below this PR instead.tdd,writing-tests,writing-user-facing-copy,writing-pr-descriptions,pr-description,merge-risk,qa-swarmdesign pass.Decisions
success: false, instead of falling through the provider switch as a successSES_SANDBOX_TENANT_NAMEis required, taken from #453 into the first PRInvolvement: no grilling rounds; one design pass (GPT-6.1 Sol); one review round and one final read (GPT-6.1 Sol); proof captured.
🤖 Generated with Claude Code