os-sdlc recover 3/7: consistency check before re-emit #394

Closed
opened 2026-08-15 10:44:29 +00:00 by jared · 1 comment
Owner

Child of #332. Depends on 2/7. Verify pending dispatch agent/brief matches what the ticket's current state would dispatch (dispatch rows carry no originating state). Mismatch -> refuse with report, never emit.

Child of #332. Depends on 2/7. Verify pending dispatch agent/brief matches what the ticket's current state would dispatch (dispatch rows carry no originating state). Mismatch -> refuse with report, never emit.
Author
Owner

Resolution

Done: Added dispatch-state consistency check: RecoveryStatus now resolves via shared WedgeTarget; DispatchConsistency compares table.agent_for(current state) to pending row's agent; mismatch yields recovery_refused/dispatch_state_mismatch naming expected vs pending agent; consistent dispatch_summary carries consistent: true

Evidence: Commit eb061e9; tests/runner/recovery_status_test.rb mismatch tests; full suite 898 runs 0 failures; rubocop clean

Follow-ups: Re-emit (#395) relies on dispatch != nil && consistent as its trust signal

## Resolution **Done:** Added dispatch-state consistency check: RecoveryStatus now resolves via shared WedgeTarget; DispatchConsistency compares table.agent_for(current state) to pending row's agent; mismatch yields recovery_refused/dispatch_state_mismatch naming expected vs pending agent; consistent dispatch_summary carries consistent: true **Evidence:** Commit eb061e9; tests/runner/recovery_status_test.rb mismatch tests; full suite 898 runs 0 failures; rubocop clean **Follow-ups:** Re-emit (#395) relies on dispatch != nil && consistent as its trust signal
jared closed this issue 2026-08-15 11:06:14 +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#394
No description provided.