Repository navigation
feat(sandbox): run agents and checks in an OS sandbox - #29
Merged
Merged
Conversation
mike-diff
force-pushed
the
feat/run-sandbox
branch
from
September 29, 2026 01:25
2db2723 to
37f3246
Compare
mike-diff
force-pushed
the
feat/run-sandbox
branch
from
September 29, 2026 01:32
37f3246 to
dd054fa
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What this changes
Every agent run (groomer, worker, judge, reconciler,
harness test) and every checks run now runs in a fresh OS sandbox. ghafk runs as you again (ghafk start), with your installed harnesses and logins. The separate engine account is deprecated.--new-sessionand--disable-userns. On Ubuntu 24.04 with the userns restriction on, ghafk refuses to run agents and prints the one-time fix.sandbox-execwith a deny-by-default profile. The Keychain is denied, and the selected developer tools run directly sogitworks..git(read-only), a fresh home that is deleted afterwards, a per-repository cache, and the program folders of its harness and checks. Your home,~/.ssh, theghlogin, other repos, the session bus and the SSH agent are hidden.egress:(repo or machine) adds hosts, andlocal:(machine only) opens one port on this machine, for example a local model server.Secret guard
secrets-allow:exempts test fixture paths for key-format matches only.Also in this PR
.github/changes by an agent are held before any push (on top of fix(push): never push an agent change to .github #28).bind:,env:,egress:,local:(machine), andegress:,secrets-allow:(workflow).timeout:is capped at 720 minutes.Verification
go vet,gofmt,staticcheckclean on Linux and macOS. The full suite passes with 0 skips on Linux, and CI now installs bubblewrap so the sandbox tests run for real on Ubuntu and macOS.local:.