From de057fe24f3c6e50709b8d4c8d38b2f3c9010512 Mon Sep 17 00:00:00 2001 From: Zehua Wang Date: Sun, 7 Jun 2026 21:15:50 -0400 Subject: [PATCH] fix(stt): check_voice_requirements() should recognize all STT providers MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The /voice status command only checked for 'local', 'groq', and 'openai' providers. Any other valid provider (local_command, mistral, xai, elevenlabs, or custom command providers) fell through to the generic MISSING message — even when transcription worked perfectly. - Import _has_any_command_stt_provider (already defined, never imported) - Add elif branches for local_command, mistral, xai, elevenlabs - Add generic catch-all via _has_any_command_stt_provider() for arbitrary custom command providers --- tools/voice_mode.py | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/tools/voice_mode.py b/tools/voice_mode.py index 6f8b22bd520..822eb6f35cd 100644 --- a/tools/voice_mode.py +++ b/tools/voice_mode.py @@ -1277,7 +1277,7 @@ def check_voice_requirements() -> Dict[str, Any]: ``missing_packages``, and ``details``. """ # Determine STT provider availability - from tools.transcription_tools import _get_provider, _load_stt_config, is_stt_enabled + from tools.transcription_tools import _get_provider, _has_any_command_stt_provider, _load_stt_config, is_stt_enabled stt_config = _load_stt_config() stt_enabled = is_stt_enabled(stt_config) stt_provider = _get_provider(stt_config) @@ -1307,10 +1307,20 @@ def check_voice_requirements() -> Dict[str, Any]: details_parts.append("STT provider: DISABLED in config (stt.enabled: false)") elif stt_provider == "local": details_parts.append("STT provider: OK (local faster-whisper)") + elif stt_provider == "local_command": + details_parts.append("STT provider: OK (local command)") elif stt_provider == "groq": details_parts.append("STT provider: OK (Groq)") elif stt_provider == "openai": details_parts.append("STT provider: OK (OpenAI)") + elif stt_provider == "mistral": + details_parts.append("STT provider: OK (Mistral Voxtral)") + elif stt_provider == "xai": + details_parts.append("STT provider: OK (xAI Grok STT)") + elif stt_provider == "elevenlabs": + details_parts.append("STT provider: OK (ElevenLabs Scribe)") + elif _has_any_command_stt_provider(stt_config): + details_parts.append(f"STT provider: OK ({stt_provider})") else: details_parts.append( "STT provider: MISSING (uv pip install faster-whisper — "