Problem
Sends use a random UUID as idempotency key per call. If the network fails after Resend accepts but before the CLI records the result, a retry generates a new UUID and produces a duplicate send.
Proposal
- Add
outbox table: store send intent with a stable idempotency key before calling API
- Key derived from content hash (from + to + subject + body hash) so retries reuse the same key
- Resend honors idempotency keys for 24 hours
- Add
outbox list and outbox retry commands for manual recovery
- Offline sends write to outbox;
outbox flush sends when online
Priority: HIGH — data loss risk on unreliable networks
Problem
Sends use a random UUID as idempotency key per call. If the network fails after Resend accepts but before the CLI records the result, a retry generates a new UUID and produces a duplicate send.
Proposal
outboxtable: store send intent with a stable idempotency key before calling APIoutbox listandoutbox retrycommands for manual recoveryoutbox flushsends when onlinePriority: HIGH — data loss risk on unreliable networks