hermes-agent/website/docs/user-guide
Rowland O'Connor ca076eef8a fix(approval): apply noninteractive_mode in the consolidated guard
Review found the knob had no effect on real terminal calls: terminal_tool
routes through check_all_command_guards, whose non-interactive early
return approves non-cron commands regardless of the setting. Only the
direct check_dangerous_command entry point was covered.

Applies the policy in the consolidated guard before that return, mirroring
the cron branch beside it — dangerous-pattern detection first, then the
tirith content check, including the tirith_fail_open handling so an
operator who opted into fail-closed is not silently allowed here either.

Also adds the two things the review asked for alongside it:

- approvals.noninteractive_mode in DEFAULT_CONFIG, so it participates in
  the documented deep-merge contract rather than existing only as a
  cfg_get default. New tests exercise the real config path (writing a
  config.yaml under HERMES_HOME) instead of mocking load_config, and
  assert sibling keys survive the merge.
- The key documented in website/docs/user-guide/configuration.md, which
  the first pass missed; security.md and the configuration reference in
  the skills tree were already updated.

Verified against a live install: with noninteractive_mode: deny and no
human present, `git reset --hard HEAD~3` now blocks through
check_all_command_guards where it was previously approved. A profile on
the default is unchanged. 24 tests in the new file, 105 across the
approval suite plus the config-contract tests.
2026-08-02 07:24:46 +01:00
..
egress Reapply "Merge pull request #30179 from NousResearch/feat/iron-proxy" 2026-07-24 09:49:00 -07:00
features docs(kanban): document profile-owned notification delivery in multi-gateway setups 2026-07-31 22:47:49 -07:00
messaging fix(deps): repair Google transitive security floors (#72108) 2026-07-31 23:18:38 -07:00
secrets docs: accuracy sweep + coverage for 2 months of shipped features 2026-07-29 08:48:05 -07:00
skills docs(skills): regenerate skills catalog; fix generator sentence truncation 2026-07-29 08:48:05 -07:00
_category_.json
…
checkpoints-and-rollback.md fix(checkpoints): never auto-delete orphans on unattended startup sweep 2026-07-24 16:01:06 -07:00
cli.md feat(cli): ! shell mode — run a command without spending a model turn 2026-07-31 21:21:20 -07:00
configuration.md fix(approval): apply noninteractive_mode in the consolidated guard 2026-08-02 07:24:46 +01:00
configuring-models.md docs: teach providers: dict as the canonical custom-provider format 2026-07-29 09:44:59 -07:00
desktop.md docs: document Hermes Relay and the desktop feature wave 2026-07-29 08:48:05 -07:00
docker.md fix(docker): update runtime tests and docs for the entrypoint dispatcher 2026-08-01 10:52:34 -07:00
git-worktrees.md
…
import-from-other-agents.md feat(cli): hermes import-agent — import Claude Code and Codex CLI setups 2026-07-26 17:47:07 -07:00
managed-scope.md
…
multi-profile-gateways.md fix(gateway): bind HTTP auth to routed profiles 2026-07-28 14:22:18 -07:00
profile-distributions.md
…
profiles.md
…
security.md feat(approval): add approvals.noninteractive_mode for headless contexts 2026-08-01 22:31:51 +01:00
sessions.md docs: fold in remaining live fixes from overnight-sweep PR cluster 2026-07-29 09:45:11 -07:00
tui.md
…
windows-native.md docs: accuracy sweep + coverage for 2 months of shipped features 2026-07-29 08:48:05 -07:00
windows-wsl-quickstart.md
…