mirror of
https://github.com/NousResearch/hermes-agent.git
synced 2026-04-28 06:51:16 +08:00
fix(tui): address Copilot review feedback on mutating command parity
Harden busy mode config reads against invalid display config shapes and align /fast help+usage text with accepted aliases, with regression coverage for non-dict display values.
This commit is contained in:
@@ -729,6 +729,16 @@ def test_config_get_statusbar_survives_non_dict_display(monkeypatch):
|
||||
assert resp["result"]["value"] == "top"
|
||||
|
||||
|
||||
def test_config_get_busy_survives_non_dict_display(monkeypatch):
|
||||
monkeypatch.setattr(server, "_load_cfg", lambda: {"display": "broken"})
|
||||
|
||||
resp = server.handle_request(
|
||||
{"id": "1", "method": "config.get", "params": {"key": "busy"}}
|
||||
)
|
||||
|
||||
assert resp["result"]["value"] == "interrupt"
|
||||
|
||||
|
||||
def test_config_set_statusbar_survives_non_dict_display(tmp_path, monkeypatch):
|
||||
import yaml
|
||||
|
||||
|
||||
@@ -252,11 +252,10 @@ class _SlashWorker:
|
||||
|
||||
|
||||
def _load_busy_input_mode() -> str:
|
||||
raw = (
|
||||
str((_load_cfg().get("display") or {}).get("busy_input_mode", "") or "")
|
||||
.strip()
|
||||
.lower()
|
||||
)
|
||||
display = _load_cfg().get("display")
|
||||
if not isinstance(display, dict):
|
||||
display = {}
|
||||
raw = str(display.get("busy_input_mode", "") or "").strip().lower()
|
||||
return raw if raw in {"queue", "steer", "interrupt"} else "interrupt"
|
||||
|
||||
|
||||
|
||||
@@ -307,14 +307,14 @@ export const sessionCommands: SlashCommand[] = [
|
||||
},
|
||||
|
||||
{
|
||||
help: 'toggle fast mode [normal|fast|status]',
|
||||
help: 'toggle fast mode [normal|fast|status|on|off|toggle]',
|
||||
name: 'fast',
|
||||
run: (arg, ctx) => {
|
||||
const mode = arg.trim().toLowerCase()
|
||||
const valid = new Set(['', 'status', 'normal', 'fast', 'on', 'off', 'toggle'])
|
||||
|
||||
if (!valid.has(mode)) {
|
||||
return ctx.transcript.sys('usage: /fast [normal|fast|status]')
|
||||
return ctx.transcript.sys('usage: /fast [normal|fast|status|on|off|toggle]')
|
||||
}
|
||||
|
||||
if (!mode || mode === 'status') {
|
||||
|
||||
Reference in New Issue
Block a user