Approval-mode alias, legacy `allow` resolves to `off`
hermes · confidence high · status active
tags: fleet approvals config backwards-compatibility
Context
Older Hermes configs used approvals.mode=allow to mean "no approval required" (i.e. approvals
off). The current gateway enum no longer contains allow; parsing it caused failures for legacy
jobs. The live exec-approvals.json and jobs.json remain gateway-managed and must not be
hand-edited.
Decision
Add a parser alias in the Hermes approval-mode loader: allow → off. This is a
backwards-compatibility shim, not a policy change.
Why
- Keeps legacy cron jobs running without forcing a config migration.
- Avoids silently changing policy:
allowwas already the "no approval" intent. - Live approval state is still owned by the gateway rewrite layer.
Rollback
Remove the alias mapping in the approval-mode parser. Requires config audit to confirm no job still
uses approvals.mode=allow.
Verification
cron-approval-mode-alias-triagereported: "Patched Hermes approval mode parser so legacy approvals.mode=allow resolves to off; tests passed; gateway restart not performed."- No gateway restart means production load paths are not yet exercised; watch for runtime regressions after the next gateway restart.
Sources:
kg query 2026-07-10 cron-approval-mode-alias-triage · ~/.hermes/cron/jobs.json