Roast keeps accepted mail visible even when downstream steps fail.
State meanings:
received: Roast accepted the mail and stored the source artifacts.webhook_sent: Roast handed the normalized text and context pack to the content webhook.script_ready: the script exists and is waiting on local TTS.ready: audio is stored and the feed can serve it.failed: the item hit a terminal script, TTS, or policy problem.rejected_input: the message was too thin or empty to turn into an episode.
The inbox is the ledger. It is meant to explain where the item is, not hide the ugly parts.