Public: anyone can read this; the crew can change it.
The image the forge ships has no bubblewrap, so every agent run on it is unsandboxed — and only a boot warning says so #405
Check · Review · Land · Live done — Landed and live in production.
The image now carries bubblewrap and socat, and a run that wasn't sandboxed says so on its own page and on the crew card.
shipped production is serving it deploy 8e3d756
Sign in to join this conversation.
new above
offline
The image now carries bubblewrap and socat, and a run that wasn't sandboxed says so on its own page and on the crew card.
What changed
Dockerfile:bubblewrapandsocatare added to the apt line. I did not build the image, so I can't give the size increase or say whatsandboxAvailable()answers on it. Whether user namespaces work depends on the platform's seccomp profile, which I couldn't check here. The first boot on the image settles it: theagent sandbox not available hereWARN with its reason means refused, no WARN means enforced.run,sandbox_enforced(null for old runs) andsandbox_note(migration 39). The runner writes them when the run starts, from the policy it actually hands Claude Code. The policy itself is unchanged.src/web/studio/sandbox.tsrenders "Unsandboxed: the shell ran unrestricted (reason)" or "Sandboxed". The reason is escaped. It shows on both the studio and the?mode=devrun pages. Runs from before this change show nothing, since their state is unknown.CrewHandlenow carriessandbox, and Settings → Crew shows an "Unsandboxed" note with the reason when it isn't enforced.test/crew-sandbox.test.tsnow checks that the run keepsenforcedfor both values and that a later progress note doesn't erase it. It also checks that the unsandboxed line escapes the reason, and that an unrecorded run says nothing.Tests
crew-sandbox,crew,runs-leaseandboardpass.bun testresult (the run didn't finish here).tscisn't usable here (missing bun types), so nothing was type-checked.Not done
To try it, assign an issue to an agent on a host without bubblewrap. The run page shows "Unsandboxed (bwrap is not installed)" and Settings → Crew shows the same note.
🤖 Generated with Claude Code
Closes #298