Retire the recovery cluster and its test files #431
Labels
No labels
P0
P1
P2
P3
bug
create
delete
enhancement
filed-by/agent
filed-by/user
frozen
lint-rule
needs-info
needs-triage
next
plugin/cc-architect
plugin/os
plugin/os-adr
plugin/os-aidd-lint
plugin/os-backlog
plugin/os-context
plugin/os-doc-hygiene
plugin/os-sdlc
plugin/os-vault
project/cc-os
ready-for-agent
ready-for-human
recurring
review
update
waiting
wayfinder:grilling
wayfinder:map
wayfinder:map
wayfinder:research
wayfinder:task
wayfinder:task
wontfix
worklist/deviations
worklist/lint-rule
worklist/new-implement-build
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
jared/cc-os#431
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
#431 Retire the recovery cluster and its test files (open)
@jared created 2026-08-18 14:32
Parent
#425
Map: #425
What to build
Contract phase: with completion timestamps making stuck stored state
structurally impossible, delete the recovery machinery (resumer, rollback,
reemit, recovery-status, retry ledger) and the runner CLI recover command
surface, plus the test files covering async-guard and resume/recover paths.
The genuine human decision point — retry-with-guidance / skip / abort after
a failed gate — survives as routing on the surviving endpoints. Also retire
the tickets.state column machinery replaced by timestamp-derived state, if
not already removed by earlier tickets. Estimated net negative 200 to 600
LOC.
Acceptance criteria
[ ] recovery cluster deleted
[ ] remaining test suite green
[ ] retry-with-guidance/skip/abort still reachable and CLI-seam tested
[ ] no orphaned references verified with ast-grep
Blocked by
#430
Origin
• Trigger: /to-tickets skill on #425 spec
• Improvised this session: none
• Chain: #425 (DESIGN) ← decomposed via /to-tickets user approval 2026-08-18
• Root candidate: none (this is a decomposition task)
Resolution
Done: Recovery cluster deleted: rollback.rb, reemit.rb, recovery_status.rb, wedge_target.rb, dispatch_consistency.rb, their Engine methods, the recover Thor command + usage string, and 4 test files pinning recovery/async-guard paths — net -867 LOC. Human decision point survives untouched: resume TICKET --action retry|retry-with-guidance|skip|abort (Resumer never depended on deleted machinery), covered by existing CLI-seam tests. Two disclosed boundary calls: RetryLedger KEPT despite being named in the ticket cluster (GateFailureFlow uses it on every gate failure in the still-live legacy pipeline — deleting it breaks standing behavior); tickets.state retirement DEFERRED (pervasive in TicketFlow/GateFailureFlow/TransitionApplier/Resumer, outside the recovery cluster's blast radius per the ticket's own if-clause). bin/refresh-plugins run.
Evidence: commit
61aa3a3; suite 276 runs/594 assertions 0 failures (delta from 306/655 exactly the 4 deleted test files); ast-grep+grep orphan sweep empty for all deleted class names; rubocop clean on modified files; LOC delta exceeds the ticket's -200..-600 estimate (larger test files than estimated)Follow-ups: one, verdict: pre-existing scoped debt, already owned by later work — tickets.state → timestamp-derived retirement for the legacy ticket pipeline cascades into TicketFlow/TransitionTable and warrants its own ticket only if the legacy pipeline outlives the #425 rebuild; #433 assembly judges whether the legacy pipeline itself is stale code first, so no new ticket filed now (recorded in the map workbench)