Files
PaperClipAI/server
DottaandPaperclip 8c5db890e0 fix(server): add a stranded in-review feedback recovery backstop
Periodic reconciliation used to skip every `in_review` issue without a typed
execution participant, so review feedback whose only remaining path was a
pre-launch-failed comment run stayed silently stranded.

Adds a narrow backstop for exactly that shape: agent-assigned `in_review`, no
typed participant, interaction, approval, monitor, user owner, active run, or
queued wake, and a failed latest run that carried user feedback context. It
requeues one bounded normal-model replay for the original assignee, or opens one
explicit recovery action naming the owner and next action once replay is
exhausted or the assignee is no longer invokable.

Dedupe against the immediate terminalization lane is structural: both lanes now
derive the fingerprint, replay wake idempotency key, recovery-action kind/cause,
and activity keys from one shared module, so a second parallel delivery lane
cannot be opened even if the two lanes race.

Legitimate waits stay untouched: pending Board confirmations, approvals,
monitors and blockers, human-owned reviews, typed review participants, pause
holds, paused/budget-gated assignees, system-originated wakes, and terminal
issues. Exhausted delivery is still recorded for a held assignee because the
recovery action carries a `manual_repair_required` wake policy and wakes nobody.

Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-08-16 19:23:56 +00:00
..
2026-03-12 13:09:22 -05:00