Skip to content

fix(console): the workers-list lane helpers drop a re-read refused by a stopping gateway (#642) - #667

Merged
V3RON merged 4 commits into
mainfrom
bug/642
Oct 17, 2026
Merged

V3RON merged 4 commits into
mainfrom
bug/642

Conversation

@V3RON

@V3RON V3RON commented Oct 17, 2026 •

Copy link
Copy Markdown
Contributor

Closes #642

Status

Implement: done (repro red 8e565b6 -> green cf17fb2; fix commit 759ebe2) Review: round 2 passed (spec/code/claims F0) Hardware: n/a Gate: not run
Next: gate

Done when

  • The lane's /v1/workers response helpers survive the gateway's listener stopping between interception and fetch — the carried repro (workers-gateway-stops-mid-fetch.spec.ts, adapted to call the real extracted helpers) is red at 8e565b6 with the lane's route.fetch: connect ECONNREFUSED signature and green from cf17fb2; the helpers drop that re-read with route.abort()
  • A non-connect error from the re-read still fails the test (the narrow catch) — pinned: a rejection the regex does not match propagates out of the handler with no abort; probes: broadening the catch reddens the non-connect case, dropping it reddens the connect and repro cases; narrowing the regex to ECONNREFUSED reddens the ECONNRESET / socket-hang-up cases
  • workers.spec.ts keeps passing with the helpers extracted, unchanged behavior — the two helpers moved to workers-answers.ts verbatim but for the fetchOrDrop guard; lane run green

Assumptions

  • Assumption: the connect-level classes are ECONNREFUSED, ECONNRESET and socket hang up — the three the triage census observed (refused connect and destroyed mid-request); any other error still rethrows.

Review

Spec review: 0 blocking, 0 fixed, 0 notes. Code review: 2 blocking, 2 fixed, 0 notes. Claims review: 0 blocking, 0 fixed, 1 note.
Rounds: 2. Tokens: n/a.

Kind tests-only, so all three reviews ran; the code reviewer with lens: tests. Inputs from .agents/scripts/review-inputs.sh 667 (rules, ADRs and briefs from main). Round 1 reviewed cf17fb26; round 2 reviewed the fix 759ebe28 (code + claims, F0 both).

How the reviews were spawned: this session sits at subagent depth and the harness refused nested spawns, as on #643, #644, #646, #649, #650 and #661. Each reviewer ran as a fresh detached claude -p session — the body of .claude/agents/<reviewer>.md as its system prompt, its model from that file's frontmatter — reading only the inputs directory and its own worktree of the reviewed commit, with no PR body, commit messages or another reviewer's output; each read .agents/briefs/calibration.md first. Nothing was reviewed by the agent that wrote the code.

Written by an agent.

@V3RON

V3RON commented Oct 17, 2026

Copy link
Copy Markdown
Contributor Author

Review notes

Not blocking, not verified. Each is one reviewer's claim.

  • claims: e2e/console/workers-answers.ts:11 the why: says only connect-level errors are dropped and calls it "the refused connect"; the regex also drops ECONNRESET and socket hang up, which are mid-request resets, not connect failures

Written by an agent.

@V3RON
V3RON marked this pull request as ready for review October 17, 2026 11:18
@V3RON
V3RON merged commit ad10d6a into main Oct 17, 2026
53 checks passed
@V3RON
V3RON deleted the bug/642 branch October 17, 2026 11:30
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Flaky console lane: workers.spec.ts route.fetch gets ECONNREFUSED from the daemon it just answered

1 participant