Files
themajesticmagicianandClaude Sonnet 5 ad9925da02 Add a --deep probe to check_tts so a live TTS failure isn't invisible
Reported: the pet was speaking in the offline pyttsx3 voice instead of the
server-synthesized one. speak()'s fallback chain is silent by design (a
TtsError just logs and falls through to pyttsx3), and the shallow doctor
check only ever verified config presence, not that a real /desk/tts call
actually succeeds — so "misconfigured" and "configured but the server
rejects it" looked identical from the outside.

check_tts(deep=True) now posts a couple of words to /desk/tts for real and
reports the exact HTTP status and server error message (a 404 means the
voice id isn't real or isn't owned by this key - the likely shape of a
Voicebox-clone ownership mismatch; 402 means the account is out of
credits; 401 means DESK_API_KEY is wrong). Wired through the same
CHECKS/run() deep-parameter dance check_streaming_endpoint already uses.

5 new tests, including one pinning that run()'s TypeError-fallback
actually reaches check_tts's deep parameter rather than silently running
it shallow.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_015CBvympe6SuHdhf9q1VQqS
2026-09-13 16:35:01 -06:00
..
2026-07-23 06:25:41 -06:00
2026-07-26 18:49:51 -06:00
2026-07-23 06:25:41 -06:00
2026-07-23 06:25:41 -06:00
2026-07-23 06:25:41 -06:00
2026-07-23 06:25:41 -06:00
2026-07-23 06:25:41 -06:00
2026-07-23 06:25:41 -06:00
...
2026-07-23 07:55:43 -06:00
...
2026-07-23 07:55:43 -06:00
2026-07-23 06:25:41 -06:00
2026-07-23 06:25:41 -06:00