Skip to content

feat(sandbox-lint): accept only allowlisted sandbox exclusions - #1695

Merged
potiuk merged 1 commit into
apache:mainfrom
potiuk:feat/sandbox-lint-exclusion-allowlist
Oct 18, 2026
Merged

potiuk merged 1 commit into
apache:mainfrom
potiuk:feat/sandbox-lint-exclusion-allowlist

Conversation

@potiuk

@potiuk potiuk commented Oct 17, 2026

Copy link
Copy Markdown
Member

An excluded command runs outside the sandbox. The runs-anything check (#1693) recognises shapes of commands that run their arguments, and that can never be complete: find -exec, git -c, make, docker and many more all pass it. Exclusions are few and named by the framework, so sandbox-lint now accepts an excludedCommands entry, in any layer, only when it is on an allowlist or narrows an entry on it.

  • EXCLUDED_COMMAND_ALLOWLIST: gh *, roborev *, the four vetted-ops forms, the adversarial-review runner and ~/.claude/scripts/magpie-run-evals.sh *. A narrowing such as gh auth * or bare gh, and the legacy cmd:* spelling, also pass.
  • A project that needs another exclusion lists it, one per line, in .apache-magpie-overrides/sandbox-lint/excluded-commands.txt. Those entries still have to pass the runs-anything check, so a project cannot allow a shell or an unpinned runner this way. An unreadable file is reported, not a crash.
  • Bash(...) allow rules keep the shape check only: approving a tool such as zizmor * without a prompt is legitimate.
  • README invariants and residual risk, and the agent-isolation spec, describe the allowlist.

Compatibility: an adopter's existing exclusion that is not on the list now fails the lint until it is added to the project's extension file after review.

🤖 Generated with Claude Code

An excluded command runs outside the sandbox, and recognising the shapes of
commands that run their arguments can never be complete (find -exec, git -c,
make, docker). Exclusions are few and named by the framework, so accept only
those, or a narrowing of one, plus whatever a project lists in its overrides
after review.

Generated-by: Claude Opus 5
@github-actions github-actions Bot added family:tools tools/* family:docs Docs, MISSION.md, READMEs substrate:sandbox Tool substrate: agent isolation, egress control, settings audit labels Oct 17, 2026
@potiuk
potiuk merged commit c9f34cc into apache:main Oct 18, 2026
11 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

family:docs Docs, MISSION.md, READMEs family:tools tools/* substrate:sandbox Tool substrate: agent isolation, egress control, settings audit

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant