Repository navigation
Conversation
Co-authored-by: Sam Pennington <56024559+sampennington@users.noreply.github.com> Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
… the product (PostHog#122183) Co-authored-by: Claude <noreply@anthropic.com>
… import (PostHog#123567) Co-authored-by: posthog[bot] <206114724+posthog[bot]@users.noreply.github.com>
…Hog#123917) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…Hog#123956) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…ostHog#122667) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> Co-authored-by: posthog[bot] <206114724+posthog[bot]@users.noreply.github.com>
…ostHog#123892) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…ailable (PostHog#123549) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…PostHog#123945) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
… and inquiries tables (PostHog#124006)
Co-authored-by: scheduled-actions-posthog[bot] <250428249+scheduled-actions-posthog[bot]@users.noreply.github.com>
Co-authored-by: posthog[bot] <206114724+posthog[bot]@users.noreply.github.com>
…og#124460) Co-authored-by: posthog[bot] <206114724+posthog[bot]@users.noreply.github.com>
…ick (PostHog#124510) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Co-authored-by: scheduled-actions-posthog[bot] <250428249+scheduled-actions-posthog[bot]@users.noreply.github.com>
…ts (PostHog#124348) Co-authored-by: posthog[bot] <206114724+posthog[bot]@users.noreply.github.com>
…Hog#124399) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
A send through a `sandbox` email integration now skips unless the worker switch and its three SES route settings are set, and unless every To, CC and BCC address belongs to an active, verified member of the team's active organization. The check runs again right before delivery. Each skip logs a reason and emits a deduplicated blocked event. The sandbox route does not exist yet, so a send that passes every check still skips as unavailable instead of reporting success. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
A sandbox send reaches only the team's own members, so it must not spend or wait on the team's tier budget that its real sends share. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
1951b5b to
4d5ab71
Compare
🤖 CI report
|
| Function | Location | Complexity | Limit |
|---|---|---|---|
DataTable |
frontend/src/queries/nodes/DataTable/DataTable.tsx:156 |
142 | 10 |
NotebookComponentShell |
frontend/src/lib/components/MarkdownNotebook/NotebookComponentShell.tsx:105 |
123 | 10 |
InsightMeta |
frontend/src/lib/components/Cards/InsightCard/InsightMeta.tsx:136 |
121 | 10 |
InternalDataTableVisualization |
frontend/src/queries/nodes/DataVisualization/DataVisualization.tsx:206 |
117 | 10 |
AIObservabilityEvaluation |
products/ai_observability/frontend/evaluations/AIObservabilityEvaluation.tsx:77 |
116 | 10 |
useInsightDisplayOptions |
products/product_analytics/frontend/insights/editor/insightDisplayOptions.tsx:43 |
116 | 10 |
CohortEdit |
frontend/src/scenes/cohorts/CohortEdit.tsx:157 |
85 | 10 |
handleRootEditableKeyDown |
frontend/src/lib/components/MarkdownNotebook/MarkdownNotebook.tsx:6710 |
76 | 10 |
SyncMethodForm |
products/data_warehouse/frontend/shared/components/forms/SyncMethodForm.tsx:191 |
70 | 10 |
submitNewTask |
products/posthog_ai/frontend/scenes/TaskTracker/taskTrackerSceneLogic.ts:978 |
63 | 10 |
MessageTemplate |
products/workflows/frontend/TemplateLibrary/MessageTemplate.tsx:59 |
62 | 10 |
EditKeyModal |
products/ai_observability/frontend/settings/LLMProviderKeysSettings.tsx:561 |
61 | 10 |
ReportCardRaw |
products/signals/frontend/inbox/components/cards/ReportCard.tsx:109 |
61 | 10 |
MarkdownNotebookEditor |
frontend/src/lib/components/MarkdownNotebook/MarkdownNotebook.tsx:666 |
57 | 10 |
MetricRowGroup |
frontend/src/scenes/experiments/MetricsView/new/MetricRowGroup.tsx:549 |
55 | 10 |
handleNotebookKeyDown |
frontend/src/lib/components/MarkdownNotebook/MarkdownNotebook.tsx:5100 |
49 | 10 |
DashboardItems |
frontend/src/scenes/dashboard/DashboardItems.tsx:101 |
48 | 10 |
InboxDetailFrame |
products/signals/frontend/inbox/components/detail/ReportDetail.tsx:204 |
48 | 10 |
renderNotebookRow |
frontend/src/lib/components/MarkdownNotebook/MarkdownNotebook.tsx:6972 |
46 | 10 |
saveWorkflowSuccess |
products/workflows/frontend/Workflows/workflowLogic.ts:4545 |
43 | 10 |
NotebookJupyterCellOutput |
frontend/src/scenes/notebooks/Nodes/components/NotebookJupyterCellOutput.tsx:45 |
42 | 10 |
executeJupyterCommand |
frontend/src/lib/components/MarkdownNotebook/MarkdownNotebook.tsx:5967 |
41 | 10 |
runSave |
products/workflows/frontend/Workflows/workflowLogic.ts:3453 |
41 | 10 |
openScene |
frontend/src/scenes/sceneLogic.tsx:921 |
40 | 10 |
refreshDashboardItems |
frontend/src/scenes/dashboard/dashboardLogic.tsx:5361 |
39 | 10 |
TaskRunComposer |
products/posthog_ai/frontend/scenes/TaskTracker/components/TaskRunComposer.tsx:57 |
39 | 10 |
<anonymous> |
products/workflows/frontend/Workflows/workflowLogic.ts:4001 |
39 | 10 |
DashboardInsightResultMenu |
products/dashboards/frontend/components/DashboardInsightResultMenu.tsx:28 |
38 | 10 |
handleRootEditableInput |
frontend/src/lib/components/MarkdownNotebook/MarkdownNotebook.tsx:6330 |
37 | 10 |
handleKeyDown |
frontend/src/lib/components/MarkdownNotebook/NotebookComponentShell.tsx:518 |
37 | 10 |
StartupProgram |
frontend/src/scenes/startups/StartupProgram.tsx:120 |
37 | 10 |
AddKeyModal |
products/ai_observability/frontend/settings/LLMProviderKeysSettings.tsx:241 |
36 | 10 |
ComposerModelEffortPickers |
products/posthog_ai/frontend/components/composer/ComposerModelEffortPickers.tsx:152 |
36 | 10 |
discussReport |
products/signals/frontend/inbox/inboxTaskKickoffLogic.ts:846 |
36 | 10 |
handleBeforeInput |
frontend/src/lib/components/MarkdownNotebook/MarkdownNotebook.tsx:2625 |
35 | 10 |
OfflineItemInspector |
products/ai_observability/frontend/offline-evaluations/OfflineItemInspector.tsx:16 |
35 | 10 |
<anonymous> |
frontend/src/scenes/max/Thread.tsx:272 |
34 | 10 |
<anonymous> |
frontend/src/queries/nodes/DataNode/LoadNext.tsx:24 |
33 | 10 |
InsightsTable |
products/product_analytics/frontend/insights/shared/InsightsTable/InsightsTable.tsx:73 |
33 | 10 |
ReplayObservationSceneComponent |
products/replay_vision/frontend/observations/ReplayObservation.tsx:59 |
33 | 10 |
HogFlowEditorPanelBuildDetail |
products/workflows/frontend/Workflows/hogflows/panel/HogFlowEditorPanelBuildDetail.tsx:44 |
33 | 10 |
WorkflowScene |
products/workflows/frontend/Workflows/WorkflowScene.tsx:66 |
32 | 10 |
<anonymous> |
frontend/src/layout/navigation/projectNoticeLogic.tsx:448 |
31 | 10 |
eventToHogFunctionContextId |
frontend/src/scenes/hog-functions/sub-templates/sub-templates.ts:1914 |
31 | 10 |
TaskComposer |
products/posthog_ai/frontend/scenes/TaskTracker/components/TaskComposer.tsx:73 |
31 | 10 |
EditorFilters |
products/product_analytics/frontend/insights/editor/EditorFilters.tsx:72 |
31 | 10 |
HomeTabStatTile |
products/product_analytics/frontend/insights/home/HomeTabStatTile.tsx:44 |
31 | 10 |
<anonymous> |
frontend/src/scenes/max/Thread.tsx:609 |
30 | 10 |
<anonymous> |
frontend/src/lib/components/MarkdownNotebook/MarkdownNotebook.tsx:1565 |
29 | 10 |
<anonymous> |
frontend/src/lib/components/MarkdownNotebook/MarkdownNotebook.tsx:3142 |
29 | 10 |
InsightDisplayConfig |
products/product_analytics/frontend/insights/editor/InsightDisplayConfig.tsx:31 |
29 | 10 |
TrendsSeries |
products/product_analytics/frontend/insights/editor/TrendsSeries.tsx:29 |
29 | 10 |
SavedInsights |
products/product_analytics/frontend/insights/savedInsights/SavedInsights.tsx:65 |
29 | 10 |
Step1Content |
products/workflows/frontend/OptOuts/CustomerIOImportModal.tsx:36 |
29 | 10 |
AnalyticsMetricCard |
frontend/src/lib/components/AnalyticsMetricCard/AnalyticsMetricCard.tsx:36 |
28 | 10 |
InsightVizDisplay |
frontend/src/queries/nodes/InsightViz/InsightVizDisplay.tsx:173 |
28 | 10 |
<anonymous> |
frontend/src/scenes/dashboard/dashboards/dashboardsLogic.ts:649 |
28 | 10 |
<anonymous> |
products/conversations/frontend/scenes/ticket/supportTicketSceneLogic.ts:1185 |
28 | 10 |
ReportDetail |
products/signals/frontend/inbox/components/detail/ReportDetail.tsx:658 |
28 | 10 |
<anonymous> |
frontend/src/scenes/experiments/MetricsView/new/MetricRowGroup.tsx:349 |
27 | 10 |
DatasetItemModal |
products/ai_observability/frontend/datasets/DatasetItemModal.tsx:57 |
27 | 10 |
TrendsBarChart |
products/product_analytics/frontend/insights/trends/TrendsBarChart/TrendsBarChart.tsx:92 |
27 | 10 |
ReportsTab |
products/signals/frontend/inbox/components/tabs/ReportsTab.tsx:213 |
27 | 10 |
<anonymous> |
frontend/src/scenes/experiments/MetricsView/new/MetricRowGroup.tsx:1123 |
26 | 10 |
WorkflowsOnboardingWizard |
products/workflows/frontend/setupGuide/wizard/WorkflowsOnboardingWizard.tsx:38 |
26 | 10 |
LoginStep |
frontend/src/scenes/authentication/auth/steps/LoginStep.tsx:74 |
25 | 10 |
saveEvaluation |
products/ai_observability/frontend/evaluations/llmEvaluationLogic.ts:1433 |
25 | 10 |
<anonymous> |
products/signals/frontend/inbox/utils/inboxSetup.ts:56 |
25 | 10 |
ContentAutopilotPromptDetail |
products/web_analytics/frontend/contentAutopilot/ContentAutopilotPromptDetail.tsx:38 |
25 | 10 |
launchBroadcast |
products/workflows/frontend/Broadcasts/broadcastWizardLogic.ts:1896 |
25 | 10 |
buildRankedResults |
frontend/src/lib/components/CommandKSearch/commandKRankedResults.ts:173 |
24 | 10 |
<anonymous> |
frontend/src/lib/components/MarkdownNotebook/MarkdownNotebook.tsx:2457 |
24 | 10 |
<anonymous> |
frontend/src/lib/components/MarkdownNotebook/MarkdownNotebook.tsx:3957 |
24 | 10 |
MetricsCard |
products/ai_observability/frontend/evaluations/components/EvaluationReportViewer.tsx:254 |
24 | 10 |
TrendsLineChart |
products/product_analytics/frontend/insights/trends/TrendsLineChart/TrendsLineChart.tsx:78 |
24 | 10 |
InsightMetaContent |
frontend/src/lib/components/Cards/InsightCard/InsightMeta.tsx:878 |
23 | 10 |
<anonymous> |
frontend/src/lib/components/MarkdownNotebook/MarkdownNotebook.tsx:2082 |
23 | 10 |
<anonymous> |
frontend/src/queries/nodes/InsightViz/InsightVizDisplay.tsx:241 |
23 | 10 |
submit |
frontend/src/scenes/authentication/auth/signupLogic.ts:481 |
23 | 10 |
renderTile |
frontend/src/scenes/dashboard/DashboardItems.tsx:601 |
23 | 10 |
setScene |
frontend/src/scenes/sceneLogic.tsx:827 |
23 | 10 |
OfflineExperimentContent |
products/ai_observability/frontend/offline-evaluations/OfflineExperimentContent.tsx:23 |
23 | 10 |
<anonymous> |
products/marketing_analytics/frontend/search/SearchPerformanceTab.stories.tsx:241 |
23 | 10 |
EvaluationCodeEditor |
products/ai_observability/frontend/evaluations/components/EvaluationCodeEditor.tsx:394 |
22 | 10 |
<anonymous> |
products/ai_observability/frontend/evaluations/llmEvaluationLogic.ts:1780 |
22 | 10 |
<anonymous> |
products/workflows/frontend/Broadcasts/broadcastWizardLogic.ts:1288 |
22 | 10 |
<anonymous> |
frontend/src/layout/navigation/projectNoticeLogic.tsx:583 |
21 | 10 |
CommentComposer |
frontend/src/lib/components/Comments/CommentComposer.tsx:22 |
21 | 10 |
<anonymous> |
frontend/src/queries/nodes/DataTable/DataTable.tsx:344 |
21 | 10 |
InsightViz |
frontend/src/queries/nodes/InsightViz/InsightViz.tsx:48 |
21 | 10 |
AccountConnected |
frontend/src/scenes/authentication/account/AccountConnected.tsx:122 |
21 | 10 |
determineBillingAlert |
frontend/src/scenes/billing/billingLogic.tsx:1673 |
21 | 10 |
<anonymous> |
frontend/src/scenes/dashboard/dashboardLogic.tsx:2362 |
21 | 10 |
LegacyThread |
frontend/src/scenes/max/Thread.tsx:236 |
21 | 10 |
EvaluationRunsTable |
products/ai_observability/frontend/evaluations/components/EvaluationRunsTable.tsx:43 |
21 | 10 |
setOutputType |
products/ai_observability/frontend/evaluations/llmEvaluationLogic.ts:927 |
21 | 10 |
buildSections |
frontend/src/lib/components/CommandKSearch/commandKSections.ts:378 |
20 | 10 |
<anonymous> |
frontend/src/lib/components/MarkdownNotebook/MarkdownNotebook.tsx:1832 |
20 | 10 |
renderTable |
frontend/src/queries/nodes/InsightViz/InsightVizDisplay.tsx:459 |
20 | 10 |
NotebookCodeCellRunButton |
frontend/src/scenes/notebooks/Nodes/components/NotebookCodeCellRunButton.tsx:29 |
20 | 10 |
UpdateEmailPreferences |
frontend/src/scenes/settings/user/UpdateEmailPreferences.tsx:363 |
20 | 10 |
EvaluationOutputFields |
products/ai_observability/frontend/evaluations/create/EvaluationOutputFields.tsx:14 |
20 | 10 |
getDisplayItems |
products/product_analytics/frontend/insights/editor/insightDisplayOptions.tsx:134 |
20 | 10 |
setReportClaimed |
products/signals/frontend/inbox/logics/inboxReportDetailLogic.ts:1629 |
20 | 10 |
<anonymous> |
products/workflows/frontend/Broadcasts/broadcastWizardLogic.ts:2282 |
20 | 10 |
<anonymous> |
frontend/src/lib/components/MarkdownNotebook/MarkdownNotebook.tsx:1178 |
19 | 10 |
<anonymous> |
frontend/src/lib/components/MarkdownNotebook/MarkdownNotebook.tsx:2330 |
19 | 10 |
recording_domains |
frontend/src/scenes/team-activity/teamActivityDescriber.tsx:237 |
19 | 10 |
EvaluationReportViewer |
products/ai_observability/frontend/evaluations/components/EvaluationReportViewer.tsx:352 |
19 | 10 |
submitModal |
products/customer_analytics/frontend/components/CustomerTasks/customerTasksLogic.ts:554 |
19 | 10 |
resolveFreePlacementCollisions |
products/dashboards/frontend/dashboardCustomization.ts:152 |
19 | 10 |
postReviewComment |
products/signals/frontend/inbox/logics/inboxReportDetailLogic.ts:1848 |
19 | 10 |
toggleSignalSource |
products/signals/frontend/inbox/signalSourcesLogic.ts:2040 |
19 | 10 |
submitAIPromptForNode |
frontend/src/lib/components/MarkdownNotebook/MarkdownNotebook.tsx:6569 |
18 | 10 |
refreshDashboardItem |
frontend/src/scenes/dashboard/dashboardLogic.tsx:5279 |
18 | 10 |
<anonymous> |
frontend/src/scenes/experiments/MetricsView/new/MetricRowGroup.tsx:189 |
18 | 10 |
Thread |
frontend/src/scenes/max/Thread.tsx:122 |
18 | 10 |
Message |
frontend/src/scenes/max/Thread.tsx:533 |
18 | 10 |
<anonymous> |
products/ai_observability/frontend/evaluations/components/EvaluationReportViewer.tsx:300 |
18 | 10 |
numericOutputConfigError |
products/ai_observability/frontend/evaluations/constants.ts:50 |
18 | 10 |
<anonymous> |
products/ai_observability/frontend/evaluations/evaluationReportLogic.ts:718 |
18 | 10 |
RunningTimeConfigModal |
products/experiments/frontend/modals/RunningTimeConfigModal/RunningTimeConfigModal.tsx:49 |
18 | 10 |
dateLabel |
products/product_analytics/mcp/apps/explainChart/storyFacts.ts:56 |
18 | 10 |
<anonymous> |
frontend/src/lib/components/MarkdownNotebook/MarkdownNotebook.tsx:2239 |
17 | 10 |
<anonymous> |
frontend/src/lib/components/MarkdownNotebook/MarkdownNotebook.tsx:4833 |
17 | 10 |
GitHubRepositoryCombobox |
frontend/src/lib/integrations/GitHubRepositoryCombobox.tsx:48 |
17 | 10 |
<anonymous> |
frontend/src/scenes/experiments/RunningTimeCalculator/runningTimeLogic.ts:589 |
17 | 10 |
HogTestResultsPanel |
products/ai_observability/frontend/evaluations/components/EvaluationCodeEditor.tsx:208 |
17 | 10 |
EvaluationCreateReview |
products/ai_observability/frontend/evaluations/create/EvaluationCreateReview.tsx:21 |
17 | 10 |
EvaluationReportsPanel |
products/ai_observability/frontend/evaluations/create/EvaluationReportsPanel.tsx:15 |
17 | 10 |
<anonymous> |
products/ai_observability/frontend/evaluations/llmEvaluationLogic.ts:1843 |
17 | 10 |
<anonymous> |
products/ai_observability/frontend/evaluations/llmEvaluationLogic.ts:1951 |
17 | 10 |
<anonymous> |
products/conversations/frontend/scenes/ticket/supportTicketSceneLogic.ts:1110 |
17 | 10 |
DashboardsFiltersBar |
products/dashboards/frontend/dashboards/DashboardsFiltersBar.tsx:16 |
17 | 10 |
QuillContextUsage |
products/posthog_ai/frontend/components/quill/QuillContextUsage.tsx:13 |
17 | 10 |
ExplainChartView |
products/product_analytics/mcp/apps/explainChart/ExplainChartView.tsx:65 |
17 | 10 |
buildSummary |
products/workflows/frontend/Workflows/hogflows/steps/components/rrule-helpers.ts:244 |
17 | 10 |
<anonymous> |
frontend/src/lib/components/MarkdownNotebook/MarkdownNotebook.tsx:2000 |
16 | 10 |
focusJupyterCellEdge |
frontend/src/lib/components/MarkdownNotebook/MarkdownNotebook.tsx:5567 |
16 | 10 |
InviteNewUser |
frontend/src/scenes/authentication/invite-signup/InviteSignupForm.tsx:96 |
16 | 10 |
PasswordReset |
frontend/src/scenes/authentication/password-reset/PasswordReset.tsx:31 |
16 | 10 |
VercelConnect |
frontend/src/scenes/authentication/vercel/VercelConnect.tsx:39 |
16 | 10 |
copyToDashboard |
frontend/src/scenes/dashboard/dashboardLogic.tsx:2555 |
16 | 10 |
EvaluationSettleConfig |
products/ai_observability/frontend/evaluations/components/EvaluationSettleConfig.tsx:23 |
16 | 10 |
loadEvaluation |
products/ai_observability/frontend/evaluations/llmEvaluationLogic.ts:1275 |
16 | 10 |
loadTickets |
products/conversations/frontend/components/SidePanel/sidepanelTicketsLogic.ts:569 |
16 | 10 |
sendMessage |
products/conversations/frontend/scenes/ticket/supportTicketSceneLogic.ts:1516 |
16 | 10 |
snapBetweenAdjacentTiles |
products/dashboards/frontend/dashboardCustomization.ts:84 |
16 | 10 |
<anonymous> |
products/data_warehouse/frontend/shared/components/forms/SyncMethodForm.tsx:634 |
16 | 10 |
ExperimentRemainingTime |
products/experiments/frontend/components/ExperimentMetaBar/ExperimentRemainingTime.tsx:17 |
16 | 10 |
TaskComposerEnvironmentSelect |
products/posthog_ai/frontend/scenes/TaskTracker/components/TaskComposerEnvironmentSelect.tsx:102 |
16 | 10 |
getHomeTabInterval |
products/product_analytics/frontend/insights/home/homeTabDefaultTiles.ts:72 |
16 | 10 |
RetentionLineChart |
products/product_analytics/frontend/insights/retention/RetentionLineChart/RetentionLineChart.tsx:61 |
16 | 10 |
warmReportDiscussion |
products/signals/frontend/inbox/inboxTaskKickoffLogic.ts:741 |
16 | 10 |
CommandKSearchRankedItem |
frontend/src/lib/components/CommandKSearch/CommandKSearchRankedItem.tsx:32 |
15 | 10 |
Comment |
frontend/src/lib/components/Comments/Comment.tsx:287 |
15 | 10 |
<anonymous> |
frontend/src/lib/components/MarkdownNotebook/MarkdownNotebook.tsx:1266 |
15 | 10 |
<anonymous> |
frontend/src/lib/components/MarkdownNotebook/MarkdownNotebook.tsx:1754 |
15 | 10 |
<anonymous> |
frontend/src/lib/components/MarkdownNotebook/MarkdownNotebook.tsx:4592 |
15 | 10 |
renderMemoizedNotebookRow |
frontend/src/lib/components/MarkdownNotebook/MarkdownNotebook.tsx:7212 |
15 | 10 |
handleJupyterKeyDown |
frontend/src/lib/components/MarkdownNotebook/NotebookComponentShell.tsx:473 |
15 | 10 |
areNotebookComponentShellPropsEqual |
frontend/src/lib/components/MarkdownNotebook/NotebookComponentShell.tsx:1141 |
15 | 10 |
NotificationRow |
frontend/src/lib/components/NotificationsMenu/NotificationRow.tsx:151 |
15 | 10 |
deactivateProduct |
frontend/src/scenes/billing/billingLogic.tsx:955 |
15 | 10 |
updateWidgetTile |
frontend/src/scenes/dashboard/dashboardLogic.tsx:2635 |
15 | 10 |
NativeEmailTemplaterForm |
frontend/src/scenes/hog-functions/email-templater/EmailTemplater.tsx:535 |
15 | 10 |
loadScene |
frontend/src/scenes/sceneLogic.tsx:1061 |
15 | 10 |
StepContent |
products/ai_observability/frontend/evaluations/create/EvaluationFormSteps.tsx:99 |
15 | 10 |
EvaluationFormSteps |
products/ai_observability/frontend/evaluations/create/EvaluationFormSteps.tsx:159 |
15 | 10 |
testHogOnSample |
products/ai_observability/frontend/evaluations/llmEvaluationLogic.ts:744 |
15 | 10 |
ComposerModelEffortSheet |
products/posthog_ai/frontend/components/composer/ComposerModelEffortSheet.tsx:45 |
15 | 10 |
initiateDataWarehouseSourceToggle |
products/signals/frontend/inbox/signalSourcesLogic.ts:1964 |
15 | 10 |
loadAiEmailDraftSuccess |
products/workflows/frontend/Broadcasts/broadcastWizardLogic.ts:1493 |
15 | 10 |
TriggerPopover |
products/workflows/frontend/Workflows/hogflows/HogFlowManualTriggerButton.tsx:22 |
15 | 10 |
parseRRuleToState |
products/workflows/frontend/Workflows/hogflows/steps/components/rrule-helpers.ts:81 |
15 | 10 |
QuillSceneStaticName |
frontend/src/layout/scenes/components/QuillSceneStaticName.tsx:22 |
14 | 10 |
openRow |
frontend/src/lib/components/CommandKSearch/commandKSearchLogic.tsx:788 |
14 | 10 |
CommentWithReplies |
frontend/src/lib/components/Comments/Comment.tsx:382 |
14 | 10 |
<anonymous> |
frontend/src/lib/components/MarkdownNotebook/MarkdownNotebook.tsx:1354 |
14 | 10 |
handleNotebookPaste |
frontend/src/lib/components/MarkdownNotebook/MarkdownNotebook.tsx:3684 |
14 | 10 |
precheckSuccess |
frontend/src/scenes/authentication/auth/loginLogic.ts:724 |
14 | 10 |
BillingHero |
frontend/src/scenes/billing/BillingHero.tsx:193 |
14 | 10 |
registerInstrumentationProps |
frontend/src/scenes/billing/billingLogic.tsx:1847 |
14 | 10 |
persistRunningTimeEstimate |
frontend/src/scenes/experiments/RunningTimeCalculator/runningTimeLogic.ts:741 |
14 | 10 |
<anonymous> |
frontend/src/scenes/hog-functions/email-templater/emailTemplaterLogic.tsx:957 |
14 | 10 |
session_recording_masking_config |
frontend/src/scenes/team-activity/teamActivityDescriber.tsx:292 |
14 | 10 |
DatasetItems |
products/ai_observability/frontend/datasets/DatasetItems.tsx:28 |
14 | 10 |
evaluationRunsFilterHogQL |
products/ai_observability/frontend/evaluations/constants.ts:175 |
14 | 10 |
handleSubmit |
products/ai_observability/frontend/settings/LLMProviderKeysSettings.tsx:605 |
14 | 10 |
BIDrilldownModal |
products/business_intelligence/frontend/BIDrilldownModal.tsx:14 |
14 | 10 |
CustomerTasksTable |
products/customer_analytics/frontend/components/CustomerTasks/CustomerTasksTable.tsx:38 |
14 | 10 |
render |
products/dashboards/frontend/dashboards/templates/DashboardTemplatesTable.tsx:305 |
14 | 10 |
RunSurfaceThread |
products/posthog_ai/frontend/components/RunSurfaceImpl.tsx:236 |
14 | 10 |
TaskRunChat |
products/posthog_ai/frontend/scenes/TaskTracker/components/TaskRunChat.tsx:51 |
14 | 10 |
stretchFacts |
products/product_analytics/mcp/apps/explainChart/storyFacts.ts:196 |
14 | 10 |
createReportTask |
products/signals/frontend/inbox/inboxTaskKickoffLogic.ts:351 |
14 | 10 |
computeOnboardingDecision |
products/signals/frontend/inbox/logics/inboxOnboardingLogic.ts:170 |
14 | 10 |
updateReviewers |
products/signals/frontend/inbox/logics/inboxReportDetailLogic.ts:1793 |
14 | 10 |
toggleReviewCommentReaction |
products/signals/frontend/inbox/logics/inboxReportDetailLogic.ts:1975 |
14 | 10 |
CertificationSuggestionRow |
products/warehouse_suggestions/frontend/components/CertificationSuggestionRow.tsx:27 |
14 | 10 |
setEmail |
products/workflows/frontend/Broadcasts/broadcastWizardLogic.ts:1676 |
14 | 10 |
<anonymous> |
products/workflows/frontend/setupGuide/wizard/workflowsOnboardingWizardLogic.ts:628 |
14 | 10 |
CommentTopRow |
frontend/src/lib/components/Comments/Comment.tsx:189 |
13 | 10 |
submit |
frontend/src/scenes/authentication/auth/loginLogic.ts:620 |
13 | 10 |
renderSectionGrid |
frontend/src/scenes/dashboard/DashboardItems.tsx:790 |
13 | 10 |
setDashboardEditing |
frontend/src/scenes/dashboard/dashboardLogic.tsx:6044 |
13 | 10 |
save |
frontend/src/scenes/experiments/RunningTimeCalculator/runningTimeLogic.ts:809 |
13 | 10 |
NativeEmailIntegrationChoice |
frontend/src/scenes/hog-functions/email-templater/EmailTemplater.tsx:272 |
13 | 10 |
<anonymous> |
frontend/src/scenes/sceneLogic.tsx:603 |
13 | 10 |
describeWorkflowEmailTierChange |
frontend/src/scenes/team-activity/teamActivityDescriber.tsx:871 |
13 | 10 |
EvaluationVolumeEstimate |
products/ai_observability/frontend/evaluations/create/EvaluationVolumeEstimate.tsx:14 |
13 | 10 |
RunSurfaceRoot |
products/posthog_ai/frontend/components/RunSurfaceImpl.tsx:95 |
13 | 10 |
RunSurfaceComposer |
products/posthog_ai/frontend/components/RunSurfaceImpl.tsx:306 |
13 | 10 |
ShowTrendLinesFilter |
products/product_analytics/frontend/insights/editor/filters/ShowTrendLinesFilter.tsx:13 |
13 | 10 |
<anonymous> |
products/signals/frontend/inbox/logics/inboxReportDetailLogic.ts:1347 |
13 | 10 |
toggleCiSignals |
products/signals/frontend/inbox/signalSourcesLogic.ts:2213 |
13 | 10 |
WorkflowsTable |
products/workflows/frontend/Workflows/WorkflowsTable.tsx:120 |
13 | 10 |
StepTriggerAffectedUsers |
products/workflows/frontend/Workflows/hogflows/steps/StepTrigger.tsx:585 |
13 | 10 |
openFromUrl |
products/workflows/frontend/setupGuide/wizard/workflowsOnboardingWizardLogic.ts:671 |
13 | 10 |
EditableTableBlock |
frontend/src/lib/components/MarkdownNotebook/EditableTableBlock.tsx:108 |
12 | 10 |
<anonymous> |
frontend/src/lib/components/MarkdownNotebook/MarkdownNotebook.tsx:2188 |
12 | 10 |
setSelectedBlockStyle |
frontend/src/lib/components/MarkdownNotebook/MarkdownNotebook.tsx:3911 |
12 | 10 |
getKeyboardActiveNodeId |
frontend/src/lib/components/MarkdownNotebook/MarkdownNotebook.tsx:5358 |
12 | 10 |
focusJupyterCell |
frontend/src/lib/components/MarkdownNotebook/MarkdownNotebook.tsx:5521 |
12 | 10 |
openSupportForm |
frontend/src/lib/components/Support/supportLogic.ts:480 |
12 | 10 |
GitHubBranchCombobox |
frontend/src/lib/integrations/GitHubBranchCombobox.tsx:44 |
12 | 10 |
insightNew |
frontend/src/products.tsx:1825 |
12 | 10 |
LoadPreviewText |
frontend/src/queries/nodes/DataNode/LoadNext.tsx:80 |
12 | 10 |
precheckSignupEmail |
frontend/src/scenes/authentication/auth/signupLogic.ts:605 |
12 | 10 |
buildRunningTimeOutlook |
frontend/src/scenes/experiments/RunningTimeCalculator/calculations.ts:91 |
12 | 10 |
TextAnswer |
frontend/src/scenes/max/Thread.tsx:923 |
12 | 10 |
renderMore |
products/ai_observability/frontend/datasets/DatasetItems.tsx:163 |
12 | 10 |
<anonymous> |
products/ai_observability/frontend/evaluations/llmEvaluationLogic.ts:1622 |
12 | 10 |
EvaluationResultCards |
products/ai_observability/frontend/evaluations/overview/EvaluationResultCards.tsx:35 |
12 | 10 |
getKeyPlaceholder |
products/ai_observability/frontend/settings/LLMProviderKeysSettings.tsx:91 |
12 | 10 |
DashboardTemplateCopyScene |
products/dashboards/frontend/dashboards/templates/DashboardTemplateCopyScene.tsx:38 |
12 | 10 |
countTemplateInsightTiles |
products/dashboards/frontend/dashboards/templates/DashboardTemplatesTable.tsx:44 |
12 | 10 |
createConfiguredColumn |
products/logs/frontend/components/VirtualizedLogsList/columnDefinitions.tsx:336 |
12 | 10 |
FunnelLineChart |
products/product_analytics/frontend/insights/funnels/FunnelLineChart/FunnelLineChart.tsx:62 |
12 | 10 |
RetentionBarChart |
products/product_analytics/frontend/insights/retention/RetentionBarChart/RetentionBarChart.tsx:55 |
12 | 10 |
applyFromUrl |
products/signals/frontend/inbox/logics/inboxFiltersLogic.ts:856 |
12 | 10 |
<anonymous> |
products/signals/frontend/inbox/signalSourcesLogic.ts:1673 |
12 | 10 |
changedRefreshOptions |
products/warehouse_suggestions/frontend/warehouseSuggestionsLogic.ts:143 |
12 | 10 |
<anonymous> |
products/workflows/frontend/Broadcasts/broadcastPerformanceLogic.ts:202 |
12 | 10 |
openInWorkflowEditorConfirmed |
products/workflows/frontend/Broadcasts/broadcastWizardLogic.ts:2116 |
12 | 10 |
Step2Content |
products/workflows/frontend/OptOuts/CustomerIOImportModal.tsx:187 |
12 | 10 |
<anonymous> |
products/workflows/frontend/TemplateLibrary/messageTemplateSceneLogic.ts:50 |
12 | 10 |
WorkflowsReputation |
products/workflows/frontend/Workflows/Reputation/WorkflowsReputation.tsx:443 |
12 | 10 |
WorkflowsScene |
products/workflows/frontend/WorkflowsScene.tsx:193 |
12 | 10 |
WizardPushStep |
products/workflows/frontend/setupGuide/wizard/WizardPushStep.tsx:61 |
12 | 10 |
syncRemote |
frontend/src/lib/components/CommandKSearch/commandKSearchLogic.tsx:819 |
11 | 10 |
applyKeyIntent |
frontend/src/lib/components/CommandKSearch/commandKSearchLogic.tsx:956 |
11 | 10 |
lowerSections |
frontend/src/lib/components/CommandKSearch/commandKSections.ts:322 |
11 | 10 |
handleCut |
frontend/src/lib/components/MarkdownNotebook/MarkdownNotebook.tsx:3616 |
11 | 10 |
<anonymous> |
frontend/src/lib/components/MarkdownNotebook/MarkdownNotebook.tsx:4083 |
11 | 10 |
handleMainMouseDown |
frontend/src/lib/components/MarkdownNotebook/MarkdownNotebook.tsx:5240 |
11 | 10 |
handleJupyterTextKeyDown |
frontend/src/lib/components/MarkdownNotebook/MarkdownNotebook.tsx:6131 |
11 | 10 |
submitInsertMenuSelectionForNode |
frontend/src/lib/components/MarkdownNotebook/MarkdownNotebook.tsx:6513 |
11 | 10 |
outputPrompt |
frontend/src/lib/components/MarkdownNotebook/NotebookComponentShell.tsx:650 |
11 | 10 |
renderNode |
frontend/src/lib/components/MarkdownNotebook/renderNode.tsx:29 |
11 | 10 |
submitSupportTicket |
frontend/src/lib/components/Support/supportLogic.ts:524 |
11 | 10 |
<anonymous> |
frontend/src/queries/nodes/DataTable/DataTable.tsx:433 |
11 | 10 |
MetricCardCell |
frontend/src/queries/nodes/OverviewGrid/OverviewMetricCardGrid.tsx:83 |
11 | 10 |
<anonymous> |
frontend/src/scenes/analytics/analyticsListLogic.ts:706 |
11 | 10 |
posthogCodeDeepUrl |
frontend/src/scenes/authentication/account/AccountConnected.tsx:33 |
11 | 10 |
<anonymous> |
frontend/src/scenes/authentication/auth/loginLogic.ts:566 |
11 | 10 |
CLIAuthorize |
frontend/src/scenes/authentication/cli/CLIAuthorize.tsx:25 |
11 | 10 |
CheckYourInbox |
frontend/src/scenes/authentication/verify-email/VerifyEmailForm.tsx:166 |
11 | 10 |
<anonymous> |
frontend/src/scenes/billing/billingLogic.tsx:1440 |
11 | 10 |
EditModeActions |
frontend/src/scenes/dashboard/DashboardHeaderActions.tsx:197 |
11 | 10 |
moveToDashboardSuccess |
frontend/src/scenes/dashboard/dashboardLogic.tsx:5095 |
11 | 10 |
saveEditModeChangesSuccess |
frontend/src/scenes/dashboard/dashboardLogic.tsx:5921 |
11 | 10 |
<anonymous> |
frontend/src/scenes/dashboard/dashboardLogic.tsx:6754 |
11 | 10 |
<anonymous> |
frontend/src/scenes/dashboard/dashboards/dashboardsLogic.ts:497 |
11 | 10 |
<anonymous> |
frontend/src/scenes/max/Thread.tsx:931 |
11 | 10 |
<anonymous> |
frontend/src/scenes/sceneLogic.tsx:728 |
11 | 10 |
getSurveyWarnings |
frontend/src/scenes/surveys/surveyVersionRequirements.ts:389 |
11 | 10 |
feature_flag_policy_config |
frontend/src/scenes/team-activity/teamActivityDescriber.tsx:490 |
11 | 10 |
OverlayMenu |
products/ai_observability/frontend/datasets/SaveToDatasetButton.tsx:106 |
11 | 10 |
stripRedundantLeadingHeading |
products/ai_observability/frontend/evaluations/components/EvaluationReportViewer.tsx:101 |
11 | 10 |
DeleteKeyModal |
products/ai_observability/frontend/settings/LLMProviderKeysSettings.tsx:839 |
11 | 10 |
LLMProviderKeysSettings |
products/ai_observability/frontend/settings/LLMProviderKeysSettings.tsx:954 |
11 | 10 |
BusinessKnowledgeScene |
products/business_knowledge/frontend/scenes/sources/BusinessKnowledgeScene.tsx:47 |
11 | 10 |
updateTicket |
products/conversations/frontend/scenes/ticket/supportTicketSceneLogic.ts:1393 |
11 | 10 |
describeFlagHistoryStatus |
products/experiments/frontend/health/debug/healthDebugInputs.ts:176 |
11 | 10 |
DetectableEffectTable |
products/experiments/frontend/modals/RunningTimeConfigModal/DetectableEffectTable.tsx:25 |
11 | 10 |
customColumnFilterTarget |
products/logs/frontend/components/LogsViewer/config/columns.ts:177 |
11 | 10 |
AttributeCell |
products/logs/frontend/components/VirtualizedLogsList/cells/AttributeCell.tsx:41 |
11 | 10 |
QuillAttachedContextPicker |
products/posthog_ai/frontend/components/quill/QuillAttachedContextPicker.tsx:34 |
11 | 10 |
pointFacts |
products/product_analytics/mcp/apps/explainChart/storyFacts.ts:179 |
11 | 10 |
chapterBand |
products/product_analytics/mcp/apps/explainChart/storyOverlayGeometry.ts:47 |
11 | 10 |
QuillReplayObservationActions |
products/replay_vision/frontend/observations/QuillReplayObservationActions.tsx:11 |
11 | 10 |
discussReportInstructions |
products/signals/frontend/inbox/inboxTaskKickoffLogic.ts:216 |
11 | 10 |
filterSearchParams |
products/signals/frontend/inbox/logics/inboxFiltersLogic.ts:218 |
11 | 10 |
deleteReviewComment |
products/signals/frontend/inbox/logics/inboxReportDetailLogic.ts:1949 |
11 | 10 |
<anonymous> |
products/signals/frontend/inbox/signalSourcesLogic.ts:1487 |
11 | 10 |
ExpandedSpanContent |
products/tracing/frontend/components/VirtualizedSpanList/ExpandedSpanContent.tsx:21 |
11 | 10 |
<anonymous> |
products/warehouse_suggestions/frontend/warehouseSuggestionsLogic.ts:689 |
11 | 10 |
BroadcastPerformance |
products/workflows/frontend/Broadcasts/BroadcastPerformance.tsx:16 |
11 | 10 |
BroadcastsScene |
products/workflows/frontend/Broadcasts/BroadcastsScene.tsx:40 |
11 | 10 |
canonicalCohortCriteria |
products/workflows/frontend/Broadcasts/audienceSuggestions/broadcastAudienceSuggestionsLogic.ts:44 |
11 | 10 |
saveName |
products/workflows/frontend/Broadcasts/broadcastWizardLogic.ts:1738 |
11 | 10 |
moveToDraft |
products/workflows/frontend/Broadcasts/broadcastWizardLogic.ts:2071 |
11 | 10 |
saveDraftSchedule |
products/workflows/frontend/Broadcasts/broadcastWizardLogic.ts:2364 |
11 | 10 |
applyEmailBrand |
products/workflows/frontend/MessageAudience/emailBrand.ts:91 |
11 | 10 |
uploadCSV |
products/workflows/frontend/OptOuts/customerIOImportLogic.ts:575 |
11 | 10 |
render |
products/workflows/frontend/Workflows/WorkflowsTable.tsx:210 |
11 | 10 |
StepTriggerConfiguration |
products/workflows/frontend/Workflows/hogflows/steps/StepTrigger.tsx:227 |
11 | 10 |
submit |
products/workflows/frontend/Workflows/workflowLogic.ts:3644 |
11 | 10 |
⚠️ Bundle size — 🔺 +202.9 KiB (+0.3%)
Uncompressed size of every built .js bundle, compared against the base branch.
Total: 77.11 MiB · 🔺 +202.9 KiB (+0.3%)
| File | Size | Δ vs base |
|---|---|---|
render-query/src/render-query/render-query.js |
24.94 MiB | 🔺 +43.9 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.7 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.6 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.3 KiB (+1.5%) | ██████████ 101.4% of 7.91 MiB |
events scenesrc/scenes/activity/explore/EventsScene.tsx |
9.40 MiB · 3,512 files | 🔺 +26.9 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.8 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 |
ℹ️ MCP agent API — agent-facing tool changes
What this PR changes for agents, from the tool schema snapshots and tool definitions.
Tools added (4): explain-chart, feature-flag-rules-update (1,327 chars), warehouse-suggestions-assign (496 chars), workflows-reputation-get (658 chars)
Tools changed (22):
| Tool | Params | Scopes | Annotations | Schema chars |
|---|---|---|---|---|
aeo-prompts-stats-get |
description changed | |||
apm-trace-get |
997 -> 1,000 | |||
dashboard-create |
description changed | |||
dashboard-update |
description changed | |||
experiment-calculate-running-time |
3,177 -> 3,414 | |||
experiment-results-get |
description changed | |||
feature-flag-disable |
+version |
description changed | 143 -> 481 | |
feature-flag-enable |
+version |
description changed | 143 -> 481 | |
generate-app-url |
10,749 -> 10,860 | |||
inbox-report-reviewers-update |
+removal_note +removal_reason |
description changed | 3,495 -> 4,361 | |
inbox-reports-bulk-set-state |
5,077 -> 5,200 | |||
inbox-reports-leave-reviewers |
+removal_note +removal_reason |
description changed | 135 -> 893 | |
inbox-reports-list |
description changed | 8,837 -> 9,037 | ||
inbox-reports-set-state |
4,808 -> 4,931 | |||
insight-create |
14,727 -> 14,719 | |||
insight-update |
14,889 -> 14,881 | |||
query-error-tracking-issues-list |
+firstSeenAfter |
description changed | 6,624 -> 6,832 | |
warehouse-suggestions-list |
+assignee_id |
description changed | 863 -> 970 | |
workflows-list |
+latest_send_first |
3,001 -> 3,193 | ||
workflows-list-proposals |
+id +limit +offset +status |
n/a -> 480 | ||
workflows-suggest |
+base_version +content +evidence +id +rationale +source_id +step_id +title |
n/a -> 1,988 | ||
workflows-version-stats |
+after +before +breakdown_by +id +instance_id +interval +kind +name ... 1 more |
n/a -> 1,470 |
Problem
A new team cannot send its first workflow email until it verifies a sending domain.
A PostHog-owned sandbox sender lets them send first, but it is a shared identity.
It must never deliver to anyone outside the team's own organization, and it must never report a send it did not make.
Part of Silthus/personal#198 (sandbox delivery, slice 1 of 2).
Replaces part of #434 (member gate) and the fail-closed provider case and settings from #428.
Stack
master. Lands after nothing; this is the bottom of the stack.4d5ab71d1de: Node typecheck and lint clean, touched Node suites 180 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.4d5ab71d1de, 2026-10-28: live run below. Proof gate: fails only on the fork-onlycigap (exit 3); every other check passes.Impact
Grow Workflows, activation rate: the sandbox sender removes the domain step from a team's first send.
Sandbox deliveries are their own funnel step and never count as activation.
This slice moves no metric yet: it is the gate that every later sandbox slice delivers through.
Merge Danger
Warning
🟡 Merge risk: medium · two-way door (merge-risk rubric)
sandboxintegration take the new branches, and no such integration exists on master yet.Production lines: 370 changed (
git diff --numstatagainst the base, tests and docs excluded).Changes
A send through an email integration with
config.provider === 'sandbox'now always skips with a reason in the run log, and never reportsemail_sent:workflows sandbox email blockedreasonswitch_offrecipient_not_memberrecipient_unverifiedcheck_failedWORKFLOWS_SANDBOX_SENDER_ENABLEDplusSES_SANDBOX_TENANT_NAME,SES_SANDBOX_CONFIGURATION_SETandSES_SANDBOX_FROM_ADDRESS. All default to off or empty.OrganizationMembersServiceloads a team's verified and unverified member emails in one query and never trusts a snapshot older than a minute.SET NXkey.How did you test this code?
Live run on the slice tip
Live run of the V1 tip
1c08de0b9b4on a PostHog preview. Stubs: a local SES endpoint that records each call, andexample.comseeded as a valid MX domain.Channels created the sandbox sender. A test send to a verified member was accepted and reached SES with the sandbox tenant, its configuration set, the fixed From address and the footer.
A test send to an address outside the organization was skipped before SES.
Lane gate on HEAD: typecheck, eslint, oxlint and prettier pass;
src/cdp/services/messaging,src/cdp/services/managersandcdp-services.test.tspass (642 tests).email-tracking.service.test.tscannot load on the lane box (missinglibsasl2for Kafka), unrelated to this diff.CI: fork CI cannot run on
Silthus/posthog(its GitHub App secret is missing); recorded as thecigap.Red: the new sandbox tests fail on master's
email.service.ts(SES is called and the send succeeds). Green: both changed test files pass on HEAD. The team-budget case failed withfinished: false(rescheduled behind an exhausted budget) before 1951b5b and passes after it. Output is saved in proof storage for each head.Test seams:
EmailService.executeSendEmailwith a sandbox integration, against the test Postgres and Redis: skip, run log, blocked event, and no SES call.OrganizationMembersService.getBlockedRecipientswith an injected clock: shared snapshot, one-minute reload, fail closed on a slow lookup.Proofs owed (
fleet proof gate):EmailServicetests driveexecuteSendEmailagainst the real test Postgres and Redis, with SES stubbed.sandboxintegration exists before the sandbox product stack lands.Silthus/posthog. Locally,semgrep --config .semgrep/rules/security/is clean on the changed files.Test rationale: the new cases sit in a new
sandbox senderblock of the existingemail.service.test.ts, because no existing test sends through a sandbox integration. The membership cases are parameterized by recipient shape (CC, BCC, list, ambiguous mailbox, unverified, legacy, inactive, other organization, deactivated organization). Each one catches a recipient reaching delivery without being a verified member. The final-check case catches a member removed while the send waits. The dedupe case catches a blocked event per send. The service unit tests catch a stale snapshot deciding a send.Release status
Docs update
docs/internal/workflows-email-sending-tiers.mdgains a "Sandbox delivery" section with the switch, the member rule and the blocked event.🤖 Agent context
Autonomy: Human-driven (agent-assisted)
Agent: Claude Code, Claude Opus 5.5 (implementation). Design pass and review by Codex, GPT-6.1 Sol.
Carved from the reviewed source PRs above onto today's master as a wayfinder ticket lane. Skills:
tdd,/writing-tests,pr-description,merge-risk,qa-swarmdesign pass.No duplicate: this replaces the source fork PRs named above, which stay open until the stack exists.
Public artifact: all test data is invented (
example.comaddresses).Decisions
Involvement: no grilling rounds; design pass (1 lane, 2 findings fixed); review (GPT-6.1 Sol, 1 round with 2 findings: 1 fixed in part, 1 rejected; final read clean); proof captured as test output.
🤖 Generated with Claude Code