supervise: daemon robustness edges — retry bound across re-attach, lock-reclaim TOCTOU, stall blind spots #255
Labels
No labels
component:adapters
component:lifecycle
component:qa
component:setup
component:shared
component:worktrees
phase/accepted
phase/backlog
phase/deployed
phase/developing
phase/integrating
phase/planning
phase/qa
phase/requirements
phase/uat
priority:critical
priority:critical
priority:high
priority:high
priority:low
priority:low
priority:medium
priority:medium
type:bug
type:chore
type:docs
type:feature
type:infra
type:tech-debt
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
jbr870/devwork-skills#255
Loading…
Add table
Add a link
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?
Spawned from finding
F-PO-46-4-21(in-scope-deferrable) on issue #46 during decision D-PO-46-4-19.Also collects the folded findings F-PO-46-4-22 (stale-lock reclaim TOCTOU) and F-PO-46-4-24 (stall-detection blind spots) from the same QA round — three robustness edges of the supervise daemon that each need a designed fix plus its own test scenario, not a point patch.
Original scope note (CR-21): the per-incident retry bound does not survive a daemon crash: supervisor-watch.sh hard-initializes the incident counters and supervisor-attach.sh always writes
incident{attempt:0}, so a re-attach against the same still-resumable tail (same uuid — by the SREQ's own incident identity, the SAME incident) restarts the bound at 0 and duplicates alert-dedup state. The state file already persists the counters precisely so they could be restored.Disposition rationale: each fix is substantial (state-restore contract on reclaim; holder-identity-aware lock reclaim; stall-clock design for no-assistant/empty-transcript windows) and the risks are bounded and rare — deferred out of #46's QA round rather than grown into it.
This issue was deferred out of the parent feature's scope; it carries no PREQ yet. Run
/dev:requirements --issue={new-number}to flesh it out before planning.