feat(sdk): add SDK aliases and separate AI usage metrics - #93911
feat(sdk): add SDK aliases and separate AI usage metrics#93911marandaneto wants to merge 17 commits into
Conversation
|
❌ This pull request could not start testing because there was a merge conflict. See more details here.
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 |
🤖 CI report
|
| Root | Eager (shipped) | Δ vs base | Budget |
|---|---|---|---|
entry (logged-out pages, app bootstrap)src/index.tsx |
1.45 MiB · 22 files | no change | ███░░░░░░░ 32.3% of 4.51 MiB |
authenticated shell (every logged-in page)src/scenes/AuthenticatedShell.tsx |
8.88 MiB · 3,265 files | no change | █████████░ 91.4% of 9.71 MiB |
🟢 node_modules/monaco-editor/ stays out of src/index.tsx
🟢 src/lib/components/ActivityLog/describers stays out of src/index.tsx
🟢 [object Object] stays out of src/index.tsx
🟢 [object Object] stays out of src/index.tsx
🟢 node_modules/monaco-editor/ stays out of src/scenes/AuthenticatedShell.tsx
🟢 src/lib/components/ActivityLog/describers stays out of src/scenes/AuthenticatedShell.tsx
🟢 [object Object] stays out of src/scenes/AuthenticatedShell.tsx
🟢 [object Object] stays out of src/scenes/AuthenticatedShell.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.5 KiB | ../node_modules/.pnpm/@jspm+core@2.1.0/node_modules/@jspm/core/nodelibs/browser/process.js |
| 3.9 KiB | ../node_modules/.pnpm/scheduler@0.23.2/node_modules/scheduler/cjs/scheduler.production.min.js |
| 1.4 KiB | ../node_modules/.pnpm/base64-js@1.5.1/node_modules/base64-js/index.js |
| 1.3 KiB | src/RootErrorBoundary.tsx |
| 912 B | ../node_modules/.pnpm/ieee754@1.2.1/node_modules/ieee754/index.js |
| 789 B | src/scenes/ChunkLoadErrorBoundary.tsx |
| 762 B | src/index.tsx |
Largest files eagerly shipped from src/scenes/AuthenticatedShell.tsx
| Size | File |
|---|---|
| 307.0 KiB | ../node_modules/.pnpm/posthog-js@1.422.5_@types+react@18.3.27_react@18.3.1/node_modules/posthog-js/dist/rrweb.js |
| 267.7 KiB | ../node_modules/.pnpm/@posthog+icons@0.38.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@posthog/icons/dist/posthog-icons.es.js |
| 263.5 KiB | ../node_modules/.pnpm/posthog-js@1.422.5_@types+react@18.3.27_react@18.3.1/node_modules/posthog-js/dist/module.js |
| 255.1 KiB | src/taxonomy/core-filter-definitions-by-group.json |
| 154.2 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 |
| 104.5 KiB | src/lib/api.ts |
| 95.8 KiB | ../packages/quill/packages/quill/dist/index.js |
| 93.3 KiB | ../node_modules/.pnpm/prosemirror-view@1.40.1/node_modules/prosemirror-view/dist/index.js |
| 90.6 KiB | ../node_modules/.pnpm/@tiptap+core@3.20.6_@tiptap+pm@3.20.6/node_modules/@tiptap/core/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.27 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.27 MiB · 18 files | no change | ████░░░░░░ 39.6% of 5.72 MiB |
| Deferred (lazy) | 2.11 MiB · 45 files | no change | n/a — loads on demand |
Loader dist/toolbar.js |
1.1 KiB | no change | █░░░░░░░░░ 5.8% of 19.5 KiB |
Largest eagerly-shipped chunks
| Size | File |
|---|---|
| 754.1 KiB | dist/toolbar/toolbar-app-YBL7L6MV.css |
| 590.5 KiB | dist/toolbar/chunk-chunk-CQHMOG33.js |
| 484.7 KiB | dist/toolbar/chunk-chunk-RFL5H2T4.js |
| 135.6 KiB | dist/toolbar/chunk-chunk-XEL6EY25.js |
| 131.8 KiB | dist/toolbar/chunk-chunk-FDH2IBXT.js |
| 71.3 KiB | dist/toolbar/toolbar-app-BFD7RWNC.js |
| 69.0 KiB | dist/toolbar/chunk-chunk-TSAL54PB.js |
| 35.6 KiB | dist/toolbar/chunk-chunk-SGFE3VEH.js |
| 21.0 KiB | dist/toolbar/chunk-chunk-7WCJ3CHT.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 — 🔺 +205 B (+0.0%)
Total size of the built frontend/dist folder (all assets), compared against the base branch.
Total: 1459.57 MiB · 🔺 +205 B (+0.0%)
⚠️ Playwright — 1 failed
🎭 Playwright report · View test results →
❌ 1 failed test:
- edits and deletes a check from Data Ops (chromium)
These issues are not necessarily caused by your changes.
Annoyed by this section? Help fix flakies and failures and it will go green!
|
Reviews (1): Last reviewed commit: "feat(sdk): add KMP usage reporting" | Re-trigger Greptile |
|
needs PostHog/posthog-python#917 but not a blocker, metrics will be zeroed until merged and thats fine |
pawel-cebula
left a comment
There was a problem hiding this comment.
Usage report side looks good - haven't reviewed the flags part.
🦔 Hogbox preview · ❌ build failedThe preview didn't come up for commit Previews are optional and never block merging. A failure here is often a hogland or tailnet hiccup rather than anything in your PR, so the check stays green and this comment is the status. |
| jest.useFakeTimers() | ||
| try { | ||
| jest.setSystemTime(new Date('2026-08-28T12:00:00Z')) | ||
| logic.actions.loadScoutRunsSuccess([ | ||
| makeRun({ skill_name: 'signals-scout-busy', emitted_report_ids: ['r-1'] }), | ||
| ]) | ||
| } finally { | ||
| jest.useRealTimers() | ||
| } |
There was a problem hiding this comment.
not related but its flaky in this pr
dustinbyrne
left a comment
There was a problem hiding this comment.
seems likely that SDK health (formerly SDK doctor) would need updating as well
Problem
SDK maintainers cannot distinguish several SDKs, aliases, and language-specific PostHog AI integrations in usage reports.
Feature flag analytics also classified newer package-specific SDK identifiers as unknown.
Changes
posthog-railscontributes to the existing Ruby metric.posthog-aspnetcorecontributes to the existing .NET metric.$liband$ai_lib, then subtracts each sub-SDK from its correct parent SDK.posthog-server.How did you test this code?
TestQueryUsageReportSQLand the Temporal usage-report query registry tests.hogli ci:preflight --fix, and the repository-wide mypy check.Library::as_str()values.Automatic notifications
Docs update
None. This adds internal usage-report and feature flag analytics classification.
🤖 Agent context
Autonomy: Human-driven (agent-assisted)
Pi implemented and validated the change under human direction. No customer or private source material was used.