os-sdlc: resume --action retry crashes on agentless states (NOT NULL dispatches.agent) #404

Closed
opened 2026-08-15 13:17:08 +00:00 by jared · 2 comments
Owner

Found during #403. The lint state has agent: null (pure gate, retries: 0). After its escalation, os-sdlc-runner resume <t> --action retry raises Sequel::NotNullConstraintViolation (NOT NULL constraint failed: dispatches.agent) — the Resumer tries to create a dispatch for an agentless state instead of re-running the gate. Workaround used: --action skip after verifying the gate manually. Also noted in #403's review: the reviewer packet carried no programmer/lint evidence and gate-log.txt held a stale error — packet evidence assembly may deserve its own look.

Found during #403. The lint state has agent: null (pure gate, retries: 0). After its escalation, `os-sdlc-runner resume <t> --action retry` raises Sequel::NotNullConstraintViolation (NOT NULL constraint failed: dispatches.agent) — the Resumer tries to create a dispatch for an agentless state instead of re-running the gate. Workaround used: --action skip after verifying the gate manually. Also noted in #403's review: the reviewer packet carried no programmer/lint evidence and gate-log.txt held a stale error — packet evidence assembly may deserve its own look.
Author
Owner

Starting work on the agentless-state resume crash: Resumer#retry! will delegate to TicketFlow#emit_action (mirroring skip!), so :automated rows re-run their gate instead of creating a NULL-agent dispatch. The reviewer-packet evidence gap in this ticket is NOT addressed by this change.

Starting work on the agentless-state resume crash: Resumer#retry! will delegate to TicketFlow#emit_action (mirroring skip!), so :automated rows re-run their gate instead of creating a NULL-agent dispatch. The reviewer-packet evidence gap in this ticket is NOT addressed by this change.
Author
Owner

Resolution

Done: Fixed the resume --retry NOT NULL crash on agentless states: Resumer#retry! now delegates to TicketFlow#emit_action (ADR-0097); agentless retries re-run the gate, no dispatch row created; retry guidance note still delivered via TicketFlow note:.

Evidence: Commit 76e3c8e on main (3 files: resumer.rb, ticket_flow.rb, escalation_test.rb). Verified 2026-08-15: full os-sdlc suite 917 runs, 2253 assertions, 0 failures; rubocop clean on changed files; plugin cache refreshed.

Follow-ups: Reviewer-packet evidence gap split into #405.

## Resolution **Done:** Fixed the resume --retry NOT NULL crash on agentless states: Resumer#retry! now delegates to TicketFlow#emit_action (ADR-0097); agentless retries re-run the gate, no dispatch row created; retry guidance note still delivered via TicketFlow note:. **Evidence:** Commit 76e3c8e on main (3 files: resumer.rb, ticket_flow.rb, escalation_test.rb). Verified 2026-08-15: full os-sdlc suite 917 runs, 2253 assertions, 0 failures; rubocop clean on changed files; plugin cache refreshed. **Follow-ups:** Reviewer-packet evidence gap split into #405.
jared closed this issue 2026-08-15 16:17:29 +00:00
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#404
No description provided.