Settle or abandon a dispatch whose agent died before subagent-stop [capture] #527

Open
opened 2026-09-03 14:10:38 +00:00 by jared · 0 comments
Owner

Context

On 2026-09-03, #524 implementation 4: refactorer dispatch 31 died on an Anthropic API 529 before it called subagent-stop. os-sdlc-runner next then returned await_completion with no way to settle or abandon the open row. A harness resume of the already finished test-writer agent fired SubagentStart; the hook recorded stray dispatch 32 (agent_type test-writer) bound to the pending refactorer node. Settling 32 by hand recorded gate_skip -> verdict error -> implementation_failed, even though gate 31 re-run by the orchestrator was green. A second fresh refactorer also died on 529 and, because 31 was open, got no dispatch row at all. Files: plugins/os-sdlc/lib/os_sdlc/runner (subagent-start hook, next router). Extends the true-crash gap noted on #496.

Needed: (1) an explicit os-sdlc-runner abandon DISPATCH_ID or equivalent that closes an open dispatch as crashed and lets the orchestrator re-dispatch the same node; (2) the start hook must not bind a resumed agent of a different type to the pending node.

VERDICT: CREATE (ticket-skeptic, 2026-09-03: real observed failure, tooling gap, this ticket is the root).

Origin

  • Trigger: /os-sdlc:implement 524, refactorer dispatch 31, Anthropic API 529 (req_011CegayKp3ZCe3uHupzmJhL).
  • Improvised this session: ran os-sdlc-runner gate 31 by hand (green), then hand-wrote subagent-stop JSON for 31 and 32; 32 settled as error and failed the implementation.
  • Chain: implementation_failed <- stray dispatch 32 bound to pending node (start hook, plugins/os-sdlc/hooks) <- harness resumed finished test-writer after crash (UPSTREAM-TOOL: Claude Code harness, 2026-09-03) <- refactorer 31 never settled (DESIGN: ADR-0144 agent-initiated settlement; #496 crash fallback needs a subagent-stop call).
  • Root candidate: this ticket.
## Context On 2026-09-03, #524 implementation 4: refactorer dispatch 31 died on an Anthropic API 529 before it called subagent-stop. `os-sdlc-runner next` then returned await_completion with no way to settle or abandon the open row. A harness resume of the already finished test-writer agent fired SubagentStart; the hook recorded stray dispatch 32 (agent_type test-writer) bound to the pending refactorer node. Settling 32 by hand recorded gate_skip -> verdict error -> implementation_failed, even though gate 31 re-run by the orchestrator was green. A second fresh refactorer also died on 529 and, because 31 was open, got no dispatch row at all. Files: plugins/os-sdlc/lib/os_sdlc/runner (subagent-start hook, next router). Extends the true-crash gap noted on #496. Needed: (1) an explicit `os-sdlc-runner abandon DISPATCH_ID` or equivalent that closes an open dispatch as crashed and lets the orchestrator re-dispatch the same node; (2) the start hook must not bind a resumed agent of a different type to the pending node. VERDICT: CREATE (ticket-skeptic, 2026-09-03: real observed failure, tooling gap, this ticket is the root). ## Origin - Trigger: /os-sdlc:implement 524, refactorer dispatch 31, Anthropic API 529 (req_011CegayKp3ZCe3uHupzmJhL). - Improvised this session: ran `os-sdlc-runner gate 31` by hand (green), then hand-wrote subagent-stop JSON for 31 and 32; 32 settled as error and failed the implementation. - Chain: implementation_failed <- stray dispatch 32 bound to pending node (start hook, plugins/os-sdlc/hooks) <- harness resumed finished test-writer after crash (UPSTREAM-TOOL: Claude Code harness, 2026-09-03) <- refactorer 31 never settled (DESIGN: ADR-0144 agent-initiated settlement; #496 crash fallback needs a subagent-stop call). - Root candidate: this ticket.
Sign in to join this conversation.
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
jared/cc-os#527
No description provided.