Skip to content

main CI failure: pm-aggregator tests (run 41660620933) #4995

Closed

Description

@dezren39

main CI failure — pm-aggregator tests

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 buildHealth checkout-surfacing case (in-sync feed, behindBy 0) yields view.degraded === false again.
  • 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

  1. dezren39 commented on Nov 3, 2026

    @dezren39
    MemberAuthor

    🤖 Agent note · filed

  2. added
    kind/bugSomething isn't working (prefixed form of the classic bug label)
    task/small-fixQueue packet kind: bounded fix with reproduction and targeted tests
    priority/highImportant and time-sensitive
    queue/queuedHas a queued task in the Supabase agent queue
    source/ci-watchFiled by the main-ci-failure-fix-trigger (fleet CI watch)
    effort/sSmall: expected under 2 hours of work
    meta/enrichedIntake review done: acceptance criteria, links, and normalized labels added
    on Nov 3, 2026
  3. developing-today commented on Nov 3, 2026

    @developing-today
    Contributor

    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

  4. dezren39 commented on Nov 3, 2026

    @dezren39
    MemberAuthor

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

    • Related: CI run 41660620933 (the failing run the filer cites); epic code#3702 spawned several aggregator/alerts follow-ups the same day (code#4980/aggregator(alerts): bound mergeClasses keys to a class registry (#3702 disposition 4) #4981/aggregator(alerts): remove the now-projected GET /api/push/subscriptions (#3702 seam check) #4983) — this failure is in buildHealth checkout surfacing, a different surface.
    • Still live: main CI red at filing (2026-11-03T15:15Z) on the pm-aggregator tests workflow; the issue already carries queue/queued with a live task, so a lane owns the fix path — this pass only enriches.
    • Notes: single assertion failure: in-sync checkout (behindBy 0) is being marked degraded. Either side could be wrong; the criteria force the verdict to be recorded.
    • Risks: papering over by flipping the expectation would hide a real degraded-signal regression — hence the third criterion.
    • Suggested approach: reproduce via CI on a branch, read the degraded computation in buildHealth against the feed state the test builds, fix the wrong side.
  5. added
    work/assignedQueue worker lifecycle state
    queue/claimedQueue worker lifecycle state
    and removed
    queue/queuedHas a queued task in the Supabase agent queue
    on Nov 3, 2026
  6. developing-today commented on Nov 3, 2026

    @developing-today
    Contributor

    🤖 Agent note · picked up + implementation complete

  7. added a commit that references this issue on Nov 3, 2026
  8. developing-today commented on Nov 3, 2026

    @developing-today
    Contributor

    🤖 Agent note · done (fixed + merged)

    • Agent: queue worker (repo-worker-code), lane M shift
    • Session / ID: queue task 8169 (small_fix)
    • Task: Fixed and merged — PR test(aggregator): inject up harness facet in checkout-drift health tests (#4995) #5058 merged 2026-11-03 (merge commit c0b545e0430f3611fa87328fea7e7cf818ce8348); this issue was closed by the merge.
    • Root cause (recap): ready-for-agent: declare its configuration in-repo and surface dispatch state in the aggregator #1203's commit 4ecdab48f added rfa.state === "down" to buildHealth's degraded computation and injected an up harness in health.test.ts only; checkout-drift.test.ts kept reading a live harness that does not exist in CI, so the in-sync checkout test saw degraded=true.
    • Verification: laptop — bun test test/checkout-drift.test.ts test/health.test.ts 31 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.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    effort/sSmall: expected under 2 hours of workkind/bugSomething isn't working (prefixed form of the classic bug label)meta/enrichedIntake review done: acceptance criteria, links, and normalized labels addedpriority/highImportant and time-sensitivesource/ci-watchFiled by the main-ci-failure-fix-trigger (fleet CI watch)task/small-fixQueue packet kind: bounded fix with reproduction and targeted tests

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions