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.fix/verification-admin-route-recovery
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