Skip to content

feat(signals): use the personal inbox ranking in prioritizing-my-inbox - #126300

Closed
posthog[bot] wants to merge 2 commits into
masterfrom
posthog-self-driving/featsignals-use-the-personal-inbox-9bdae6
Closed

posthog[bot] wants to merge 2 commits into
masterfrom
posthog-self-driving/featsignals-use-the-personal-inbox-9bdae6

Conversation

@posthog

@posthog posthog Bot commented Oct 30, 2026 •

Copy link
Copy Markdown
Contributor

Problem

  • People who ask an agent for "my top 10 inbox reports" wait for up to seven inbox-reports-list calls plus an activity summary call, and pay the tokens.
  • The order the skill builds can differ from the personal ranking that PostHog surfaces will show.

Warning

Do not merge before #126250 ships the inbox-reports-for-me tool. Until then, every run takes the fallback path.

Closes #126251

Origin

  • Issues: #126251
  • First signal: 2026-10-30
  • Inbox report: open
  • Task started by: auto-start, after the report was rated P3 and ready to fix

Changes

  • A plain "my top N" request now makes one inbox-reports-for-me call. The skill shows its rank, tier, reason, next step, model lifts and list age.
  • Re-ranking: "focus on X" calls again with focus, "refresh" sends refresh: true. Filters such as "skip digests" or "things I can fix" work on the list the skill already holds.
  • The pool-and-score method moves to references/pool-and-score.md. It runs only when the tool is missing, returns 404, or returns personalized: false with no results.
  • Mechanical: pointer text in products/signals/mcp/tools.yaml, inbox-exploration, and products/signals/skills/AGENTS.md.

How did you test this code?

Test rationale: skill text only; no code path to test.

Release status

  • No feature flag controls this change

Docs update

  • None.

🤖 Agent context

Autonomy: Fully autonomous

Agent: PostHog Desktop (Claude Code), claude-opus-5-5

Skills: /writing-skills, /writing-pr-descriptions

More context for AI agents

Created with PostHog Desktop from this inbox report, addressing #126251.

🤖 Generated with Claude Code

The skill now calls inbox-reports-for-me once and presents its order, tier, reason and next step. The pool-and-score method moves to references/pool-and-score.md as the fallback for a missing tool, a 404, or an empty unpersonalized list.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

Generated-By: PostHog Desktop
Task-Id: 96f077e4-6100-4351-818c-f8c59d6c0f25
@posthog posthog Bot added the self-driving label Oct 30, 2026
@trunk-io

trunk-io Bot commented Oct 30, 2026

Copy link
Copy Markdown

Merging to master in this repository is managed by Trunk.

  • To merge this pull request, check the box to the left or comment /trunk merge below.

After your PR is submitted to the merge queue, this comment will be automatically updated with its status. If the PR fails, failure details will also be posted here

@posthog
posthog Bot marked this pull request as ready for review October 30, 2026 12:41
@posthog
posthog Bot requested a review from andrewm4894 October 30, 2026 12:41
@parameterai

parameterai Bot commented Oct 30, 2026 •

Copy link
Copy Markdown

Risk: No findings

This increment only reflows a sentence in the inbox-reports-list tool description in tools.yaml and regenerates the two JSON schema files to carry the same text. No code, parameters, permissions, or tool behavior changed, so it introduces no new security surface.

Sentinel reviewed a741cd2 · Review settings

@pr-assigner-resolver-posthog
pr-assigner-resolver-posthog Bot requested a review from a team October 30, 2026 12:41
@github-actions

github-actions Bot commented Oct 30, 2026 •

Copy link
Copy Markdown
Contributor

🤖 CI report

⚠️ Trunk lane — backend Python lane

This PR is assigned to the backend Python lane. It runs backend Python tests and may merge in parallel with PRs in other lanes.

✅ Bundle size — no change

Uncompressed size of every built .js bundle, compared against the base branch.

Total: 79.12 MiB · no change

No file changed by more than 1000 B.

Posted automatically by build-bundle-size-report · uncompressed bytes from dist-report

⚠️ Eager graph — 1 over budget

How much code each root ships on the eager path — downloaded and parsed before the surface is interactive. Measured from the esbuild output chunks (post-tree-shake, static imports only); lazy import() / React.lazy chunks are not counted.

