Der Agent meldete "gesprochen", sobald die TTS-Anfrage im Socket lag. Ob sie
ueberhaupt rausging, ob der Server antwortete oder ob ein einziger Ton kam,
hat nie jemand geprueft. Auf dem Fire TV blieb es damit still, waehrend ARIA
"erledigt" sagte — ein Fehler, der sich nicht melden kann.
Drei Ursachen:
- OkHttps send() WIRFT NICHT, sondern gibt false zurueck, wenn die Verbindung
zu ist. Der Rueckgabewert wurde verworfen: Senden ins Leere sah aus wie
Erfolg. send() gibt das jetzt durch, requestTts wirft bei abgelehntem Senden.
- Niemand wartete auf Audio. Neu: awaitSpeechStart() wartet, bis fuer diese
messageId wirklich Ton laeuft, sonst Fehler mit Grund.
- Warten darf NICHT im WS-Lese-Thread passieren: handle() laeuft dort, und das
erwartete audio_pcm kommt ueber genau diese Verbindung — wir haetten uns
selbst ausgehungert. speak/notify laufen jetzt in einem eigenen Thread und
schicken ihr host_result von dort.
Brain-seitig haben speak/notify 40s statt 20s Zeit, damit die ehrliche Antwort
(TTS-Render + Uebertragung) nicht in den Timeout laeuft.
APK baut durch (Gradle, nur die zwei bekannten Deprecation-Warnungen).
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>