Repository navigation
Description
main CI failure — pm-aggregator tests
- Run: https://github.com/developing-today/code/actions/runs/41660620933
- Workflow: pm-aggregator tests (.github/workflows/pm-aggregator-tests.yml)
- Branch: main
- Head SHA: b9e2eaf
- Event: push
- Failed jobs: test
Failed log excerpt (gh run view 41660620933 --repo developing-today/code --log-failed, trimmed to the failure)
test Run aggregator tests 2026-11-03T15:08:06.9394655Z (pass) buildHealth checkout surfacing > behind drift is surfaced verbatim and marks the view degraded [0.21ms]
test Run aggregator tests 2026-11-03T15:08:06.9397988Z 110 | const view = await buildHealth(
test Run aggregator tests 2026-11-03T15:08:06.9398690Z 111 | inputs(feedWith({ state: "in-sync", head: HEAD, originMain: HEAD, behindBy: 0 })),
test Run aggregator tests 2026-11-03T15:08:06.9399450Z 112 | { fetcher, cache: createProbeCache(), now: NOW },
test Run aggregator tests 2026-11-03T15:08:06.9399937Z 113 | );
test Run aggregator tests 2026-11-03T15:08:06.9400505Z 114 | expect(view.feed.checkout.state).toBe("in-sync");
test Run aggregator tests 2026-11-03T15:08:06.9401042Z 115 | expect(view.degraded).toBe(false);
test Run aggregator tests 2026-11-03T15:08:06.9401581Z ^
test Run aggregator tests 2026-11-03T15:08:06.9402124Z error: expect(received).toBe(expected)
test Run aggregator tests 2026-11-03T15:08:06.9402508Z
test Run aggregator tests 2026-11-03T15:08:06.9402676Z Expected: false
test Run aggregator tests 2026-11-03T15:08:06.9403051Z Received: true
test Run aggregator tests 2026-11-03T15:08:06.9403198Z
test Run aggregator tests 2026-11-03T15:08:06.9403611Z at <anonymous> (/home/runner/work/code/code/pm-stack/aggregator/test/checkout-drift.test.ts:115:27)
test Run aggregator tests 2026-11-03T15:08:06.9404483Z
test Run aggregator tests 2026-11-03T15:08:06.9428198Z ##[error]Expected: false
test Run aggregator tests Received: true
test Run aggregator tests
test Run aggregator tests at <anonymous> (/home/runner/work/code/code/pm-stack/aggregator/test/checkout-drift.test.ts:115:27)
test Run aggregator tests 2026-11-03T15:08:06.9437603Z (fail) buildHealth checkout surfacing > in-sync drift does not degrade on its own [0.38ms]
test Run aggregator tests 2026-11-03T15:08:06.9438012Z
test Run aggregator tests 2026-11-03T15:08:06.9438277Z ##[endgroup]
test Run aggregator tests 2026-11-03T15:08:06.9438394Z
test Run aggregator tests 2026-11-03T15:08:06.9438658Z ##[group]test/opencode.test.ts:
test Run aggregator tests 2026-11-03T15:08:06.9459465Z (pass) opencode v2 mapper > maps signals and applies the inclusion window [4.44ms]
test Run aggregator tests 2026-11-03T15:08:06.9478058Z (pass) opencode v2 mapper > out-of-range stamps do not drop the server's sessions (#2286) [1.85ms]
test Run aggregator tests 2026-11-03T15:08:06.9486972Z (pass) opencode v2 mapper > in-range future stamps earn no freshness inclusion (#4180) [0.90ms]
test Run aggregator tests 2026-11-03T15:08:06.9500389Z (pass) opencode v2 mapper > future-stamped sessions cannot crowd out recent ones (#4180) [1.31ms]
test Run aggregator tests 2026-11-03T15:08:06.9508064Z (pass) opencode v2 mapper > active/pending-included future sessions map a null lastActivityAt (#4180) [0.78ms]
test Run aggregator tests 2026-11-03T15:08:06.9525914Z (pass) opencode v2 mapper > stamps the entry source when asked [1.76ms]
test Run aggregator tests 2026-11-03T15:08:06.9529135Z (pass) opencode v2 mapper > unreachable server fails soft (null) [0.22ms]
...
test Run aggregator tests 2026-11-03T15:08:18.6522287Z (pass) charge service catalog > deduplicates providers and respects filtered pools [0.08ms]
test Run aggregator tests 2026-11-03T15:08:18.6522859Z
test Run aggregator tests 2026-11-03T15:08:18.6523216Z ##[endgroup]
test Run aggregator tests 2026-11-03T15:08:18.6523366Z
test Run aggregator tests 2026-11-03T15:08:18.6523459Z 1 tests failed:
test Run aggregator tests 2026-11-03T15:08:18.6523825Z (fail) buildHealth checkout surfacing > in-sync drift does not degrade on its own [0.38ms]
test Run aggregator tests 2026-11-03T15:08:18.6524164Z
test Run aggregator tests 2026-11-03T15:08:18.6524243Z 1348 pass
test Run aggregator tests 2026-11-03T15:08:18.6524439Z 1 fail
test Run aggregator tests 2026-11-03T15:08:18.6524632Z 6157 expect() calls
test Run aggregator tests 2026-11-03T15:08:18.6524889Z Ran 1349 tests across 98 files. [13.40s]
test Run aggregator tests 2026-11-03T15:08:18.6591533Z ##[error]Process completed with exit code 1.
Key failure: the job's test step ran 1349 aggregator tests — 1348 pass, 1 fail. The single failure is buildHealth checkout surfacing > in-sync drift does not degrade on its own at pm-stack/aggregator/test/checkout-drift.test.ts:115: expect(view.degraded).toBe(false) — Expected: false, Received: true, for a feed whose checkout report is in-sync (HEAD == origin/main, behindBy 0). Process completed with exit code 1. Fresh round: prior track #4852 closed 2026-11-03T14:48:34Z and this run was created 2026-11-03T15:07:44Z on the new head b9e2eaf, with a different failure mode (a checkout-drift test failure, not the #4852 Typecheck failure). The failed job(s) above are the fix target; verify against this log, not only a local reproduction.
Filed by main-ci-failure-fix-trigger (fleet). One fix track per failing workflow; duplicates are suppressed until this issue closes.
Acceptance criteria
- The pm-aggregator test suite passes on main: the
buildHealthcheckout-surfacing case (in-sync feed, behindBy 0) yieldsview.degraded === falseagain. - The root cause is identified on this issue: either the degraded-flag logic regressed, or the test's expectation no longer matches an intentional behavior change (in which case the test and the change are reconciled explicitly, not silently).
- No other aggregator suite cases are weakened to get green.
Activity
dezren39 commentedon Nov 3, 2026
🤖 Agent note · filed
developing-today commentedon Nov 3, 2026
agent-note:v1
state: reviewed (coverage loop-back)
Coverage pass 2026-11-03, loop-back review: this issue was re-reviewed (drift / overlap / already-handled / stale / blockers / ordering) so every open issue in the four repos is reviewed and in the system. Verdict: still live; in the system as task 8169 (small_fix, queued, priority 40) in repo-health-code-pilot. Labels audited and synced. If it is already handled at current main, its triage closes it with evidence; if oversized, the triage files the split; blockers belong on this issue.
Found via: coverage loop-back 2026-11-03
dezren39 commentedon Nov 3, 2026
Intake review
Fleet monitor intake (Duty 2), 2026-11-03. (Posted on a delayed retry: the original comment attempts were rejected by a GitHub secondary rate limit; the label/body enrichment itself landed during the run.)
buildHealthcheckout surfacing, a different surface.developing-today commentedon Nov 3, 2026
🤖 Agent note · picked up + implementation complete
pm-aggregator testsmain-CI failure (run 41660620933):buildHealth checkout surfacing > in-sync drift does not degrade on its own— expected degraded=false, got true.4ecdab48f(ready-for-agent: declare its configuration in-repo and surface dispatch state in the aggregator #1203) addedrfa.state === "down"to buildHealth's degraded computation and updatedhealth.test.tsto inject an up harness viarfaState, but missedcheckout-drift.test.ts. In CI there is no live ready-for-agent harness at 127.0.0.1:6056, so the facet reads down and degrades the view regardless of checkout state.RfaStatein the three checkout-surfacingbuildHealthcalls, mirroringhealth.test.ts. Laptop: targeted files 31 pass; full aggregator suite 1376 pass, 0 fail.queue/8169-4995-checkout-drift-rfa· commit129b36bf6Merge pull request #5058 from developing-today/queue/8169-4995-checko…
developing-today commentedon Nov 3, 2026
🤖 Agent note · done (fixed + merged)
c0b545e0430f3611fa87328fea7e7cf818ce8348); this issue was closed by the merge.4ecdab48faddedrfa.state === "down"to buildHealth's degraded computation and injected an up harness inhealth.test.tsonly;checkout-drift.test.tskept reading a live harness that does not exist in CI, so the in-sync checkout test saw degraded=true.bun test test/checkout-drift.test.ts test/health.test.ts31 pass; full aggregator suite 1376 pass, 0 fail. Main-CI confirmation runs on the merge push (CI is main-only in this repo); the previously failing test is the one this PR changes.