Repository navigation
feat(signals): add sort=personal to the inbox report list - #129978
trunk-io[bot] merged 4 commits into
Conversation
The list reads the stored personal ranking and never builds one. Ranked reports come first by stored rank, then folded reports, then the recommended order. The base order resolves the recommended arm without an experiment exposure. ranking_id keeps later pages on the first page's ranking. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Generated-By: PostHog Desktop Task-Id: c2fb09ea-1cb5-4b21-9803-347e3d5661a1
|
😎 Merged successfully - details. |
|
Risk: No findings This delta since the last review is a merge of origin/master plus a rewrite of the report-list pagination count for search pages (bounded count with a Sentinel reviewed |
🤖 CI report
|
| Root | Eager (shipped) | Δ vs base | Budget |
|---|---|---|---|
entry (logged-out pages, app bootstrap)src/index.tsx |
1.02 MiB · 25 files | no change | █████████░ 89.5% of 1.14 MiB |
logged-out boot: index + App + bootApp (preloaded by every page, including /login)src/index.tsx + src/scenes/App.tsx + src/scenes/bootApp.ts |
3.00 MiB · 623 files | 🔺 +10 B (+0.0%) | ██████████ 98.8% of 3.03 MiB |
authenticated shell (every logged-in page)src/scenes/AuthenticatedShell.tsx |
3.82 MiB · 1,221 files | 🔺 +10 B (+0.0%) | ██████████ 95.2% of 4.01 MiB |
dashboard scenesrc/scenes/dashboard/Dashboard.tsx |
7.57 MiB · 2,924 files | 🔺 +10 B (+0.0%) | ████████░░ 76.9% of 9.84 MiB |
today home pathsrc/scenes/AuthenticatedShell.tsx + src/scenes/project-homepage/ProjectHomepage.tsx + src/scenes/project-homepage/today/TodayHome.tsx |
4.68 MiB · 1,748 files | 🔺 +10 B (+0.0%) | █████████░ 94.8% of 4.93 MiB |
AI-first home pathsrc/scenes/AuthenticatedShell.tsx + src/scenes/project-homepage/ProjectHomepage.tsx + src/scenes/project-homepage/ai-first/AiFirstHomepage.tsx |
5.97 MiB · 2,255 files | 🔺 +10 B (+0.0%) | ██████████ 95.2% of 6.27 MiB |
events scenesrc/scenes/activity/explore/EventsScene.tsx |
6.65 MiB · 2,503 files | 🔺 +10 B (+0.0%) | ███████░░░ 70.6% of 9.41 MiB |
web analytics scenesrc/scenes/web-analytics/WebAnalyticsScene.tsx |
7.64 MiB · 2,855 files | 🔺 +10 B (+0.0%) | ███████░░░ 72.8% of 10.49 MiB |
replay detail scenesrc/scenes/session-recordings/detail/SessionRecordingDetail.tsx |
6.88 MiB · 2,593 files | 🔺 +10 B (+0.0%) | ████████░░ 84.6% of 8.13 MiB |
🟢 node_modules/monaco-editor/ stays out of src/index.tsx
🟢 products/product_analytics/frontend/insights/activityDescriptions stays out of src/index.tsx
🟢 node_modules/@posthog/brand/dist/generated/hoggies/svg/ stays out of src/index.tsx
🟢 node_modules/@posthog/brand/dist/generated/hoggies/components/ stays out of src/index.tsx
🟢 node_modules/monaco-editor/ stays out of src/index.tsx + src/scenes/App.tsx + src/scenes/bootApp.ts
🟢 src/layout/navigation-3000/navigationLogic.tsx stays out of src/index.tsx + src/scenes/App.tsx + src/scenes/bootApp.ts
🟢 src/scenes/dashboard/dashboardLogic.tsx stays out of src/index.tsx + src/scenes/App.tsx + src/scenes/bootApp.ts
🟢 src/lib/lemon-ui/LemonMarkdown/ stays out of src/index.tsx + src/scenes/App.tsx + src/scenes/bootApp.ts
🟢 src/lib/components/RichContentEditor/ stays out of src/index.tsx + src/scenes/App.tsx + src/scenes/bootApp.ts
🟢 src/lib/components/CodeSnippet/ stays out of src/index.tsx + src/scenes/App.tsx + src/scenes/bootApp.ts
🟢 src/taxonomy/core-filter-definitions-by-group.json stays out of src/index.tsx + src/scenes/App.tsx + src/scenes/bootApp.ts
🟢 node_modules/zod/ stays out of src/index.tsx + src/scenes/App.tsx + src/scenes/bootApp.ts
🟢 src/lib/logic/billing/billingLogic.tsx stays out of src/index.tsx + src/scenes/App.tsx + src/scenes/bootApp.ts
🟢 src/lib/components/ProductEmptyState/productSetupPreloadLogic.ts stays out of src/index.tsx + src/scenes/App.tsx + src/scenes/bootApp.ts
🟢 node_modules/kea-test-utils/ stays out of src/index.tsx + src/scenes/App.tsx + src/scenes/bootApp.ts
🟢 node_modules/monaco-editor/ stays out of src/scenes/AuthenticatedShell.tsx
🟢 products/product_analytics/frontend/insights/activityDescriptions stays out of src/scenes/AuthenticatedShell.tsx
🟢 node_modules/kea-test-utils/ stays out of src/scenes/AuthenticatedShell.tsx
🟢 products/dashboards/frontend/widgets/previews/ stays out of src/scenes/AuthenticatedShell.tsx
🟢 src/scenes/session-recordings/player/sessionRecordingPlayerLogic.ts stays out of src/scenes/AuthenticatedShell.tsx
🟢 src/layout/panel-layout/ProjectTree/menus/SessionReplayMenuItems.tsx stays out of src/scenes/AuthenticatedShell.tsx
🟢 src/taxonomy/core-filter-definitions-by-group.json stays out of src/scenes/AuthenticatedShell.tsx
🟢 src/layout/navigation/projectNoticeLogic.tsx stays out of src/scenes/AuthenticatedShell.tsx
🟢 src/layout/navigation/ImpersonationNotice/ImpersonationNotice.tsx stays out of src/scenes/AuthenticatedShell.tsx
🟢 src/scenes/cohorts/cohortSavedToast.ts stays out of src/scenes/AuthenticatedShell.tsx
🟢 products/wizard/frontend/runs/WizardRunDetailsDrawer.tsx stays out of src/scenes/AuthenticatedShell.tsx
🟢 src/layout/today/TodayShell.tsx stays out of src/scenes/AuthenticatedShell.tsx
🟢 src/layout/today/TodayContextPanelFloating.tsx stays out of src/scenes/AuthenticatedShell.tsx
🟢 src/layout/today/TodaySidePanel.tsx stays out of src/scenes/AuthenticatedShell.tsx
🟢 src/layout/today/TodayTopBar.tsx stays out of src/scenes/AuthenticatedShell.tsx
🟢 src/layout/today/todayRailItems.tsx stays out of src/scenes/AuthenticatedShell.tsx
🟢 products/subscriptions/frontend/components/Subscriptions/exportNudge/exportNudgeLogic.ts stays out of src/scenes/AuthenticatedShell.tsx
🟢 src/scenes/billing/paymentEntryLogic.ts stays out of src/scenes/AuthenticatedShell.tsx
🟢 products/conversations/frontend/components/SidePanel/sidepanelTicketsLogic.ts stays out of src/scenes/AuthenticatedShell.tsx
🟢 node_modules/zod/ stays out of src/scenes/AuthenticatedShell.tsx
🟢 src/scenes/authentication/auth/loginLogic.ts stays out of src/scenes/AuthenticatedShell.tsx
🟢 src/scenes/authentication/shared/passkeyLogic.ts stays out of src/scenes/AuthenticatedShell.tsx
🟢 src/scenes/cohorts/CohortFilters/constants.tsx stays out of src/scenes/AuthenticatedShell.tsx
🟢 products/persons/frontend/logics/personsLogic.tsx stays out of src/scenes/AuthenticatedShell.tsx
🟢 src/scenes/surveys/constants.tsx stays out of src/scenes/AuthenticatedShell.tsx
🟢 node_modules/@tiptap/ stays out of src/scenes/AuthenticatedShell.tsx
🟢 node_modules/prosemirror- stays out of src/scenes/AuthenticatedShell.tsx
🟢 node_modules/re2js/ stays out of src/scenes/AuthenticatedShell.tsx
🟢 node_modules/react-markdown/ stays out of src/scenes/AuthenticatedShell.tsx
🟢 src/lib/components/Command/Command.tsx stays out of src/scenes/AuthenticatedShell.tsx
🟢 packages/quill/packages/ stays out of src/scenes/AuthenticatedShell.tsx
🟢 zod/v4/locales/de.js stays out of src/scenes/AuthenticatedShell.tsx
🟢 node_modules/@posthog/brand/dist/generated/hoggies/svg/ stays out of src/scenes/AuthenticatedShell.tsx
🟢 node_modules/@posthog/brand/dist/generated/hoggies/components/ stays out of src/scenes/AuthenticatedShell.tsx
🟢 packages/quill/packages/quill/dist/ stays out of src/scenes/dashboard/Dashboard.tsx
🟢 node_modules/@tiptap/ stays out of src/scenes/dashboard/Dashboard.tsx
🟢 node_modules/prosemirror- stays out of src/scenes/dashboard/Dashboard.tsx
🟢 node_modules/marked/ stays out of src/scenes/dashboard/Dashboard.tsx
🟢 node_modules/frimousse/ stays out of src/scenes/dashboard/Dashboard.tsx
🟢 src/scenes/session-recordings/playlist/SessionRecordingsPlaylist.tsx stays out of src/scenes/dashboard/Dashboard.tsx
🟢 src/scenes/web-analytics/tiles/WebAnalyticsTile.tsx stays out of src/scenes/dashboard/Dashboard.tsx
🟢 src/queries/validators.js stays out of src/scenes/dashboard/Dashboard.tsx
🟢 src/queries/web-analytics-validators.js stays out of src/scenes/dashboard/Dashboard.tsx
🟢 node_modules/re2js/ stays out of src/scenes/dashboard/Dashboard.tsx
🟢 node_modules/kea-test-utils/ stays out of src/scenes/dashboard/Dashboard.tsx
🟢 src/scenes/debug/HogDebug.tsx stays out of src/scenes/dashboard/Dashboard.tsx
🟢 src/queries/QueryEditor/QueryEditor.tsx stays out of src/scenes/dashboard/Dashboard.tsx
🟢 packages/quill/packages/quill/dist/ stays out of src/scenes/AuthenticatedShell.tsx + src/scenes/project-homepage/ProjectHomepage.tsx + src/scenes/project-homepage/today/TodayHome.tsx
🟢 src/scenes/project-homepage/ai-first/AiFirstHomepage.tsx stays out of src/scenes/AuthenticatedShell.tsx + src/scenes/project-homepage/ProjectHomepage.tsx + src/scenes/project-homepage/today/TodayHome.tsx
🟢 src/scenes/project-homepage/today/TodayReportPage.tsx stays out of src/scenes/AuthenticatedShell.tsx + src/scenes/project-homepage/ProjectHomepage.tsx + src/scenes/project-homepage/today/TodayHome.tsx
🟢 src/queries/Query/Query.tsx stays out of src/scenes/AuthenticatedShell.tsx + src/scenes/project-homepage/ProjectHomepage.tsx + src/scenes/project-homepage/today/TodayHome.tsx
🟢 packages/quill/packages/charts/ stays out of src/scenes/AuthenticatedShell.tsx + src/scenes/project-homepage/ProjectHomepage.tsx + src/scenes/project-homepage/today/TodayHome.tsx
🟢 packages/quill/packages/quill/dist/ stays out of src/scenes/AuthenticatedShell.tsx + src/scenes/project-homepage/ProjectHomepage.tsx + src/scenes/project-homepage/ai-first/AiFirstHomepage.tsx
🟢 products/posthog_ai/frontend/components/tool/widgets/VisualizationWidget.tsx stays out of src/scenes/AuthenticatedShell.tsx + src/scenes/project-homepage/ProjectHomepage.tsx + src/scenes/project-homepage/ai-first/AiFirstHomepage.tsx
🟢 products/posthog_ai/frontend/components/tool/widgets/RecordingsWidget.tsx stays out of src/scenes/AuthenticatedShell.tsx + src/scenes/project-homepage/ProjectHomepage.tsx + src/scenes/project-homepage/ai-first/AiFirstHomepage.tsx
🟢 src/queries/Query/Query.tsx stays out of src/scenes/AuthenticatedShell.tsx + src/scenes/project-homepage/ProjectHomepage.tsx + src/scenes/project-homepage/ai-first/AiFirstHomepage.tsx
🟢 products/posthog_ai/frontend/api/primitives.ts stays out of src/scenes/AuthenticatedShell.tsx + src/scenes/project-homepage/ProjectHomepage.tsx + src/scenes/project-homepage/ai-first/AiFirstHomepage.tsx
🟢 src/scenes/notebooks/Notebook/notebookLogic.ts stays out of src/scenes/AuthenticatedShell.tsx + src/scenes/project-homepage/ProjectHomepage.tsx + src/scenes/project-homepage/ai-first/AiFirstHomepage.tsx
🟢 packages/quill/packages/quill/dist/ stays out of src/scenes/activity/explore/EventsScene.tsx
🟢 node_modules/@tiptap/ stays out of src/scenes/activity/explore/EventsScene.tsx
🟢 node_modules/prosemirror- stays out of src/scenes/activity/explore/EventsScene.tsx
🟢 node_modules/marked/ stays out of src/scenes/activity/explore/EventsScene.tsx
🟢 node_modules/frimousse/ stays out of src/scenes/activity/explore/EventsScene.tsx
🟢 src/scenes/session-recordings/playlist/SessionRecordingsPlaylist.tsx stays out of src/scenes/activity/explore/EventsScene.tsx
🟢 src/scenes/web-analytics/tiles/WebAnalyticsTile.tsx stays out of src/scenes/activity/explore/EventsScene.tsx
🟢 src/queries/validators.js stays out of src/scenes/activity/explore/EventsScene.tsx
🟢 src/queries/web-analytics-validators.js stays out of src/scenes/activity/explore/EventsScene.tsx
🟢 node_modules/re2js/ stays out of src/scenes/activity/explore/EventsScene.tsx
🟢 node_modules/kea-test-utils/ stays out of src/scenes/activity/explore/EventsScene.tsx
🟢 src/queries/nodes/InsightViz/InsightViz.tsx stays out of src/scenes/activity/explore/EventsScene.tsx
🟢 src/queries/nodes/DataVisualization/DataVisualization.tsx stays out of src/scenes/activity/explore/EventsScene.tsx
🟢 src/queries/nodes/WebOverview/WebOverview.tsx stays out of src/scenes/activity/explore/EventsScene.tsx
🟢 src/scenes/debug/HogDebug.tsx stays out of src/scenes/activity/explore/EventsScene.tsx
🟢 src/queries/QueryEditor/QueryEditor.tsx stays out of src/scenes/activity/explore/EventsScene.tsx
🟢 packages/quill/packages/quill/dist/ stays out of src/scenes/web-analytics/WebAnalyticsScene.tsx
🟢 node_modules/@tiptap/ stays out of src/scenes/web-analytics/WebAnalyticsScene.tsx
🟢 node_modules/prosemirror- stays out of src/scenes/web-analytics/WebAnalyticsScene.tsx
🟢 node_modules/marked/ stays out of src/scenes/web-analytics/WebAnalyticsScene.tsx
🟢 node_modules/frimousse/ stays out of src/scenes/web-analytics/WebAnalyticsScene.tsx
🟢 src/scenes/web-analytics/LiveMetricsDashboard/LiveWebAnalyticsMetrics.tsx stays out of src/scenes/web-analytics/WebAnalyticsScene.tsx
🟢 products/product_analytics/frontend/insights/trends/WorldMap/countryVectors.tsx stays out of src/scenes/web-analytics/WebAnalyticsScene.tsx
🟢 src/queries/validators.js stays out of src/scenes/web-analytics/WebAnalyticsScene.tsx
🟢 node_modules/re2js/ stays out of src/scenes/web-analytics/WebAnalyticsScene.tsx
🟢 node_modules/kea-test-utils/ stays out of src/scenes/web-analytics/WebAnalyticsScene.tsx
🟢 src/scenes/debug/HogDebug.tsx stays out of src/scenes/web-analytics/WebAnalyticsScene.tsx
🟢 src/queries/QueryEditor/QueryEditor.tsx stays out of src/scenes/web-analytics/WebAnalyticsScene.tsx
🟢 packages/quill/packages/quill/dist/ stays out of src/scenes/session-recordings/detail/SessionRecordingDetail.tsx
🟢 node_modules/@tiptap/ stays out of src/scenes/session-recordings/detail/SessionRecordingDetail.tsx
🟢 node_modules/prosemirror- stays out of src/scenes/session-recordings/detail/SessionRecordingDetail.tsx
🟢 node_modules/marked/ stays out of src/scenes/session-recordings/detail/SessionRecordingDetail.tsx
🟢 src/scenes/settings/SettingsMap.tsx stays out of src/scenes/session-recordings/detail/SessionRecordingDetail.tsx
🟢 @jspm/core/nodelibs/browser/fs stays out of src/scenes/session-recordings/detail/SessionRecordingDetail.tsx
🟢 node_modules/re2js/ stays out of src/scenes/session-recordings/detail/SessionRecordingDetail.tsx
🟢 node_modules/kea-test-utils/ stays out of src/scenes/session-recordings/detail/SessionRecordingDetail.tsx
🟢 node_modules/d3/src/ stays out of src/scenes/session-recordings/detail/SessionRecordingDetail.tsx
Largest files eagerly shipped from src/index.tsx
| Size | File |
|---|---|
| 126.8 KiB | ../node_modules/.pnpm/react-dom@18.3.1_react@18.3.1/node_modules/react-dom/cjs/react-dom.production.min.js |
| 24.6 KiB | ../node_modules/.pnpm/buffer@6.0.3/node_modules/buffer/index.js |
| 6.3 KiB | ../node_modules/.pnpm/react@18.3.1/node_modules/react/cjs/react.production.min.js |
| 4.7 KiB | ../node_modules/.pnpm/@jspm+core@2.1.0/node_modules/@jspm/core/nodelibs/browser/process.js |
| 4.0 KiB | ../node_modules/.pnpm/scheduler@0.23.2/node_modules/scheduler/cjs/scheduler.production.min.js |
| 1.9 KiB | src/lib/utils/bootTiming.ts |
| 1.7 KiB | src/index.tsx |
| 1.7 KiB | ../node_modules/.pnpm/base64-js@1.5.1/node_modules/base64-js/index.js |
| 1.2 KiB | src/RootErrorBoundary.tsx |
| 1.1 KiB | src/lib/utils/deferredAppContext.ts |
Largest files eagerly shipped from src/index.tsx + src/scenes/App.tsx + src/scenes/bootApp.ts
| Size | File |
|---|---|
| 358.6 KiB | ../node_modules/.pnpm/posthog-js@1.446.0_@types+react@18.3.27_react@18.3.1/node_modules/posthog-js/dist/module.mjs |
| 224.1 KiB | ../node_modules/.pnpm/@posthog+icons@0.39.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@posthog/icons/dist/posthog-icons.es.js |
| 126.8 KiB | ../node_modules/.pnpm/react-dom@18.3.1_react@18.3.1/node_modules/react-dom/cjs/react-dom.production.min.js |
| 105.4 KiB | src/products.tsx |
| 87.5 KiB | src/lib/api.ts |
| 68.7 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 |
| 28.3 KiB | src/lib/constants.tsx |
| 24.6 KiB | ../node_modules/.pnpm/buffer@6.0.3/node_modules/buffer/index.js |
Largest files eagerly shipped from src/scenes/AuthenticatedShell.tsx
| Size | File |
|---|---|
| 358.6 KiB | ../node_modules/.pnpm/posthog-js@1.446.0_@types+react@18.3.27_react@18.3.1/node_modules/posthog-js/dist/module.mjs |
| 224.1 KiB | ../node_modules/.pnpm/@posthog+icons@0.39.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@posthog/icons/dist/posthog-icons.es.js |
| 126.8 KiB | ../node_modules/.pnpm/react-dom@18.3.1_react@18.3.1/node_modules/react-dom/cjs/react-dom.production.min.js |
| 105.4 KiB | src/products.tsx |
| 87.5 KiB | src/lib/api.ts |
| 68.7 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 |
| 32.3 KiB | src/lib/utils/eventUsageLogic.ts |
| 28.3 KiB | src/lib/constants.tsx |
Largest files eagerly shipped from src/scenes/dashboard/Dashboard.tsx
| Size | File |
|---|---|
| 358.6 KiB | ../node_modules/.pnpm/posthog-js@1.446.0_@types+react@18.3.27_react@18.3.1/node_modules/posthog-js/dist/module.mjs |
| 224.1 KiB | ../node_modules/.pnpm/@posthog+icons@0.39.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@posthog/icons/dist/posthog-icons.es.js |
| 126.8 KiB | ../node_modules/.pnpm/react-dom@18.3.1_react@18.3.1/node_modules/react-dom/cjs/react-dom.production.min.js |
| 115.7 KiB | ../node_modules/.pnpm/posthog-js@1.446.0_@types+react@18.3.27_react@18.3.1/node_modules/posthog-js/dist/surveys-preview.js |
| 110.8 KiB | ../packages/quill/packages/primitives/dist/index.js |
| 105.4 KiB | src/products.tsx |
| 96.1 KiB | ../packages/quill/packages/components/dist/index.js |
| 87.5 KiB | src/lib/api.ts |
| 79.0 KiB | src/scenes/dashboard/dashboardLogic.tsx |
| 68.7 KiB | src/lib/lemon-ui/icons/icons.tsx |
Largest files eagerly shipped from src/scenes/AuthenticatedShell.tsx + src/scenes/project-homepage/ProjectHomepage.tsx + src/scenes/project-homepage/today/TodayHome.tsx
| Size | File |
|---|---|
| 358.6 KiB | ../node_modules/.pnpm/posthog-js@1.446.0_@types+react@18.3.27_react@18.3.1/node_modules/posthog-js/dist/module.mjs |
| 224.1 KiB | ../node_modules/.pnpm/@posthog+icons@0.39.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@posthog/icons/dist/posthog-icons.es.js |
| 126.8 KiB | ../node_modules/.pnpm/react-dom@18.3.1_react@18.3.1/node_modules/react-dom/cjs/react-dom.production.min.js |
| 110.8 KiB | ../packages/quill/packages/primitives/dist/index.js |
| 105.4 KiB | src/products.tsx |
| 87.5 KiB | src/lib/api.ts |
| 68.7 KiB | src/lib/lemon-ui/icons/icons.tsx |
| 68.0 KiB | ../products/posthog_ai/frontend/logics/runStreamLogic.ts |
| 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 |
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 |
|---|---|
| 358.6 KiB | ../node_modules/.pnpm/posthog-js@1.446.0_@types+react@18.3.27_react@18.3.1/node_modules/posthog-js/dist/module.mjs |
| 224.1 KiB | ../node_modules/.pnpm/@posthog+icons@0.39.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@posthog/icons/dist/posthog-icons.es.js |
| 126.8 KiB | ../node_modules/.pnpm/react-dom@18.3.1_react@18.3.1/node_modules/react-dom/cjs/react-dom.production.min.js |
| 110.8 KiB | ../packages/quill/packages/primitives/dist/index.js |
| 105.4 KiB | src/products.tsx |
| 87.5 KiB | src/lib/api.ts |
| 68.7 KiB | src/lib/lemon-ui/icons/icons.tsx |
| 68.0 KiB | ../products/posthog_ai/frontend/logics/runStreamLogic.ts |
| 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 |
| 41.7 KiB | src/scenes/hog-functions/sub-templates/sub-templates.ts |
Largest files eagerly shipped from src/scenes/activity/explore/EventsScene.tsx
| Size | File |
|---|---|
| 358.6 KiB | ../node_modules/.pnpm/posthog-js@1.446.0_@types+react@18.3.27_react@18.3.1/node_modules/posthog-js/dist/module.mjs |
| 224.1 KiB | ../node_modules/.pnpm/@posthog+icons@0.39.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@posthog/icons/dist/posthog-icons.es.js |
| 126.8 KiB | ../node_modules/.pnpm/react-dom@18.3.1_react@18.3.1/node_modules/react-dom/cjs/react-dom.production.min.js |
| 110.8 KiB | ../packages/quill/packages/primitives/dist/index.js |
| 105.4 KiB | src/products.tsx |
| 96.1 KiB | ../packages/quill/packages/components/dist/index.js |
| 87.5 KiB | src/lib/api.ts |
| 79.0 KiB | src/scenes/dashboard/dashboardLogic.tsx |
| 68.7 KiB | src/lib/lemon-ui/icons/icons.tsx |
| 68.0 KiB | ../products/posthog_ai/frontend/logics/runStreamLogic.ts |
Largest files eagerly shipped from src/scenes/web-analytics/WebAnalyticsScene.tsx
| Size | File |
|---|---|
| 358.6 KiB | ../node_modules/.pnpm/posthog-js@1.446.0_@types+react@18.3.27_react@18.3.1/node_modules/posthog-js/dist/module.mjs |
| 224.1 KiB | ../node_modules/.pnpm/@posthog+icons@0.39.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@posthog/icons/dist/posthog-icons.es.js |
| 126.8 KiB | ../node_modules/.pnpm/react-dom@18.3.1_react@18.3.1/node_modules/react-dom/cjs/react-dom.production.min.js |
| 115.7 KiB | ../node_modules/.pnpm/posthog-js@1.446.0_@types+react@18.3.27_react@18.3.1/node_modules/posthog-js/dist/surveys-preview.js |
| 110.8 KiB | ../packages/quill/packages/primitives/dist/index.js |
| 105.4 KiB | src/products.tsx |
| 96.1 KiB | ../packages/quill/packages/components/dist/index.js |
| 87.5 KiB | src/lib/api.ts |
| 79.0 KiB | src/scenes/dashboard/dashboardLogic.tsx |
| 68.7 KiB | src/lib/lemon-ui/icons/icons.tsx |
Largest files eagerly shipped from src/scenes/session-recordings/detail/SessionRecordingDetail.tsx
| Size | File |
|---|---|
| 358.6 KiB | ../node_modules/.pnpm/posthog-js@1.446.0_@types+react@18.3.27_react@18.3.1/node_modules/posthog-js/dist/module.mjs |
| 321.5 KiB | ../node_modules/.pnpm/posthog-js@1.446.0_@types+react@18.3.27_react@18.3.1/node_modules/posthog-js/dist/rrweb.js |
| 224.1 KiB | ../node_modules/.pnpm/@posthog+icons@0.39.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@posthog/icons/dist/posthog-icons.es.js |
| 126.8 KiB | ../node_modules/.pnpm/react-dom@18.3.1_react@18.3.1/node_modules/react-dom/cjs/react-dom.production.min.js |
| 110.8 KiB | ../packages/quill/packages/primitives/dist/index.js |
| 105.4 KiB | src/products.tsx |
| 96.1 KiB | ../packages/quill/packages/components/dist/index.js |
| 87.5 KiB | src/lib/api.ts |
| 68.7 KiB | src/lib/lemon-ui/icons/icons.tsx |
| 68.0 KiB | ../products/posthog_ai/frontend/logics/runStreamLogic.ts |
Posted automatically by check-eager-graph · sizes are eager output bytes (shipped, post-tree-shake) from the esbuild metafile · part of #32479
✅ Frontend layers — no new upward imports, 0 removed
Static imports from a lower frontend layer into a higher one (layers, lowest first: kernel, shell, query, features). Compared with the base branch, so an import that a PR also adds to layer-baseline.txt still shows here. Sizes are the source bytes on the eager path of every logged-in page.
| Layer | Eager source bytes | Δ vs base |
|---|---|---|
| kernel | 2.97 MiB | 🔺 +10 B (+0.0%) |
| shell | 2.34 MiB | no change |
| query | 56.2 KiB | no change |
| features | 272.7 KiB | no change |
Download the interactive layer graph for this PR.
Posted automatically by check-layers
✅ Toolbar bundle — eager 2.42 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.42 MiB · 19 files | 🔺 +10 B (+0.0%) | ████░░░░░░ 42.2% of 5.72 MiB |
| Deferred (lazy) | 2.61 MiB · 42 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 |
|---|---|
| 960.4 KiB | dist/toolbar/toolbar-app-FO7HE4NV.css |
| 730.5 KiB | dist/toolbar/chunk-chunk-EY3XXSB4.js |
| 290.5 KiB | dist/toolbar/chunk-chunk-VGI6XVDZ.js |
| 131.8 KiB | dist/toolbar/chunk-chunk-FQJO25M6.js |
| 130.4 KiB | dist/toolbar/chunk-chunk-RZE6NPXC.js |
| 75.7 KiB | dist/toolbar/toolbar-app-MKFKAK72.js |
| 69.0 KiB | dist/toolbar/chunk-chunk-BFAXZMC5.js |
| 33.8 KiB | dist/toolbar/chunk-chunk-LSNSWGYN.js |
| 21.7 KiB | dist/toolbar/chunk-chunk-6DLD3VB5.js |
| 6.8 KiB | dist/toolbar/chunk-chunk-RVLGRPCH.js |
Posted automatically by check-toolbar-size · sizes are toolbar output bytes (shipped, post-tree-shake) from the esbuild metafile
✅ Dist folder size — 🔺 +4.9 KiB (+0.0%)
Total size of the built frontend/dist folder (all assets), compared against the base branch.
Total: 983.61 MiB · 🔺 +4.9 KiB (+0.0%)
ℹ️ MCP UI apps size — 35 app(s), 29269.4 KB JS
Built size of each MCP UI app (main.js + styles.css).
| App | JS | CSS |
|---|---|---|
| debug | 848.8 KB | 220.9 KB |
| explain-chart | 1122.9 KB | 220.9 KB |
| action | 771.5 KB | 220.9 KB |
| action-list | 839.8 KB | 220.9 KB |
| cohort | 770.5 KB | 220.9 KB |
| cohort-list | 838.8 KB | 220.9 KB |
| email-template | 770.4 KB | 220.9 KB |
| error-details | 775.4 KB | 220.9 KB |
| error-issue | 772.7 KB | 220.9 KB |
| error-issue-list | 841.2 KB | 220.9 KB |
| experiment | 836.9 KB | 220.9 KB |
| experiment-list | 840.5 KB | 220.9 KB |
| experiment-results | 838.7 KB | 220.9 KB |
| feature-flag | 839.2 KB | 220.9 KB |
| feature-flag-list | 842.9 KB | 220.9 KB |
| feature-flag-testing | 773.8 KB | 220.9 KB |
| inline-scan | 771.0 KB | 220.9 KB |
| insight-actors | 838.3 KB | 220.9 KB |
| llm-costs | 835.6 KB | 220.9 KB |
| session-recording | 772.8 KB | 220.9 KB |
| survey | 772.1 KB | 220.9 KB |
| survey-global-stats | 835.6 KB | 220.9 KB |
| survey-list | 840.5 KB | 220.9 KB |
| survey-stats | 835.6 KB | 220.9 KB |
| trace-span | 770.9 KB | 220.9 KB |
| trace-span-list | 839.7 KB | 220.9 KB |
| vision-observation-list | 838.9 KB | 220.9 KB |
| workflow | 770.9 KB | 220.9 KB |
| workflow-list | 839.1 KB | 220.9 KB |
| workflow-setup-status | 770.6 KB | 220.9 KB |
| query-results | 1094.4 KB | 220.9 KB |
| render-ui | 1198.9 KB | 220.9 KB |
| visual-review-snapshots | 775.4 KB | 220.9 KB |
| workflow-data-suggestions | 773.2 KB | 220.9 KB |
| workflow-sending-rules | 771.9 KB | 220.9 KB |
ℹ️ MCP agent API — agent-facing tool changes
What this PR changes for agents, from the tool schema snapshots and tool definitions.
Tools changed (1):
| Tool | Params | Scopes | Annotations | Schema chars |
|---|---|---|---|---|
inbox-reports-list |
+ranking_id |
9,131 -> 9,648 |
⚠️ Backend coverage — 94.0% of changed backend lines covered — 9 uncovered
🧪 Backend test coverage
Patch coverage — changed backend lines (products + core): ███████████████████░ 94.0% (149 / 158)
| File | Patch | Uncovered changed lines |
|---|---|---|
products/signals/backend/personal_ranking/list_sort.py |
81.4% | 21–22, 27, 29, 31, 37–38, 59 |
products/signals/backend/views.py |
95.8% | 1410 |
🤖 Agents: add a test only if an uncovered line exposes a realistic regression that existing tests miss. Otherwise explain why no new test is needed under "How did you test this code?". Gap list: the patch-coverage artifact on this run (gh run download 142366329634353 -n patch-coverage), or the coverage-data block at the end of this comment.
Per-product line coverage (touched products)
| Product | Coverage | Lines |
|---|---|---|
platform_features |
██░░░░░░░░░░░░░░░░░░ 12.1% |
7 / 58 |
data_tools |
████████████░░░░░░░░ 60.9% |
95 / 156 |
warehouse_sources_queue |
█████████████░░░░░░░ 65.2% |
2,161 / 3,314 |
demo |
██████████████░░░░░░ 71.2% |
1,977 / 2,778 |
knowledge_writer |
███████████████░░░░░ 73.6% |
1,045 / 1,419 |
batch_exports |
████████████████░░░░ 82.3% |
23,652 / 28,746 |
engineering_analytics |
█████████████████░░░ 85.5% |
12,322 / 14,415 |
mcp_analytics |
█████████████████░░░ 86.3% |
5,811 / 6,732 |
ml_inference |
█████████████████░░░ 86.3% |
524 / 607 |
commands |
█████████████████░░░ 86.8% |
1,709 / 1,970 |
posthog_ai |
██████████████████░░ 87.9% |
4,305 / 4,897 |
apm |
██████████████████░░ 88.2% |
1,973 / 2,236 |
notebooks |
██████████████████░░ 88.8% |
15,454 / 17,407 |
mcp_registry |
██████████████████░░ 89.0% |
1,596 / 1,794 |
dashboards |
██████████████████░░ 89.4% |
8,040 / 8,993 |
product_tours |
██████████████████░░ 89.7% |
1,355 / 1,510 |
warehouse_suggestions |
██████████████████░░ 90.1% |
3,841 / 4,262 |
cohorts |
██████████████████░░ 90.3% |
9,219 / 10,211 |
visual_review |
██████████████████░░ 90.7% |
9,849 / 10,860 |
signals |
██████████████████░░ 90.7% |
103,471 / 114,080 |
canvas |
██████████████████░░ 91.2% |
8,199 / 8,988 |
data_warehouse |
██████████████████░░ 91.4% |
15,789 / 17,283 |
managed_warehouse |
██████████████████░░ 91.4% |
12,990 / 14,214 |
tasks |
██████████████████░░ 91.4% |
84,452 / 92,374 |
autoresearch |
██████████████████░░ 91.5% |
11,719 / 12,809 |
today |
██████████████████░░ 91.5% |
3,975 / 4,344 |
cdp |
██████████████████░░ 91.5% |
10,517 / 11,489 |
data_modeling |
██████████████████░░ 91.8% |
12,117 / 13,194 |
metrics |
██████████████████░░ 91.9% |
11,560 / 12,579 |
streamlit_apps |
██████████████████░░ 91.9% |
3,139 / 3,415 |
business_knowledge |
██████████████████░░ 92.1% |
10,825 / 11,753 |
wizard |
██████████████████░░ 92.2% |
7,002 / 7,594 |
review_hog |
██████████████████░░ 92.3% |
17,836 / 19,323 |
conversations |
██████████████████░░ 92.3% |
31,381 / 33,982 |
error_tracking |
███████████████████░ 92.5% |
20,699 / 22,374 |
early_access_features |
███████████████████░ 92.6% |
1,339 / 1,446 |
alerts_platform |
███████████████████░ 92.7% |
8,743 / 9,429 |
slack_app |
███████████████████░ 92.8% |
23,720 / 25,570 |
notifications |
███████████████████░ 92.8% |
1,218 / 1,312 |
actions |
███████████████████░ 92.9% |
1,360 / 1,464 |
stamphog |
███████████████████░ 93.1% |
10,740 / 11,538 |
alerts |
███████████████████░ 93.1% |
11,783 / 12,656 |
surveys |
███████████████████░ 93.3% |
7,256 / 7,780 |
webmcp |
███████████████████░ 93.3% |
277 / 297 |
ai_training |
███████████████████░ 93.3% |
598 / 641 |
web_analytics |
███████████████████░ 93.4% |
26,478 / 28,354 |
aeo |
███████████████████░ 93.4% |
2,312 / 2,475 |
workflows |
███████████████████░ 93.6% |
28,560 / 30,528 |
ai_gateway |
███████████████████░ 93.6% |
787 / 841 |
approvals |
███████████████████░ 93.7% |
5,004 / 5,341 |
marketing_analytics |
███████████████████░ 93.8% |
22,058 / 23,527 |
context_layer |
███████████████████░ 93.8% |
3,984 / 4,247 |
exports |
███████████████████░ 93.9% |
4,324 / 4,607 |
cross_project_dashboards |
███████████████████░ 93.9% |
858 / 914 |
mcp_store |
███████████████████░ 94.0% |
9,298 / 9,894 |
authorization |
███████████████████░ 94.0% |
671 / 714 |
billing_alerts |
███████████████████░ 94.0% |
2,322 / 2,470 |
ai_observability |
███████████████████░ 94.0% |
34,115 / 36,279 |
messaging |
███████████████████░ 94.0% |
8,646 / 9,194 |
customer_analytics |
███████████████████░ 94.1% |
30,858 / 32,786 |
managed_migrations |
███████████████████░ 94.1% |
1,877 / 1,994 |
replay_vision |
███████████████████░ 94.4% |
33,354 / 35,346 |
legal_documents |
███████████████████░ 94.4% |
2,313 / 2,451 |
logs |
███████████████████░ 94.4% |
19,485 / 20,630 |
reminders |
███████████████████░ 94.8% |
782 / 825 |
experiments |
███████████████████░ 94.8% |
45,568 / 48,056 |
warehouse_sources |
███████████████████░ 94.9% |
136,562 / 143,919 |
growth |
███████████████████░ 95.0% |
11,563 / 12,176 |
endpoints |
███████████████████░ 95.0% |
9,720 / 10,232 |
annotations |
███████████████████░ 95.1% |
1,097 / 1,153 |
skills |
███████████████████░ 95.2% |
7,633 / 8,018 |
uptime_monitoring |
███████████████████░ 95.3% |
306 / 321 |
access_control |
███████████████████░ 95.4% |
8,470 / 8,881 |
data_catalog |
███████████████████░ 95.7% |
4,714 / 4,928 |
subscriptions |
███████████████████░ 95.7% |
14,019 / 14,650 |
product_analytics |
███████████████████░ 95.8% |
30,544 / 31,882 |
feature_flags |
███████████████████░ 95.8% |
29,688 / 30,984 |
revenue_analytics |
███████████████████░ 95.9% |
1,877 / 1,958 |
data_quality |
███████████████████░ 96.0% |
8,564 / 8,918 |
tracing |
███████████████████░ 96.5% |
4,572 / 4,737 |
account_audits |
███████████████████░ 96.7% |
770 / 796 |
security |
███████████████████░ 96.8% |
1,597 / 1,650 |
pulse |
███████████████████░ 97.3% |
2,036 / 2,093 |
analytics_platform |
████████████████████ 98.0% |
2,883 / 2,943 |
groups |
████████████████████ 98.2% |
1,604 / 1,634 |
field_notes |
████████████████████ 99.4% |
172 / 173 |
Report-only. Patch coverage = changed backend lines covered vs origin/master. Sorted lowest first.
Known gaps: lines covered only by Temporal tests show as uncovered; core line numbers may drift if master changed the same file.
There was a problem hiding this comment.
PostHog Review · Standard · reviewed b83a341: 1 Should fix.
See this review and its findings in PostHog Review. Comment @posthog review --deep for a Deep review. A Deep review takes longer and looks deeper than a Standard review.
| ranking_id: zod | ||
| .string() | ||
| .optional() | ||
| .describe( | ||
| 'For sort=personal: the ranking_id of the first page. Pass it on later pages, so a new personal ranking does not reorder them. When that ranking no longer exists, the latest one applies.' | ||
| ), |
There was a problem hiding this comment.
P2 · Refresh the MCP input schema snapshot
Adding ranking_id and changing the sort description changes the runtime schema, but inbox-reports-list.json still contains the previous schema. tool-schema-snapshots.test.ts compares them directly and fails. Follow the snapshot refresh step and commit the updated snapshot.
There was a problem hiding this comment.
Not approved — this change needs a human reviewer.
Re-add the stamphog label to request another review once you have addressed this.
@PostHog's snapshot concern is still unaddressed, and the API-contract changes have no concern-free current-head review. Refresh the snapshot and request review from @PostHog/team-self-driving and @PostHog/team-context-and-mcp before re-requesting.
- PostHog Review (Standard) reviewed the current head: 1 finding, posted on the PR.
- @PostHog on services/mcp/src/generated/signals/api.ts: the MCP schema snapshot remains stale. The runtime input adds ranking_id and updates the sort description, but services/mcp/tests/unit/snapshots/tool-schemas/inbox-reports-list.json has neither update; tool-schema-snapshots.test.ts compares the runtime schema against that file. Refresh and commit the snapshot, then rerun the snapshot test before re-requesting.
Gate mechanics and policy version
| Gate | Result | |
|---|---|---|
| prerequisites | ✓ | all clear |
| deny-list | ✓ | no deny categories matched |
| size | ✓ | 202L, 4F substantive, 406L/9F incl. docs/generated/snapshots — within ceiling |
| tier | ✓ | T1-agent / T1d-complex (406L, 9F, two-areas, feat) |
| stamphog 2.7.0 | .stamphog/policy.yml @ b83a341 · reviewed head b83a341 |
|
@codex review |
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
|
Codex Review: Didn't find any major issues. Another round soon, please! Reviewed commit: ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
If Codex has suggestions, it will comment; otherwise it will react with 👍. Codex can also answer questions or update the PR. Try commenting "@codex address that feedback". |
There was a problem hiding this comment.
Not approved — escalated to a human reviewer.
Re-add the stamphog label to request another review once you have addressed this.
The API contract changes lack current-head independent assurance; the earlier approval and agent reviews cover an older commit, while the snapshot concern is fixed in the current diff. Request current-head review from @PostHog/team-self-driving and @PostHog/team-context-and-mcp before re-requesting.
- 👍 on the PR from chatgpt-codex-connector[bot].
- Risky territory without independent assurance: Public API contracts — products/signals/backend/views.py and serializers.py add a personalized list ordering, a ranking identifier query parameter and response field, and per-report ranking annotations; services/mcp/src/generated/signals/api.ts and src/tools/generated/signals.ts expose the new parameter to MCP callers.
Gate mechanics and policy version
| Gate | Result | |
|---|---|---|
| prerequisites | ✓ | all clear |
| deny-list | ✓ | no deny categories matched |
| size | ✓ | 202L, 4F substantive, 412L/10F incl. docs/generated/snapshots — within ceiling |
| tier | ✓ | T1-agent / T1d-complex (412L, 10F, two-areas, feat) |
| stamphog 2.7.0 | .stamphog/policy.yml @ 59e67cb · reviewed head 59e67cb |
|
/trunk merge |
…g/featsignals-add-sortpersonal-to-the-36bdd0 # Conflicts: # products/signals/backend/views.py
There was a problem hiding this comment.
Not approved — escalated to a human reviewer.
Re-add the stamphog label to request another review once you have addressed this.
The API contract changes lack current-head independent assurance; request review from @PostHog/team-self-driving and @PostHog/team-context-and-mcp before re-requesting. The snapshot concern raised by @PostHog is fixed in the current checkout; existing approvals and clean reviews are on older commits.
- 👍 on the PR from chatgpt-codex-connector[bot].
- Risky territory without independent assurance: Public API contracts — products/signals/backend/views.py and serializers.py add a personal list sort, ranking identifier parameter, and response metadata; services/mcp/src/generated/signals/api.ts and tools/generated/signals.ts expose the new parameter to MCP callers.
Gate mechanics and policy version
| Gate | Result | |
|---|---|---|
| prerequisites | ✓ | all clear |
| deny-list | ✓ | no deny categories matched |
| size | ✓ | 202L, 4F substantive, 412L/10F incl. docs/generated/snapshots — within ceiling |
| tier | ✓ | T1-agent / T1d-complex (412L, 10F, two-areas, feat) |
| stamphog 2.7.0 | .stamphog/policy.yml @ 2b2dd9e · reviewed head 2b2dd9e |
|
/trunk merge |
…g/featsignals-add-sortpersonal-to-the-36bdd0
There was a problem hiding this comment.
Not approved — escalated to a human reviewer.
Re-add the stamphog label to request another review once you have addressed this.
The API contract changes lack independent assurance on the current head; all supplied reviews cover older commits, and the snapshot concern is fixed. Request current-head review from @PostHog/team-self-driving and @PostHog/team-context-and-mcp before re-requesting.
- 👍 on the PR from chatgpt-codex-connector[bot].
- Risky territory without independent assurance: Public API contracts — products/signals/backend/views.py and serializers.py add a personal list ordering, a ranking identifier query parameter and response metadata, and per-report personal annotations; services/mcp/src/generated/signals/api.ts and src/tools/generated/signals.ts expose the new parameter through MCP.
Gate mechanics and policy version
| Gate | Result | |
|---|---|---|
| prerequisites | ✓ | all clear |
| deny-list | ✓ | no deny categories matched |
| size | ✓ | 202L, 4F substantive, 412L/10F incl. docs/generated/snapshots — within ceiling |
| tier | ✓ | T1-agent / T1d-complex (412L, 10F, two-areas, feat) |
| stamphog 2.7.0 | .stamphog/policy.yml @ 4a117c7 · reviewed head 4a117c7 |
| response.data["ranking_pill"] = ( | ||
| self._recommended_arm.ranking_pill if self._recommended_arm is not None else None | ||
| ) | ||
| response.data["ranking_id"] = self._personal_order.ranking_id if self._personal_order is not None else None |
There was a problem hiding this comment.
P2 · Include the resolved ranking ID in pagination links
When the first sort=personal request omits ranking_id, get_paginated_response() builds next without the resolved ID. Following that URL after a rebuild selects the latest ranking, so offset pagination repeats or skips reports. Returning the ID separately leaves the advertised pagination link unstable; include it in next and previous.
|
/trunk merge |
Problem
recommendedorder.for_meserves the ranking, and its read can gather candidates and queue a build. A page load cannot wait for that.Closes #129928
Origin
Changes
sort=personalon the report list. It is a pure read of one stored row: no candidate gathering, no queued build, no LLM call.recommendedorder.enabled: false), the list is the plainrecommendedorder.send_feature_flag_events=False, so the sort records no experiment exposure.ranking_id. Later pages pass it back, so a rebuild does not reshuffle page two.rankerispersonalwhen ranks apply.inbox_merge_keyfollows list position.personal_tierandpersonal_reason. The prefix keeps them apart from report fields.How did you test this code?
Test rationale: new
TestPersonalListSortcovers the four regressions the issue lists: a read that builds, a fallback that is not the base order, a list exposure, and a rebuild that reshuffles page two. No existing list test touches the personal ranking.Release status
Docs update
🤖 Agent context
Autonomy: Fully autonomous
Agent: Claude Code, claude-opus-5-5
Skills:
/writing-tests,/writing-pr-descriptionsMore context for AI agents
personalized=True, so a failed rebuild does not hide an older personal order.array_positionover the stored ids gives the SQL order, so paging stays in Postgres.sortandrankerto the client list-load event to measure adoption. Move the Today page to the sort._personal_orderand_apply_signal_report_orderinginproducts/signals/backend/views.py.Created with PostHog Desktop from this inbox report, addressing #129928.
🤖 Generated with Claude Code