TtsReader@9333480: distinguishes partial-render (yellow Warning, audio plays, 'Re-render N failed sentences' button) from full-fail (red Danger, 'Try render again'). New TtsFallbackChainFailedException carries both voices when Kokoro + Piper both fail; chapter breadcrumb names the entire chain instead of just the requested voice. +8 tests. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>