Root Eager (shipped) Δ vs base Budget
entry (logged-out pages, app bootstrap)
src/index.tsx
1.03 MiB · 25 files no change █████████░ 90.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
3.00 MiB · 623 files no change ██████████ 99.0% of 3.03 MiB
🟡 authenticated shell (every logged-in page)
src/scenes/AuthenticatedShell.tsx
7.12 MiB · 2,468 files no change ██████████ 100.2% of 7.10 MiB
dashboard scene
src/scenes/dashboard/Dashboard.tsx
9.97 MiB · 3,734 files no change ██████████ 99.6% of 10.01 MiB
today home path
src/scenes/AuthenticatedShell.tsx + src/scenes/project-homepage/ProjectHomepage.tsx + src/scenes/project-homepage/today/TodayHome.tsx
7.29 MiB · 2,556 files no change ██████████ 99.3% of 7.34 MiB
AI-first home path
src/scenes/AuthenticatedShell.tsx + src/scenes/project-homepage/ProjectHomepage.tsx + src/scenes/project-homepage/ai-first/AiFirstHomepage.tsx
7.55 MiB · 2,555 files no change ██████████ 99.6% of 7.58 MiB
events scene
src/scenes/activity/explore/EventsScene.tsx
9.41 MiB · 3,510 files no change ██████████ 98.1% of 9.59 MiB
web analytics scene
src/scenes/web-analytics/WebAnalyticsScene.tsx
10.37 MiB · 3,777 files no change ██████████ 95.7% of 10.83 MiB
replay detail scene
src/scenes/session-recordings/detail/SessionRecordingDetail.tsx
8.17 MiB · 3,026 files no change █████████░ 86.3% 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 src/index.tsx
1.7 KiB ../node_modules/.pnpm/base64-js@1.5.1/node_modules/base64-js/index.js
1.7 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
325.0 KiB ../node_modules/.pnpm/posthog-js@1.443.0_@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.6 KiB src/products.tsx
86.7 KiB src/lib/api.ts
67.9 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
325.0 KiB ../node_modules/.pnpm/posthog-js@1.443.0_@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.6 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.7 KiB src/lib/api.ts
Largest files eagerly shipped from src/scenes/dashboard/Dashboard.tsx
Size File
325.0 KiB ../node_modules/.pnpm/posthog-js@1.443.0_@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.6 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
325.0 KiB ../node_modules/.pnpm/posthog-js@1.443.0_@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.6 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.7 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
325.0 KiB ../node_modules/.pnpm/posthog-js@1.443.0_@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.6 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
325.0 KiB ../node_modules/.pnpm/posthog-js@1.443.0_@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.6 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
325.0 KiB ../node_modules/.pnpm/posthog-js@1.443.0_@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
187.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.6 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
325.0 KiB ../node_modules/.pnpm/posthog-js@1.443.0_@types+react@18.3.27_react@18.3.1/node_modules/posthog-js/dist/module.mjs
316.5 KiB ../node_modules/.pnpm/posthog-js@1.443.0_@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.6 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 #32479

✅ Toolbar bundle — eager 2.34 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.34 MiB · 19 files no change ████░░░░░░ 40.8% of 5.72 MiB
Deferred (lazy) 2.11 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
941.1 KiB dist/toolbar/toolbar-app-6U6ENA2U.css
695.9 KiB dist/toolbar/chunk-chunk-LT5KFTOY.js
261.2 KiB dist/toolbar/chunk-chunk-3D7VEAC5.js
131.8 KiB dist/toolbar/chunk-chunk-FDH2IBXT.js
130.4 KiB dist/toolbar/chunk-chunk-US77PZU3.js
75.7 KiB dist/toolbar/toolbar-app-DTARFEK6.js
69.0 KiB dist/toolbar/chunk-chunk-TSAL54PB.js
35.6 KiB dist/toolbar/chunk-chunk-GZPOBQCA.js
21.7 KiB dist/toolbar/chunk-chunk-XBHJKCOR.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 — no change

Total size of the built frontend/dist folder (all assets), compared against the base branch.

Total: 988.16 MiB · no change

ℹ️ MCP UI apps size — 35 app(s), 29122.2 KB JS

Built size of each MCP UI app (main.js + styles.css).

