diff --git a/hermes_cli/doctor.py b/hermes_cli/doctor.py index 4b3ce3b7cf..ca0102d871 100644 --- a/hermes_cli/doctor.py +++ b/hermes_cli/doctor.py @@ -91,6 +91,15 @@ def _termux_browser_setup_steps(node_installed: bool) -> list[str]: return steps +def _termux_install_all_fallback_notes() -> list[str]: + return [ + "Termux install profile: use .[termux-all] for broad compatibility (installer default on Termux).", + "Matrix E2EE extra is excluded on Termux (python-olm currently fails to build).", + "Local faster-whisper extra is excluded on Termux (ctranslate2/av build path unavailable).", + "STT fallback: use Groq Whisper (set GROQ_API_KEY) or OpenAI Whisper (set VOICE_TOOLS_OPENAI_KEY).", + ] + + def _has_provider_env_config(content: str) -> bool: """Return True when ~/.hermes/.env contains provider auth/base URL settings.""" return any(key in content for key in _PROVIDER_ENV_HINTS) @@ -1084,6 +1093,11 @@ def run_doctor(args): except Exception: pass + if _is_termux(): + check_info("Termux compatibility fallbacks:") + for note in _termux_install_all_fallback_notes(): + check_info(note) + # ========================================================================= # Check: API connectivity # ========================================================================= diff --git a/tests/hermes_cli/test_doctor.py b/tests/hermes_cli/test_doctor.py index abf5f48585..34e75045ef 100644 --- a/tests/hermes_cli/test_doctor.py +++ b/tests/hermes_cli/test_doctor.py @@ -378,6 +378,11 @@ def test_run_doctor_termux_treats_docker_and_browser_warnings_as_expected(monkey assert "1) pkg install nodejs" in out assert "2) npm install -g agent-browser" in out assert "3) agent-browser install" in out + assert "Termux compatibility fallbacks:" in out + assert "use .[termux-all] for broad compatibility" in out + assert "Matrix E2EE extra is excluded on Termux" in out + assert "Local faster-whisper extra is excluded on Termux" in out + assert "STT fallback: use Groq Whisper (set GROQ_API_KEY) or OpenAI Whisper (set VOICE_TOOLS_OPENAI_KEY)." in out assert "docker not found (optional)" not in out