diff --git a/hermes_cli/models.py b/hermes_cli/models.py index 93a5111c56..10b63cbbb4 100644 --- a/hermes_cli/models.py +++ b/hermes_cli/models.py @@ -1452,7 +1452,8 @@ def detect_static_provider_for_model( ) -> Optional[tuple[str, str]]: """Auto-detect a provider from static catalogs only. - Returns ``(provider_id, model_name)`` — the model name may be remapped + Returns ``(provider_id, model_name)``. The model name may be remapped + when a static alias or bare provider name resolves to a catalog default. Returns ``None`` when no confident match is found. """ name = (model_name or "").strip() diff --git a/tests/test_tui_gateway_server.py b/tests/test_tui_gateway_server.py index d4cdab8421..f7eacb6859 100644 --- a/tests/test_tui_gateway_server.py +++ b/tests/test_tui_gateway_server.py @@ -562,6 +562,8 @@ def test_config_set_model_syncs_tui_provider_env(monkeypatch): assert resp["result"]["value"] == "anthropic/claude-sonnet-4.6" assert os.environ["HERMES_TUI_PROVIDER"] == "anthropic" + assert os.environ["HERMES_MODEL"] == "anthropic/claude-sonnet-4.6" + assert os.environ["HERMES_INFERENCE_MODEL"] == "anthropic/claude-sonnet-4.6" finally: server._sessions.clear() diff --git a/tui_gateway/server.py b/tui_gateway/server.py index 7f981663a3..81a2a98e01 100644 --- a/tui_gateway/server.py +++ b/tui_gateway/server.py @@ -774,6 +774,7 @@ def _apply_model_switch(sid: str, session: dict, raw_input: str) -> dict: _emit("session.info", sid, _session_info(agent)) os.environ["HERMES_MODEL"] = result.new_model + os.environ["HERMES_INFERENCE_MODEL"] = result.new_model # Keep the process-level provider env var in sync with the user's explicit # choice so any ambient re-resolution (credential pool refresh, compressor # rebuild, aux clients) resolves to the new provider instead of the