Confirmed problem
When a destination fails, the UI still renders its channel tab and a blank editor. The failure reason is mostly hidden in a temporary toast or collapsed notes, and there is no direct retry action.
Scope
- Persist per-channel statuses: queued, generating, revising, complete, needs_review, failed, and cancelled.
- Show the status directly on each channel tab.
- Replace blank failed editors with a recovery panel containing safe error details and Retry destination.
- Preserve all successful and edited channels during retry.
- Store retry count and latest failure class.
Acceptance criteria
Required verification
- Partial campaign fixture with success, needs_review, failed, and cancelled channels.
- Retry-one-channel integration test.
- Save/reopen status persistence test.
- Keyboard and screen-reader verification for status and recovery controls.
Confirmed problem
When a destination fails, the UI still renders its channel tab and a blank editor. The failure reason is mostly hidden in a temporary toast or collapsed notes, and there is no direct retry action.
Scope
Acceptance criteria
Required verification