Files
PaperClipAI/doc/dependency-wake-recovery.md
T
8d9d2f9ddf fix(recovery): preserve deliberate stops and dependency waits
Preserve deliberate assignee blocks and operator stops during dependency and run-release recovery. Attribute native waits to their bound owner. Ignore unrelated edits and shared-workspace exports from another issue. Continue after genuine dependency changes while preserving independently authorized user input.

Keep the original contributor's implementation and review history. Add native ownership, unrelated-edit, later readiness, and shared-workspace regressions. The shared-workspace loop was reproduced before the fix.

Co-Authored-By: Devin Foley <devin@paperclip.ing>
Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-10-15 00:18:23 -07:00

1.2 KiB

Dependency wakes and deliberate stops

A task can remain blocked after all recorded dependencies finish. Its assignee may be waiting for an external action. Blocking its own task does not request another dependency wake. The periodic recovery sweep preserves this decision, including native status decisions attributed to the assignee's bound run.

Title, monitor, and other unrelated edits do not change this wait. A later assignment, status, or blocker-set update permits reconciliation again. A blocker that completes or finishes workspace export after the wait also permits a wake. The export must name the blocker issue. An export from the waiting task or an unattributed operation in the same shared workspace does not remove its wait. Normal readiness, duplicate-wake, interaction, pause, and execution gates still apply. A board transition into blocked keeps the existing recovery behavior.

Cancelling a run or pausing its agent suppresses immediate stranded-work recovery. A queued user message remains a separate continuation request. The release path still preserves independently authorized deferred input; stopping the old run does not discard that input or grant permission to replay its old tools.