- Verrou half-duplex : pendant la génération LLM + la création TTS (avant le 1er
son), l'entrée est verrouillée (toggleListening/interruptTts ignorés) — un tap
micro ne casse plus la synthèse en cours. Déverrouillage au 1er son audible
(l'usager peut alors interrompre). Flag audiblePlayback.
- KazeiaService déclenche le pré-chauffage TTS (cv.warmup()) en tâche de fond
après le chargement.
- Métriques par étape : PipelineMetrics expose STT·Thinker·Speaker·TTS isolés ;
snapshot /turns enrichi (thinker_ms, tts_ms) ; sinks vers le panneau debug.
- Encart debug PERSISTANT « dernier tour » (remplace le graph GPU inutilisé) :
phrase input · réponse output · temps par étape, en partition ADDITIVE
Traitement (avant 1er son) / Lecture (durée parlée) dont la somme == TOTAL.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>