Skip to content

Commit dbe8702

Browse files
PhysShellclaude
andcommitted
docs(sandboy): sandbox_policy must fail closed, matching 007 loop-canvas
Keep the two sides of the contract consistent: the 007-side bullet framed `sandbox_policy` as plain "forward-compatible", but 007/docs/loop-canvas.md now requires it to fail closed (schema bump) since silent unknown-field tolerance fails open on a security control. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01VNgUjrvwqwtXqe8URbJaQN
1 parent 7f89d54 commit dbe8702

1 file changed

Lines changed: 7 additions & 2 deletions

File tree

sandboy/README.md

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -104,8 +104,13 @@ step), is in `007/docs/loop-canvas.md`. Two hooks make that real, and **neither
104104
exists yet** — both are Floor-1 work, not current behaviour:
105105

106106
- **007 side — `sandbox_policy` on `GateStep`.** A per-step policy path so the
107-
gate runner knows to wrap the step. Forward-compatible with the current
108-
manifest parser (unknown fields are tolerated), but **not yet added**.
107+
gate runner knows to wrap the step. **Not yet added.** The manifest parser
108+
tolerates unknown fields, but this is a **security control**, so it must
109+
**fail closed** when it lands: a manifest `schema` bump (or explicit presence
110+
check) so an older `o7` that can't enforce a `sandbox_policy` **refuses the
111+
step** rather than silently running it bare under `bypassPermissions`. Relying
112+
on unknown-field tolerance here would fail *open*. See
113+
`007/docs/loop-canvas.md`.
109114
- **sandboy side — `--report <json>`.** A flag emitting enforcement status /
110115
exit code / duration, the machine-readable evidence the Observability field
111116
asks for. **Not implemented today:** `parse_args` (`src/main.rs`) accepts only

0 commit comments

Comments
 (0)