App JS CSS
debug 844.3 KB 211.6 KB
explain-chart 1117.7 KB 211.6 KB
action 767.7 KB 211.6 KB
action-list 835.3 KB 211.6 KB
cohort 766.7 KB 211.6 KB
cohort-list 834.3 KB 211.6 KB
email-template 766.6 KB 211.6 KB
error-details 771.6 KB 211.6 KB
error-issue 768.9 KB 211.6 KB
error-issue-list 836.8 KB 211.6 KB
experiment 832.4 KB 211.6 KB
experiment-list 836.1 KB 211.6 KB
experiment-results 835.0 KB 211.6 KB
feature-flag 834.7 KB 211.6 KB
feature-flag-list 838.4 KB 211.6 KB
feature-flag-testing 770.0 KB 211.6 KB
inline-scan 767.2 KB 211.6 KB
insight-actors 833.8 KB 211.6 KB
llm-costs 831.1 KB 211.6 KB
session-recording 769.0 KB 211.6 KB
survey 768.3 KB 211.6 KB
survey-global-stats 831.1 KB 211.6 KB
survey-list 836.0 KB 211.6 KB
survey-stats 831.1 KB 211.6 KB
trace-span 767.1 KB 211.6 KB
trace-span-list 835.2 KB 211.6 KB
vision-observation-list 834.4 KB 211.6 KB
workflow 767.1 KB 211.6 KB
workflow-list 834.7 KB 211.6 KB
workflow-setup-status 766.7 KB 211.6 KB
query-results 1089.6 KB 211.6 KB
render-ui 1194.2 KB 211.6 KB
visual-review-snapshots 771.6 KB 211.6 KB
workflow-data-suggestions 769.4 KB 211.6 KB
workflow-sending-rules 768.1 KB 211.6 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 description changed

@posthog posthog Bot left a comment

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

PostHog Review · Standard · reviewed 73e1efa: 3 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.

| "Refresh" / "anything new?" | Call again with `refresh: true` |
| "Only X" | Keep the entries whose title, `reason` or `matched` names X. If few are left, call with `focus` |
| "Skip digests" / "skip scout Y" | Drop entries by title pattern or scout name |
| "Things I can fix" | Keep entries with no pull request and a high `fix` lift |

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 · Preserve actionable reports without model predictions

When the user requests “things I can fix” and reports are unscored or ranking access is unavailable, requiring a high fix lift removes every such report. get_ranking explicitly returns empty predictions in these states, so this also breaks the fallback for users outside the rollout. Filter by actionability and PR state, using lifts only to order eligible reports.

| "Only X" | Keep the entries whose title, `reason` or `matched` names X. If few are left, call with `focus` |
| "Skip digests" / "skip scout Y" | Drop entries by title pattern or scout name |
| "Things I can fix" | Keep entries with no pull request and a high `fix` lift |
| "What's waiting on me" | Keep entries whose `tier` or `reason` says they wait on the person, `pending_input` reports, and approved pull requests |

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 · Verify personal routing before including reports waiting for input

In the fallback, candidates include project-wide action and theme pools, and pool-and-score.md delegates this filter here. Keeping all pending_input reports and approved PRs labels work awaiting other people as waiting on the caller; those states do not establish personal routing. Check reviewer or claim ownership before including these entries.

Comment on lines +108 to +109
Then call again with a larger `limit` (up to 50) and the same `focus`, and filter again.
A larger `limit` without `refresh` reads the stored list, so it does not cost a new build.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 · Avoid rebuilding focused rankings when requesting more rows

When a focused list has fewer than N entries after filtering, this instruction repeats focus while increasing limit. The skill states that every focus call builds a new ranking, so this adds tens of seconds and consumes another rate-limited build instead of reading stored rows. Describe how to expand the existing focused ranking without triggering another build.

@stamphog stamphog Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Not approved — this change needs a human reviewer.

Re-add the stamphog label to request another review once you have addressed this.

