Repository navigation
Closed
Labels
app/aggregatorPackage/app: aggregator (pm-stack in this repo)Package/app: aggregator (pm-stack in this repo)app/pm-stackpm-stack (Pad/Grist) in developing-today/codepm-stack (Pad/Grist) in developing-today/codearea/ciCI/CD pipelines, workflows, and build automation (area)CI/CD pipelines, workflows, and build automation (area)effort/sSmall: expected under 2 hours of workSmall: expected under 2 hours of workkind/bugSomething isn't working (prefixed form of the classic bug label)Something isn't working (prefixed form of the classic bug label)meta/enrichedIntake review done: acceptance criteria, links, and normalized labels addedIntake review done: acceptance criteria, links, and normalized labels addedpriority/normalOrdinary priority (the default)Ordinary priority (the default)source/queue-workerFiled or worked by the queue/worker pilotFiled or worked by the queue/worker pilottask/triageQueue packet kind: verify, reproduce, and route this itemQueue packet kind: verify, reproduce, and route this item
Description
Problem
bunx tsc --noEmit in pm-stack/aggregator is red on current main with 12 errors, so the package's typecheck script cannot pass and the new aggregator CI (#1579) reports a pre-existing red typecheck step on every aggregator PR until these are fixed.
Verified 2026-11-01 on pristine main eb226be58 (fresh worktree, bun install --frozen-lockfile first) by queue worker lane C (task 5023). This matches the baseline other fleet work has repeatedly measured on clean main (12 errors); it is not caused by any single recent PR.
The 12 errors
src/push.ts(9,21): error TS7016: Could not find a declaration file for module 'web-push'.
test/charges-collect.test.ts(53,28): error TS2345: Argument of type '{ at: string; label: string; amountUsd: number; }[]' is not assignable to parameter of type 'ChargeRow[]'.
test/charges-collect.test.ts(53,52): error TS2769: No overload matches this call.
test/charges-collect.test.ts(59,28): error TS2345: Argument of type '{ at: string; label: string; amountUsd: number; }[]' is not assignable to parameter of type 'ChargeRow[]'.
test/feed.test.ts(16,10): error TS2300: Duplicate identifier 'renderQuota'.
test/feed.test.ts(17,10): error TS2300: Duplicate identifier 'renderQuota'.
test/feed.test.ts(470,38): error TS2769: No overload matches this call. (UnmatchedCharge 'source' string not assignable to ChargeSourceKind)
test/feed.test.ts(480,38): error TS2769: No overload matches this call. (same)
test/github-billing.test.ts(161,33): error TS2365: Operator '>' cannot be applied to types 'number | { low: number; high: number; }' and 'number'.
test/overview.test.ts(19,3): error TS2741: Property 'checkout' is missing in type ... but required in type ... CheckoutDrift ...
test/quota-current.test.ts(541,78): error TS18048: 'a' is possibly 'undefined'.
test/quota-current.test.ts(541,82): error TS18048: 'b' is possibly 'undefined'.
11 of 12 are in test files (stale fixtures/shapes after source type changes); 1 is src/push.ts missing web-push type declarations.
Acceptance
bunx tsc --noEmitexits 0 inpm-stack/aggregatoron main.bun testresult unchanged by the fix (928 pass / 1 pre-existing fail — the fail is aggregator: slice3 registry test fails on clean main — no claude-code record via fixture path #3835, tracked separately).- Fixes address the types (fixtures updated to current shapes, duplicate identifier removed, web-push declarations added) rather than weakening
tsconfigstrictness or adding blanket// @ts-ignore.
Acceptance criteria
bunx tsc --noEmitinpm-stack/aggregatorpasses with zero errors on the PR branch (the 12-error baseline measured on main eb226be is gone).- The
web-pushTS7016 error is resolved by a real declaration (types package or local declaration), not a blanket// @ts-ignoreorskipLibCheckchange. - Test-file type errors are fixed by aligning test fixtures with the production types (e.g.
ChargeRow[]), not by loosening the production types or casting throughany. - The aggregator test suite still passes and no runtime behavior changes.
Metadata
Metadata
Assignees
Labels
app/aggregatorPackage/app: aggregator (pm-stack in this repo)Package/app: aggregator (pm-stack in this repo)app/pm-stackpm-stack (Pad/Grist) in developing-today/codepm-stack (Pad/Grist) in developing-today/codearea/ciCI/CD pipelines, workflows, and build automation (area)CI/CD pipelines, workflows, and build automation (area)effort/sSmall: expected under 2 hours of workSmall: expected under 2 hours of workkind/bugSomething isn't working (prefixed form of the classic bug label)Something isn't working (prefixed form of the classic bug label)meta/enrichedIntake review done: acceptance criteria, links, and normalized labels addedIntake review done: acceptance criteria, links, and normalized labels addedpriority/normalOrdinary priority (the default)Ordinary priority (the default)source/queue-workerFiled or worked by the queue/worker pilotFiled or worked by the queue/worker pilottask/triageQueue packet kind: verify, reproduce, and route this itemQueue packet kind: verify, reproduce, and route this item
Activity
dezren39 commentedon Nov 1, 2026
Intake review
eb226be58.web-pushinsrc/push.ts) and test-fixture type drift (11 errors, mostlytest/). They can land as one PR or two; neither needs the other.@types/web-push(or equivalent) touches the lockfile only.web-pushdeclaration first (one line of dependency/declaration), then walk the 11 test errors file by file; each is a fixture shape that drifted from its row type. Verify withbunx tsc --noEmitinpm-stack/aggregatoron the branch and the package test suite.developing-today commentedon Nov 3, 2026
agent-note:v1
state: triaged (coverage pass)
Coverage pass 2026-11-03: reviewed in the fleet-wide per-issue pass (drift / overlap / already-handled / stale / blockers / ordering). Verdict: still live; queued in repo-health-code-pilot as triage at priority 40 (priority/normal). If this is already handled at current main, the triage closes it with evidence; if it needs splitting, the triage files the split.
Found via: coverage pass 2026-11-03
dezren39 commentedon Nov 3, 2026
Status note (new-issue-creator-code-a, 2026-11-03): re-measured
bunx tsc --noEmitin pm-stack/aggregator at origin/main 4ab80c4 (clean laptop worktree, frozen-lockfile install). Result: exactly ONE error remains — a new regression not in this issue's 12-error baseline: test/overview.test.ts(12,7) TS2741, the HealthView fixture missing theconflictsfield that PR #5032 (#1282) made required today. That error is tracked as #5043. The 12 baseline errors listed here no longer reproduce (cleared via #4848 and follow-ups), so once #5043 lands this issue's condition should be fully resolved.dezren39 commentedon Nov 3, 2026
agent-note:v1
state: done (already_done)
task: 8347 (repo-health-code-pilot, lane code-m)
Triage — the 12-error baseline is GONE at current main; closing with evidence (2026-11-03)
Fresh verification on main
bb4624b2a04078b845b03b50aeaa54a60dd97dca(laptop primary, clean, at origin/main; SHA confirmed via two independentgh apireads):bunx tsc --noEmitinpm-stack/aggregatornow reports exactly 1 error, and it is NOT one of this issue's 12:test/overview.test.ts(12,7): error TS2741: Property 'conflicts' is missing ... but required in type 'HealthView'— that is issue pm-stack(aggregator): typecheck red on main — test/overview.test.ts HealthView fixture missing the new required conflicts field (from #1282 / PR #5032) #5043 (regression from feat(aggregator): source-conflict inbox — one resolvable queue for Project-vs-derived and Kaneo-vs-GitHub disagreements, with per-class trust rulings #1282 / PR feat(aggregator): read-only source-conflict inbox + API + health count (#1282) #5032), already filed and tracked separately.eb226be58(2026-11-01) are absent from the run: the charges-collect, feed (incl. the duplicaterenderQuota), github-billing, quota-current, and overviewcheckouterrors were fixed piecemeal by intervening PRs.web-pushTS7016 item is resolved the way the acceptance criteria required: a real local declaration atpm-stack/aggregator/src/web-push.d.ts(declare module "web-push"), not a ts-ignore or a strictness change.So this issue's own scope is complete. The typecheck is still red on main for exactly one reason — #5043 — and that issue owns the remaining fix; keeping #4023 open would double-track it.
Closing as completed. Found via: queue task 8347 triage, lane code-m, 2026-11-03.