hermes(chat): enforce HUX tool policy on the canary

Park/resume and gateway-owned stop receipts passed the live gates, so
HUX_TOOL_ENFORCEMENT=1 ships to ordinal 3 (partition unchanged). Every
canary tool call now requires a HUX release; the fleet stays observe-off
until the approvals UX proves out under real traffic.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BvMSXH8VH2tMWXanb8SJdf
This commit is contained in:
jenkins 2026-08-24 06:21:06 -03:00
parent f2f54033a2
commit 4a6d4fdf0d
2 changed files with 19 additions and 1 deletions

View File

@ -412,3 +412,21 @@ under If-Match and read back by worker trust; suggestion shown for the real
after_artifact context, explicit clicked dismissal recorded, re-show
suppressed, suppression state durable. Next: hux.autonomy (+ multimodal
unlock) on the canary, enforcement still 0.
## Autonomy-wave live gates (2026-08-24 ~09:30 UTC) — PASS 15/15
Canary at f2f54033 flags. Live on the canary loopback: HUX-05 park ->
human-only approval (worker 403) -> gate releases exactly once -> consumed on
the second ask; denial stays denied; browser cannot write stop receipts;
gateway receipts are honest (process_registry_empty=false ->
failed_to_cancel, superseded by a true empty-registry cancellation). HUX-07
unlocked by the dependency chain and media registration required a REAL
approved artifact_write action before accepting upload metadata.
ENFORCEMENT: park/resume and gateway-owned receipts passed live, so
HUX_TOOL_ENFORCEMENT=1 ships to the canary (partition still 3; ordinals 0-2
remain untouched). Tenant-3 tool calls now require HUX release for real.
Remaining: real-traffic validation of the approvals UX on tenant-3, then
partition 3 -> 0 to take flags+enforcement fleet-wide; HUX-12 needs the
Vault evidence key (runbook above); Worker integration separate.

View File

@ -446,7 +446,7 @@ spec:
- {name: HUX_RUNTIME_ENABLED, value: "1"}
# First rollout is observe-only until approval parking/resume is
# connected to the upstream tool loop and proven live.
- {name: HUX_TOOL_ENFORCEMENT, value: "0"}
- {name: HUX_TOOL_ENFORCEMENT, value: "1"}
- {name: HUX_WORKER_KEY_FILE, value: /run/hermes-hux-worker/worker-key}
- {name: HUX_SUBJECT_FILE, value: /run/hermes-hux-subject/subject}
- {name: HUX_CONTEXT_KEY_FILE, value: /run/hermes-hux-context/context-key}