[Epic 2] Task Lifecycle Fixes #357
Copy link
Copy link
Closed
7 / 77 of 7 issues completedLabels
enhancementNew feature or requestNew feature or request
Description
Part of #355.
Fix the documented delegation races and add crash recovery. Each story is independent of Epics 3 and 4.
Stories
- Story 2.1 — Serialize
delegateParentAndOpenChildwithatomicReadAndUpdate✅ (PR fix(delegation): serialize delegateParentAndOpenChild with atomicReadAndUpdate #691) - Story 2.2 — Add
atomicUpdatePairand rewritereopenParentFromDelegation([Story 2.2] SerializereopenParentFromDelegationsteps 4–5 #365) - Story 2.3 — Task status transition guard and startup reconciliation ✅ (PR feat(task-lifecycle): task status transition guard and startup delegation reconciliation #692)
- Story 2.4 — Preserve parent–child link when delegated subtask is interrupted (fix(task-lifecycle): preserve parent-child link when delegated subtask is interrupted #560)
- Story 2.5 — Introduce
"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 (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.
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
enhancementNew feature or requestNew feature or request
Activity
reopenParentFromDelegationsteps 4–5 #365delegateParentAndOpenChildwithwithLock#364