Skip to content

aggregator: pages manifest broken on main — PageDef.group missing (3 typecheck errors, 7 test failures) #2580

Open

Description

@dezren39

Found 2026-10-30 during the merge-everything pass, verified twice against a pristine checkout of main (git archive of origin/main), so this is pre-existing breakage on main, not fallout from any PR.

In pm-stack/aggregator:

  • bunx tsc --noEmit (or the repo's typecheck) reports 3 errors
  • the test suite reports 7 failures
  • all of them sit in the pages-manifest / overview area

Apparent root cause: PageDef in pm-stack/aggregator/src/pages.ts is missing the group field that the manifest/overview code and its tests expect. Either the field was dropped from the type without updating its consumers, or the consumers were written against a field that never landed.

Acceptance: typecheck clean and the aggregator suite green on main; if group is intentionally gone, remove its uses and the tests that assert it instead.

Acceptance criteria

  • bunx tsc --noEmit (the repo typecheck) is clean in pm-stack/aggregator on main
  • The aggregator test suite is green on main (the 7 pages-manifest/overview failures resolved)
  • Either PageDef.group is restored and consumed consistently, or every use of group and the tests asserting it are removed — no half-state
  • The fix is verified against a pristine checkout of main, matching how the breakage was found

Activity

  1. added
    kind/bugSomething isn't working (prefixed form of the classic bug label)
    priority/highImportant and time-sensitive
    effort/sSmall: expected under 2 hours of work
    app/pm-stackpm-stack (Pad/Grist) in developing-today/code
    meta/enrichedIntake review done: acceptance criteria, links, and normalized labels added
    on Oct 30, 2026
  2. dezren39 commented on Oct 30, 2026

    @dezren39
    MemberAuthor

    Intake review

    Still live: the filer verified the breakage twice against a pristine git archive of origin/main on 2026-10-30, and no merged PR since then touches PageDef — treat as live main breakage until a fresh typecheck on current main says otherwise.

    Related: code #2590 and #2582 are defects in the same aggregator (pm-stack) but different mechanisms (attention classification, quota pctWindows) — not duplicates. Note the pages manifest is also what the fleet feed renders from, so this breakage can hide fleet state.

    Notes / risks: 3 typecheck errors + 7 test failures all in the pages-manifest/overview area, centred on PageDef.group in pm-stack/aggregator/src/pages.ts. Two coherent resolutions exist (restore the field, or remove its uses + tests); the wrong pick loses either a real grouping feature or real test coverage, so the triage should first check git history for when group disappeared and whether the removal was deliberate.

    Suggested approach: git log -p on pages.ts around the group field, decide restore-vs-remove from that evidence, then run typecheck + the aggregator suite on a pristine checkout.

  3. dezren39 commented on Oct 30, 2026

    @dezren39
    MemberAuthor

    Fixed in #2604

    #2604

    Direction chosen: restore group end-to-end. PageDef.group/PAGE_GROUPS/groupedPages() are the nav-section model from #1135 and the tests plus the nav consumers are right to require it. The breakage was a bad merge of #1134 into #1135 (6f3fda03): the pages.ts conflict was resolved by taking the #1135 side of the board entry and keeping the new #1134 overview entry verbatim, leaving two pages on / and an overview entry with no group (so groupedPages() dropped it from the nav).

    What changed

    • src/pages.ts: overview keeps / and gains group: "overview"; board is back on /board — which is what server.ts already serves.
    • test/overview.test.ts: fixtures refreshed for fields added after impl(aggregator): make / the stack front door - overview of all projects, attention, health, quotas (board moves to /board) #1134 (HealthView.version/itemsCoverage, AttentionView.watchdog) — 2 of the 3 typecheck errors.
    • test/actions.test.ts: the applied-snooze fixture measured until from its fixed past NOW, so it had silently expired (render-time suppression uses the wall clock). The snooze is now live at render.
    • README.md: route table updated (/ = Overview, /board = board).

    Evidence, verified in a fresh worktree of origin/main (f9268e24)

    Before:

    $ bunx tsc --noEmit
    src/pages.ts(44,3): error TS2741: Property 'group' is missing ...
    test/overview.test.ts(11,7): error TS2739: ... 'HealthView' ... version, itemsCoverage
    test/overview.test.ts(29,3): error TS2741: ... 'watchdog' is missing ... 'AttentionView'
    
    $ bun test
     498 pass
     7 fail
    

    After:

    $ bunx tsc --noEmit
    (clean, no output)
    
    $ bun test
     505 pass
     0 fail
     2614 expect() calls
    Ran 505 tests across 41 files.
    

    Codex review on the PR completed with no findings; the PR is mergeable with no blockers (one optional check still queued).

  4. dezren39 commented on Nov 1, 2026

    @dezren39
    MemberAuthor

    🤖 Agent note · full-suite failure census at main (from queue task 4918 verification)

  5. added
    queue/queuedHas a queued task in the Supabase agent queue
    source/creatorFiled by the new-issue-creator job
    task/triageQueue packet kind: verify, reproduce, and route this item
    on Nov 3, 2026
  6. 12 remaining items

  7. dezren39 commented on Nov 4, 2026

    @dezren39
    MemberAuthor

    🤖 Agent note · handed off

    • Agent: fleet monitor (repo-fleet-monitor)
    • Session / ID: task 7342
    • Found via: monitor reconciliation
    • Task: claim-evaporated repair — the queue claim on task 7342 ended without complete/park/block, its lease expired, and the task returned to queued unclaimed while this issue still carried claimed labels. Labels reset to the truth: queue/queued + status/needs-triage. Checkpoint stage at evaporation: handed_off.
    • Expectation: the next lane to claim task 7342 posts a fresh pickup note.
  8. added
    queue/claimedQueue worker lifecycle state
    work/assignedQueue worker lifecycle state
    and removed
    queue/queuedHas a queued task in the Supabase agent queue
    on Nov 4, 2026
  9. dezren39 commented on Nov 4, 2026

    @dezren39
    MemberAuthor

    🤖 Agent note · handed off

  10. dezren39 commented on Nov 4, 2026

    @dezren39
    MemberAuthor

    agent-note:v1
    task: 7342
    lane: code-q (repo-queue-worker-shift-q)
    state: handed_off (execution lane: opencode)
    Re-verified fresh 2026-11-04T17:32Z: issue #2580 OPEN, no hard-stop labels, claimed labels already set. Handing task 7342 (triage, attempts 14/24) to the opencode claimant for fresh triage at current main.

  11. dezren39 commented on Nov 5, 2026

    @dezren39
    MemberAuthor

    🤖 Agent note · handed off

  12. added
    queue/queuedHas a queued task in the Supabase agent queue
    and removed
    queue/claimedQueue worker lifecycle state
    work/assignedQueue worker lifecycle state
    on Nov 5, 2026
  13. dezren39 commented on Nov 5, 2026

    @dezren39
    MemberAuthor

    🤖 Agent note · handed off

    • Agent: fleet monitor
    • Session / ID: task 7342 (repo-fleet-monitor run 2026-11-05T15:39:47Z)
    • Found via: monitor reconciliation (Duty 1 claim/label divergence repair)
    • Task: Claim evaporated: task 7342 is queued and unclaimed in repo-health-code-pilot, but this issue still carried claimed labels. Labels reset to the truth (queue/queued + status/needs-triage). Checkpoint stage at evaporation: handed_off.
    • Expectation: The next lane claim picks task 7342 up from the queued state and posts a fresh pickup note.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

app/pm-stackpm-stack (Pad/Grist) in developing-today/codeeffort/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-sensitivequeue/queuedHas a queued task in the Supabase agent queuesource/creatorFiled by the new-issue-creator jobstatus/needs-triageNot yet triaged; needs a first looktask/triageQueue packet kind: verify, reproduce, and route this item

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions