os-sdlc recover 5/7: compensating-transition rollback #396

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

Child of #332. Depends on 1/7. --rollback: void pending dispatch + record a forward compensating transition through TransitionApplier (keeps retry-counter resets and history consistent), one Sequel transaction. Handle initial-state stall (no transition row) explicitly.

Child of #332. Depends on 1/7. --rollback: void pending dispatch + record a forward compensating transition through TransitionApplier (keeps retry-counter resets and history consistent), one Sequel transaction. Handle initial-state stall (no transition row) explicitly.
Author
Owner

Resolution

Done: Compensating-transition rollback: Rollback collaborator voids pending dispatch (void! now guards on PENDING, returns boolean) and re-enters prior state through TransitionApplier via a one-edge CompensatingTable, one Sequel transaction; initial-state stall refuses with no_prior_state; shared WedgeTarget extracted for wedge resolution

Evidence: Commit c814fec; tests/runner/rollback_test.rb 11 cases; full suite green; rubocop clean

Follow-ups: CLI wiring in #397; decide whether rollback should deactivate an active escalation row (captured in #397 scope discussion or a new ticket if needed)

## Resolution **Done:** Compensating-transition rollback: Rollback collaborator voids pending dispatch (void! now guards on PENDING, returns boolean) and re-enters prior state through TransitionApplier via a one-edge CompensatingTable, one Sequel transaction; initial-state stall refuses with no_prior_state; shared WedgeTarget extracted for wedge resolution **Evidence:** Commit c814fec; tests/runner/rollback_test.rb 11 cases; full suite green; rubocop clean **Follow-ups:** CLI wiring in #397; decide whether rollback should deactivate an active escalation row (captured in #397 scope discussion or a new ticket if needed)
jared closed this issue 2026-08-15 11:06:15 +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#396
No description provided.