feat: complete local layer model v0.7 conformance work
Assistant: codex Assistant-Model: gpt-6-astra Assistant-Session: 01a06eaf-3425-7f92-a0c2-bb4aa4faebe4
This commit is contained in:
parent
89b117f640
commit
00145d705e
13 changed files with 279 additions and 27 deletions
|
|
@ -5,15 +5,15 @@ title: "ADR-0004 — High-risk lanes refuse raw value streaming to agent session
|
|||
domain: infotech
|
||||
repo: ops-warden
|
||||
status: accepted
|
||||
version: "1.0"
|
||||
revision: "1"
|
||||
version: "1.1"
|
||||
revision: "2"
|
||||
owner: ops-warden
|
||||
binds: "ops-warden; any agent runtime calling warden access"
|
||||
created: "2026-07-20"
|
||||
updated: "2026-08-18"
|
||||
last_reviewed: "2026-08-18"
|
||||
updated: "2026-09-04"
|
||||
last_reviewed: "2026-09-04"
|
||||
review_interval: 6m
|
||||
enforced_by: "src/warden/access.py (exit 7); OpenBao policy agent-high-risk-boundary"
|
||||
enforced_by: "src/warden/access.py + src/warden/cli.py (exit 7); OpenBao policy agent-high-risk-boundary"
|
||||
supersedes: ""
|
||||
successor: ""
|
||||
---
|
||||
|
|
@ -48,6 +48,13 @@ refuses to stream the raw value and exits 7.** The agent is not blocked from doi
|
|||
its work — `--out`, `--exec`, `--wrap` and `--fingerprint` all remain available.
|
||||
It is blocked from doing its work *in a way that writes the secret into a transcript*.
|
||||
|
||||
**Revision 2 also recognizes the issued coding-agent subject.** When
|
||||
`WARDEN_POLICY_SUBJECT` is the KeyCape-issued
|
||||
`service:codex:railiance-platform` identity, the same refusal applies without
|
||||
`WARDEN_AGENT_ID`. The legacy variable remains a fail-toward-safety fallback.
|
||||
Ops-warden reads this identity marker; it does not validate the token or decide
|
||||
whether the principal is authorized.
|
||||
|
||||
**The boundary is enforced at the credential store as well as at the CLI.** The
|
||||
OpenBao policy `agent-high-risk-boundary` denies data-read on those paths for agent
|
||||
tokens, allowing metadata and capabilities only. A control that lives solely in our
|
||||
|
|
@ -73,10 +80,12 @@ retry correctly. Changing it is a breaking change to every agent runtime.
|
|||
**`risk: high` becomes a load-bearing catalog field** rather than documentation.
|
||||
Classifying a lane now changes runtime behaviour, so it must be set deliberately.
|
||||
|
||||
**We accept that `--unsafe-stdout` still exists for humans.** The boundary keys on
|
||||
`WARDEN_AGENT_ID`, so an agent that does not set it is not caught. That is a known
|
||||
limit: this ADR raises the floor for cooperating runtimes and hardens the store
|
||||
behind them; it does not claim to stop a determined caller.
|
||||
**We accept that `--unsafe-stdout` still exists for humans.** The CLI recognizes the
|
||||
issued subject when the runtime presents it and otherwise relies on
|
||||
`WARDEN_AGENT_ID`; both markers remain caller-visible and therefore advisory. This
|
||||
ADR raises the floor for cooperating runtimes and hardens the store behind them; it
|
||||
does not claim to stop a determined caller. The OpenBao
|
||||
`agent-high-risk-boundary` policy is the enforced control.
|
||||
|
||||
## Related
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue