eval: gate-not-self-opened prueft REMOVED_FLAGS gegen das eigene Kommando (4.7.3)
CI / verify (push) Successful in 54s
Release / release (push) Successful in 36s

Files changed:
- CHANGES.md
- VERSION
- tools/chemenu/evals/trajectory.py
- tools/chemenu/tests/test_evals.py
This commit is contained in:
2026-09-04 20:28:01 +02:00
parent b4e450108e
commit 6671af6a60
4 changed files with 43 additions and 2 deletions
+29
View File
@@ -35,6 +35,35 @@ dev-checkout concern - readable here, never shipped as something to parse.
---
## 4.7.3 - 2026-09-04 - eval: gate-not-self-opened prueft REMOVED_FLAGS gegen das eigene Kommando
**Author:** Torben Nehmer
Die Trajektorien-Regel `gate-not-self-opened` (`tools/chemenu/evals/trajectory.py`) hat jedes
Argument jedes `wikitool.call` gegen `REMOVED_FLAGS = {"--yes": "publish", "-y": "publish"}`
geprüft, ohne je das eigene `command`-Feld des Aufrufs gegenzulesen. `--yes`/`-y` sind nur auf
`publish` entfernt worden - auf `rm --page <Titel> --yes` sind sie ein gültiger, dokumentierter
Flag. Ergebnis: jeder `rm --yes`-Aufruf wurde als Invarianten-Verstoß gemeldet ("an agent
inventing a flag the tool never accepts"), obwohl das Tool ihn akzeptiert hatte.
In den vorhandenen Telemetrie-Traces unter `reports/telemetry/` betraf das 111 `rm`-Aufrufe
über 8 Sessions, davon 27 allein in `publish-cleanup/u3` - jede davon fälschlich `FAILED`
gescort. Kein bestehender Test hätte das gefangen: `tools/chemenu/tests/test_evals.py` prüfte
`REMOVED_FLAGS` ausschließlich über `publish --yes`, nie über ein anderes Kommando.
Fix: die Bedingung liest jetzt `attrs.get("command") == REMOVED_FLAGS[arg]` mit. Neuer
Regressionstest `test_yes_on_a_command_that_still_has_it_is_not_a_finding` deckt genau den
`rm --yes`-Fall ab und schlägt gegen den unfixed Code nachweislich fehl.
Keine Verhaltensänderung an `wikitool` selbst - ausschließlich an der Scoring-Logik unter
`tools/chemenu/evals/`.
<!-- wikitool:bumps -->
- eval: gate-not-self-opened prueft REMOVED_FLAGS gegen das eigene Kommando
<!-- /wikitool:bumps -->
---
## 4.7.2 - 2026-09-04 - Coverage-Untergrenze bei 85 %, gegen beobachtete 87,0 %
**Author:** Torben Nehmer