# NousResearch/hermes-agent · Guard config.yaml mutations from execute_code tool

## Open now

- 0 issues, 3 PRs open on GitHub.
- PR #113450: fix(tools): fail loudly when execute_code rewrites the protected config
- PR #113458: fix(approval): detect runtime config mutations safely
- PR #113459: fix(tools): execute_code fails loudly when the cell mutates config.yaml (#113421)

These issues and PRs address a bug where execute_code could silently mutate the protected config.yaml, bypassing the write guard enforced by other tools like write_file and patch. The work focuses on detecting and loudly failing on such runtime config mutations.

## TL;DR

- 4 member(s): 0 open issue(s), 1 closed issue(s), 3 open PR(s), 0 merged PR(s), 0 PR(s) closed without merging.
- No fix has been merged to main; one or more PRs were attempted (see below).
- **Recommended:** review the prior/competing PR(s) below. A fix was attempted but not merged; your case may extend or revive that work.

## Maintainer resolution verdict

- Internal-tracker verdict over this cluster's issue members: `unresolved`. This is distinct from the fix status above. Weigh it yourself.

## How this cluster was grouped

- Link evidence (`STRUCTURAL_SPANNING`): every member is connected by structural evidence: shared changed files, or a closing/superseded reference.
- Pairwise link density `0.50`: the share of member pairs that carry a link, counting a structural link in full and a relevance-only link at 0.36. `1.00` means every pair is linked.

## Closed / duplicate issues

- #113421: \[Bug\]: execute_code bypasses the config.yaml write guard that write_file/patch enforce

## Prior & competing PRs

- **#113450: fix(tools): fail loudly when execute_code rewrites the protected config**. open
  - maintainer direction: category `silent_close`; implication `active`
  - files: `tests/tools/test_execute_code_config_guard.py`, `tools/code_execution_tool.py`
- **#113458: fix(approval): detect runtime config mutations safely**. open
  - maintainer direction: category `superseded_by_pr`; implication `superseded`; refs `292803c3058bef7658020e73c56cf605051865dc`, `4716ec0ba4e212105f8f162c226f052b25f8a76b`, `5910de20bc9839fdd36e791a9d72ba2c2e722f66`, `3e3e04cce36d51b270bb094a784799b3c3c7e2ac`, `#113421`, `#113459`, `#49578`, `#65592`, `#113450`, `#113458`
  - files: `tests/tools/test_execution_config_write_guard.py`, `tools/code_execution_tool.py`, `tools/security_config_guard.py`, `tools/terminal_tool.py`
- **#113459: fix(tools): execute_code fails loudly when the cell mutates config.yaml (#113421)**. open
  - maintainer direction: category `duplicate_of`; implication `duplicate`; refs `#113450`, `#113421`, `#113458`
  - files: `tests/tools/test_execute_code_config_guard.py`, `tools/code_execution_tool.py`, `tools/file_tools_write_guards.py`

## Fix status

- No merged fix on record.
- Subsystem: `agent`
