9e5f1b619c
The continuous-voice no-speech counter (3 strikes -> voice off) counted every silent capture cycle unconditionally. During a long agent turn (thinking/tool-calling for minutes) or while TTS is speaking, the user is CORRECTLY silent — those cycles ended the voice chat under them. - hermes_cli/voice.py: new set_voice_busy_probe() seam + _voice_activity_held() (TTS-playing via the existing _tts_playing Event, agent-busy via the registered probe). Both the continuous-loop strike path and the force-transcribe single-shot strike path skip counting while held. Fail-open: a broken probe counts cycles as before. - tui_gateway/server.py: registers _any_session_running() as the probe on voice.record start (voice is process-global; any running session holds). - cli.py: classic CLI strike path skips counting while _agent_running or TTS playback is in flight. Stop phrase and barge-in still work during the hold (own paths). Includes a fixture fix for the #71083 cherry-pick: the fake tools.tts_tool module needs _load_tts_config (main's tts_streaming imports it).