fix(tui): tighten fast-mode support validation
Distinguish missing model from unsupported model before enabling fast mode and cover both cases so config and live agent state remain untouched on invalid fast toggles.
This commit is contained in:
parent
4a08f1015a
commit
4f59510dd4
@ -781,6 +781,36 @@ def test_config_set_fast_rejects_unsupported_model(monkeypatch):
|
||||
server._sessions.pop("sid", None)
|
||||
|
||||
|
||||
def test_config_set_fast_rejects_missing_model(monkeypatch):
|
||||
writes = []
|
||||
agent = types.SimpleNamespace(
|
||||
model="",
|
||||
request_overrides={},
|
||||
service_tier=None,
|
||||
)
|
||||
server._sessions["sid"] = _session(agent=agent)
|
||||
|
||||
monkeypatch.setattr(
|
||||
server, "_write_config_key", lambda path, value: writes.append((path, value))
|
||||
)
|
||||
|
||||
try:
|
||||
resp = server.handle_request(
|
||||
{
|
||||
"id": "1",
|
||||
"method": "config.set",
|
||||
"params": {"session_id": "sid", "key": "fast", "value": "fast"},
|
||||
}
|
||||
)
|
||||
assert resp["error"]["code"] == 4002
|
||||
assert "without a selected model" in resp["error"]["message"]
|
||||
assert agent.service_tier is None
|
||||
assert agent.request_overrides == {}
|
||||
assert writes == []
|
||||
finally:
|
||||
server._sessions.pop("sid", None)
|
||||
|
||||
|
||||
def test_config_busy_get_and_set(monkeypatch):
|
||||
writes = []
|
||||
|
||||
|
||||
@ -2905,9 +2905,17 @@ def _(rid, params: dict) -> dict:
|
||||
if nv == "fast":
|
||||
from hermes_cli.models import resolve_fast_mode_overrides
|
||||
|
||||
target_model = getattr(agent, "model", None) if agent is not None else _resolve_model()
|
||||
target_model = (
|
||||
getattr(agent, "model", None) if agent is not None else _resolve_model()
|
||||
)
|
||||
if not target_model:
|
||||
return _err(
|
||||
rid,
|
||||
4002,
|
||||
"fast mode is not available without a selected model",
|
||||
)
|
||||
overrides = resolve_fast_mode_overrides(target_model)
|
||||
if not overrides:
|
||||
if overrides is None:
|
||||
return _err(
|
||||
rid,
|
||||
4002,
|
||||
|
||||
Loading…
Reference in New Issue
Block a user