Repository navigation
Rewrite the Common AI sandbox configuration page around what users set up - #75826
Merged
Merged
Conversation
The page now opens on what a SandboxToolset does by default and is organised by task: network access, packages, sizing and timeouts, credentials, getting a file out, sharing a sandbox between tasks, failures, and cleanup. Every quoted error and output block comes from a real run. It also corrects claims the old page got wrong: OpenSandbox, Boat and Islo refuse allow_egress_to_cidrs too, the run_command description does not name the working directory, and a run with exports that ends with no sandbox fails the task. The hand-kept parameter list is gone in favour of the API reference.
phanikumv
approved these changes
Oct 28, 2026
Lee-W
approved these changes
Oct 28, 2026
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.
The sandbox configuration page was hard to use. One paragraph covered five backends' network rules in a single 30-line run of clauses, the same explanations (the sandbox lifetime, the
durableand HITL refusals) appeared two or three times, and it quoted one-off measurements no reader could reproduce. It also had facts wrong.The rewrite is organised by what a user sets up: network access, packages, sizing and timeouts, credentials, getting a file out, sharing a sandbox between tasks, what happens on failure, and cleanup. Per-backend network behaviour is now one table, and other backend differences link to
backends.rstinstead of being repeated in each section. Every quoted error and output block comes from a run against the current code: the refusal messages from each backend, what the model sees from a real Modal sandbox (a failedpip install, a non-zero exit, a timeout), and the task logs of the export and attach examples run withairflow dags test.Corrections to what the old page said:
allow_egress_to_cidrs; the page said onlysbxand OpenShell do. Islo was not mentioned at all.run_commanddescription does not tell the model its working directory; it tells it to runpwd.exportsthat ends with no sandbox (it never called a tool, or a timeout deleted the sandbox) fails the task; it does not just export nothing.The hand-kept
SandboxToolsetparameter list is removed. The API reference renders the same parameters from the docstring, and the copy had already drifted (it was missingexports).In
backends.rst, thesbxsection now saysSandboxSpec.envis written to/etc/profile(moved from the configuration page), and an anchor was added for "What differs between the backends" so the configuration page can link to it.backends.rstandindex.rsthave the same problems as the old configuration page, and two wrong claims I left alone here to keep this diff reviewable:index.rststill says onlysbxand OpenShell refuseallow_egress_to_cidrs, and the "Command timeouts" bullet inbackends.rstsays a timeout destroys ansbxsandbox, whilesbxkills the command inside the sandbox and destroys it only when the CLI itself hangs. Those pages are a follow-up.