fix(server): deps.ts — extract .number from ForgeIssueRef after #279 port change #280

Merged
charles merged 1 commit from fix/deps-iterate-issue-refs into main 2026-04-23 21:56:59 +00:00
Collaborator

Main is currently broken. Typecheck fails at 5 sites in deps.ts; server suite regresses from 4 pre-existing fails to 11.

Cause

#279 (janitor) changed ForgePort.getBlockers / getBlocked return from number[] to ForgeIssueRef[] so janitor's state-aware rules work. #277 (deps) was authored against the old signature and merged without a rebase, so deps.ts:256, 739, 753, 815 now feed ForgeIssueRef[] into Set<number> / edges.push({from: n, ...}) — tsc errors, runtime breaks the deps propagator and dependency graph.

Fix

Four call sites, each wrapped with .map((b) => b.number). Deps doesn't need blocker state — only numeric ids. Behavior unchanged from pre-breakage.

Checks

  • bunx tsc --noEmit -p apps/server/tsconfig.json — EXIT=0
  • bun --cwd apps/server test — 1006 pass / 3 pre-existing fails (session JSONL pruning ×3)

Merge ASAP — main is red until this lands.

Main is currently broken. Typecheck fails at 5 sites in `deps.ts`; server suite regresses from 4 pre-existing fails to 11. ## Cause #279 (janitor) changed `ForgePort.getBlockers` / `getBlocked` return from `number[]` to `ForgeIssueRef[]` so janitor's state-aware rules work. #277 (deps) was authored against the old signature and merged without a rebase, so `deps.ts:256, 739, 753, 815` now feed `ForgeIssueRef[]` into `Set<number>` / `edges.push({from: n, ...})` — tsc errors, runtime breaks the deps propagator and dependency graph. ## Fix Four call sites, each wrapped with `.map((b) => b.number)`. Deps doesn't need blocker state — only numeric ids. Behavior unchanged from pre-breakage. ## Checks - `bunx tsc --noEmit -p apps/server/tsconfig.json` — EXIT=0 - `bun --cwd apps/server test` — 1006 pass / 3 pre-existing fails (session JSONL pruning ×3) Merge ASAP — main is red until this lands.
fix(server): deps.ts — extract .number from ForgeIssueRef after #279 port change
All checks were successful
qa / qa (pull_request) Successful in 4m15s
qa / dockerfile (pull_request) Successful in 7s
c28aed1bfc
PR #279 (janitor) changed `ForgePort.getBlockers` / `getBlocked` return
type from `number[]` to `ForgeIssueRef[]` so janitor's three blocker-state
rules could read `.state`. #277 (deps) was authored against the old
signature and merged unrebased, so four call sites in deps.ts now typecheck
fail against `main` with `ForgeIssueRef` vs `number` mismatches and the
server suite regresses by 7 tests.

Fix: extract `.number` at each call site. Four surgical changes in
`fetchUnionBlockers`, `buildIssueDepsGraph` (two loops), and
`backfillDependencies`. Behavior is identical — deps doesn't need the
blocker state, only the numbers.

Suite back to 1006 pass / 3 pre-existing fails (same as pre-breakage).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
charles deleted branch fix/deps-iterate-issue-refs 2026-04-23 21:56:59 +00:00
Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
charles/claude-hooks!280
No description provided.