All three substantive findings from @PostHog remain unaddressed in the current skill text. Address the comments on products/signals/skills/prioritizing-my-inbox/SKILL.md and request another review from @PostHog/team-self-driving before re-requesting.

  • PostHog Review (Standard) reviewed the current head: 3 findings, posted on the PR.
  • @PostHog on products/signals/skills/prioritizing-my-inbox/SKILL.md:102: The fixable-work filter still requires a high fix lift, excluding actionable reports without predictions. serializers.py:get_ranking returns unavailable or unscored payloads in those cases, and the fallback delegates to this filter. Filter eligibility by actionability and PR state; use lifts only for ordering.
  • @PostHog on products/signals/skills/prioritizing-my-inbox/SKILL.md:103: The waiting-for-me filter still includes pending-input reports and approved PRs without checking personal routing. The fallback includes project-wide candidate pools and reuses this filter. Require reviewer or claim ownership before including those reports.
  • @PostHog on products/signals/skills/prioritizing-my-inbox/SKILL.md:107-109: Expanding a filtered list still repeats focus, although the skill explicitly says focus initiates a new build. The proposed tool is not implemented in this checkout, so the claim that this reads stored rows cannot be verified. Document a supported way to expand the existing focused ranking without rebuilding.
Gate mechanics and policy version
Gate Result
prerequisites ✓ all clear
deny-list ✓ no deny categories matched
size ✓ 4L, 1F substantive, 327L/6F incl. docs/generated/snapshots — within ceiling
tier ✓ T1-agent / T1d-complex (327L, 6F, single-area, feat)
stamphog 2.6.1 .stamphog/policy.yml @ 73e1efa · reviewed head 73e1efa

@hosthog

hosthog Bot commented Oct 30, 2026 •

Copy link
Copy Markdown

HostHog preview — posthog-desktop-web

The previews for this PR have been torn down and no longer serve.

@stamphog stamphog Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Not approved — this change needs a human reviewer.

Re-add the stamphog label to request another review once you have addressed this.

All three substantive concerns from @PostHog remain unaddressed in the current skill instructions. Address those comments before re-requesting, with review from @PostHog/team-self-driving.

  • @PostHog, products/signals/skills/prioritizing-my-inbox/SKILL.md:102: The fixable-work filter still requires a high model lift, excluding actionable reports without predictions. serializers.py:2141–2162 confirms ranking can be unavailable or unscored. Use actionability and pull request state for eligibility, with lifts only for ordering.
  • @PostHog, products/signals/skills/prioritizing-my-inbox/SKILL.md:103: The waiting-on-me filter still includes pending-input reports and approved pull requests without verifying personal routing. The fallback gathers project-wide candidates and delegates filtering here. Require reviewer or claim ownership before including these reports.
  • @PostHog, products/signals/skills/prioritizing-my-inbox/SKILL.md:107–109: Expanding a filtered list still repeats focus, although the skill explicitly says focus calls rebuild rankings. The assertion that increasing the limit avoids rebuilding does not resolve that contradiction. Document a supported way to expand the stored focused ranking without another build.
Gate mechanics and policy version
Gate Result
prerequisites ✓ all clear
deny-list ✓ no deny categories matched
size ✓ 9L, 3F substantive, 332L/8F incl. docs/generated/snapshots — within ceiling
tier ✓ T1-agent / T1d-complex (332L, 8F, two-areas, feat)
stamphog 2.6.1 .stamphog/policy.yml @ a741cd2 · reviewed head a741cd2

@posthog posthog Bot left a comment

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

PostHog Review · Standard · reviewed a741cd2: 3 Should fix.

| "Skip digests" / "skip scout Y" | Drop entries by title pattern or scout name |
| "Things I can fix" | Keep entries with no pull request and a high `fix` lift |
| "What's waiting on me" | Keep entries whose `tier` or `reason` says they wait on the person, `pending_input` reports, and approved pull requests |
| "Just new ones" | Keep entries whose `reason` or `matched` marks them as new. Read a report with `inbox-reports-retrieve` when you need its dates |

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 · Filter new reports by creation date

For “just new ones,” this filter drops recently created reports whenever reason and matched describe relevance without mentioning newness. Those fields explain ranking rather than establish creation time, so the result omits eligible reports. Use created_at against a defined recent window, retrieving dates when the compact report lacks them.

| "More on X" / "focus on X" | Add a search pool for X, give X matches a large boost |
| "Just new stuff" | Window to the last 1 to 3 days, sort by `created_at` |
| "Ignore the model" | Set `model_multiplier` to 1.0 and say so |
| Anything else | Use the filters in [SKILL.md](../SKILL.md#re-ranking) on the list you hold |

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 · Handle refresh explicitly in the fallback workflow

After falling back because inbox-reports-for-me is missing or returns 404, a user saying “refresh” reaches this catch-all and the main table's instruction to call that unavailable tool with refresh: true. The advertised adjustment therefore fails instead of updating the shortlist. Add a fallback refresh instruction that fetches and scores fresh candidate pools.

| "Skip digests" / "skip scout Y" | Drop entries by title pattern or scout name |
| "Things I can fix" | Keep entries with no pull request and a high `fix` lift |
| "What's waiting on me" | Keep entries whose `tier` or `reason` says they wait on the person, `pending_input` reports, and approved pull requests |
| "Just new ones" | Keep entries whose `reason` or `matched` marks them as new. Read a report with `inbox-reports-retrieve` when you need its dates |

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 · Fetch report dates in bulk for the newness filter

When a user asks for new reports and compact entries lack dates, this instruction requires an inbox-reports-retrieve call per candidate. A 25–50-entry shortlist becomes 25–50 detail requests, loading full reports merely to check timestamps and reversing the tool-call savings. Fetch dated candidates through a bounded list request or include dates in compact entries.

@andrewm4894
andrewm4894 marked this pull request as draft October 30, 2026 12:51
@andrewm4894

Copy link
Copy Markdown
Member

Moving this to draft: it is blocked on #126250, which adds the inbox-reports-for-me tool. That tool does not exist yet, so this skill change cannot be tested, and its field names (tier, matched, folded, the compact report row) follow the #126250 issue text rather than a real serializer. The builder it depends on is #126249, also not built yet.

Once #126250 merges: rebase, check the field names against the shipped serializer, test against the live tool, then mark ready.

@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Nov 6, 2026 •

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-11-06T11:14:54.762192Z a741cd2 Draft marked ready
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@andrewm4894

Copy link
Copy Markdown
Member

Closing as superseded by #130804. That issue makes view=for_you, sort=personal the first route for personal prioritization and keeps inbox-reports-for-me for on-demand, focus and refresh requests, so this PR's main path is out of date. One idea worth carrying over: moving the old pool-and-score fallback into a reference file (references/pool-and-score.md) to keep SKILL.md short.

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: a741cd2fc9

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

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".

| "Refresh" / "anything new?" | Call again with `refresh: true` |
| "Only X" | Keep the entries whose title, `reason` or `matched` names X. If few are left, call with `focus` |
| "Skip digests" / "skip scout Y" | Drop entries by title pattern or scout name |
| "Things I can fix" | Keep entries with no pull request and a high `fix` lift |

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Preserve the actionability check when filtering fixable reports

When someone asks for “things I can fix,” this now treats a high predicted fix lift as an eligibility condition instead of checking actionability: immediately_actionable. A report requiring human input can pass despite being blocked, while an immediately actionable but unscored report is excluded. The backend's actionable view explicitly checks the actionability judgment (products/signals/backend/views.py, _apply_signal_report_inbox_view_filter); a forecast does not replace that judgment. This also affects the fallback, whose re-ranking instructions delegate to this table. Restore the actionability check and use the lift as a ranking preference rather than a hard filter.

Useful? React with 👍 / 👎.

| "Only X" | Keep the entries whose title, `reason` or `matched` names X. If few are left, call with `focus` |
| "Skip digests" / "skip scout Y" | Drop entries by title pattern or scout name |
| "Things I can fix" | Keep entries with no pull request and a high `fix` lift |
| "What's waiting on me" | Keep entries whose `tier` or `reason` says they wait on the person, `pending_input` reports, and approved pull requests |

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Keep pending-input reports scoped to the requesting person

When someone asks “what's waiting on me,” this instruction now keeps every pending_input report, dropping the previous requirement that it be routed to that person. This produces incorrect results in the fallback: theme-search and newly-created candidate pools are project-wide, so they can include reports waiting on a coworker. The backend explicitly distinguishes this case in products/signals/backend/briefing_reports.py: _relation_to_person assigns WAITING_FOR_YOU only when both names_me and PENDING_INPUT hold. Preserve that routing requirement here, rather than treating status alone as evidence that the requester owes an answer.

Useful? React with 👍 / 👎.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

feat(signals): use the personal ranking in the prioritizing-my-inbox skill

1 participant