mirror of
https://github.com/paperclipai/paperclip.git
synced 2026-10-26 10:26:26 +01:00
Adds the operator-facing response contract the feedback delivery recovery UI needs. Delivery is state on the human comment, not a new task status: the projection reads the durable signals the earlier server recovery work already persist (feedback_delivery recovery actions plus queued replay wakes/runs) and keys them to the comment ids the obligation covers. - ISSUE_FEEDBACK_DELIVERY_STATES + IssueCommentFeedbackDelivery in shared, surfaced as an optional field on IssueComment. - Pure, unit-tested projection with deliberate precedence: an open obligation outranks an in-flight replay so the actionable banner (and its attention item) cannot disappear before delivery actually succeeds. - Failure detail is mapped through an operator-safe whitelist; unmapped codes collapse to null rather than echoing adapter text, paths, or credentials. - POST /issues/:id/feedback-delivery/retry gives the operator one explicit replay, keyed off its own idempotency namespace so it is not swallowed by the spent automatic generation keys. Co-Authored-By: Paperclip <noreply@paperclip.ing>