Part of #355.
Fix the documented delegation races and add crash recovery. Each story is independent of Epics 3 and 4.
Stories
Dependencies
None — stories can be worked in parallel with Epic 1. Story 2.5 depends on Story 2.4 (2.4 is the minimal fix; 2.5 is the full state machine formalisation).
Notes
PR #692 partially addressed Story 2.2 using a sentinel approach (awaitingChildId kept as crash-recovery marker). The sentinel approach contradicts the tech brief's design decision (intent states rejected, see #355). Story 2.2 (#365) has been updated with the correct atomicUpdatePair design. The sentinel code from PR #692 should be reverted as part of that story.
Part of #355.
Fix the documented delegation races and add crash recovery. Each story is independent of Epics 3 and 4.
Stories
delegateParentAndOpenChildwithatomicReadAndUpdate✅ (PR fix(delegation): serialize delegateParentAndOpenChild with atomicReadAndUpdate #691)atomicUpdatePairand rewritereopenParentFromDelegation([Story 2.2] SerializereopenParentFromDelegationsteps 4–5 #365)"interrupted"status and explicit TaskStatus state machine (feat(task-lifecycle): introduce explicit TaskStatus state machine with "interrupted" history state #559)Dependencies
None — stories can be worked in parallel with Epic 1. Story 2.5 depends on Story 2.4 (2.4 is the minimal fix; 2.5 is the full state machine formalisation).
Notes
PR #692 partially addressed Story 2.2 using a sentinel approach (
awaitingChildIdkept as crash-recovery marker). The sentinel approach contradicts the tech brief's design decision (intent states rejected, see #355). Story 2.2 (#365) has been updated with the correctatomicUpdatePairdesign. The sentinel code from PR #692 should be reverted as part of that story.