Campaign responder drafts now use a DB-level unique index to prevent concurrent runs from creating duplicate drafts.
- Accept is now claim-safe: two simultaneous operator clicks cannot produce duplicate outbound messages.
- Dispatch failures attempt a rollback so operators can retry a draft without manual DB intervention.
- Reject writes reviewer, timestamp, and reason through a single canonical adapter.