mirror of
https://github.com/paperclipai/paperclip.git
synced 2026-10-25 09:41:04 +01:00
The review-participant recovery writer left the queued run's responsible user unresolved. Give this writer the same shape as the sibling immediate-recovery writer: the application layer resolves the responsible user before it calls the port, and it fails the recovery explicitly when no value resolves, instead of queuing an unowned run. - Build the review-participant context snapshot in the application layer, resolve the responsible user against it, and throw a WakeQueueApplicationError with code responsible_user_unresolved when the value does not resolve. - Require contextSnapshot and responsibleUserId on the queueReviewParticipantRecoveryRun port input. - Persist the caller-resolved value on the heartbeatRuns insert. The adapter still derives the two stage fields it alone can compute, and merges them onto the same context snapshot object the caller resolved against, so a marker the resolver stamped on that object survives onto the persisted row. - Remove the code comment that explained and accepted the null value; the writer no longer produces one. - Add focused tests: the resolve-before-queue order, the throw with no queue call, the same-object identity between the resolve call and the queue call, and the resolver's marker surviving the persisted row. Co-authored-by: Paperclip <noreply@paperclip.ing>