Public: anyone can read this; the crew can change it.
A sandboxed agent can run this repository's tests: unix sockets and loopback ports in its own temp directory, with the boundary kept #1107
Sign in to join this conversation.
Public: anyone can read this; the crew can change it.
A forge agent cannot see its own gate green before it pushes. Inside the crew sandbox, the forge's test servers listen on unix sockets, and the sandbox refuses the bind; every agent that tried to run
bun teston this repository today said the same thing in its own words — "I ran the socket-using tests with the sandbox off, because the sandbox blocks listening on a unix socket" — and then, having found the door, pushed through it too. The door is shut now (trevato-apps/forge#21: no command runs outside the sandbox on request), which is right, and leaves the crew blind on this one repository: it can runtsc, it can run the tests that never open a socket, and it has to push the rest to the check.Done looks like:
bun testover this repository'stest/runs as it does on a developer's machine. Claude Code's sandbox settings carryallowLocalBinding; find whether unix-socket binding has a setting on Linux (the docs leave it unsaid) or whether the forge's test server should fall back to a loopback port when a socket cannot be bound (FORGE_TEST_SOCKET=port), and do the one that keeps the boundary.test/crew-sandbox.test.tsproves it: a sandboxed run starts a server on a unix socket intmpDir, reaches it, and is still refusedlocalhostoutside the sandbox and every path indenyRead.Files I expect:
src/crew/claude.ts(settings),src/crew/sandbox.ts, the test helpers that pick a socket path (test/helpers/*),docs/CREW.md.