Files
openworker/docs
Devika Verma 126e210cec Settings > Sandbox: one switch, a readiness checklist, collapsible sub-settings, and a guided "Set up sandbox" (OPE-207)
The page listed "No sandbox", "macOS sandbox" and "OpenShell" as three equal radio
buttons (with "ready" next to no-sandbox, and "on this Mac" on every OS), and always
showed the network allow list and shared credentials even when they applied to nothing.
Choosing OpenShell did not say what the machine still needed; the user found out when a
session was refused.

Now:
- One switch, "Run agents in a sandbox". Off removes `sandbox_provider` from
  config.toml (it used to write "direct", which also disabled a headless machine's
  automatic-OpenShell rule); on picks Seatbelt on a Mac, OpenShell elsewhere, with a
  dropdown when both exist. On Windows the switch is disabled with the WSL hint.
- Under the switch, for OpenShell: a readiness checklist, the same rows `openworker
  machine sandbox status` prints, now with keys and whether the app may fix each one
  itself, plus two new rows: free disk space for the image (about 10 GB) and Landlock in
  the kernel (OpenShell refuses to start a sandbox without it). Each missing row shows
  the command to run, with Copy.
- "Set up sandbox" runs `SetupJob` on the machine's server: it fixes what the app may
  (bind-mount config and gateway restart, the config line, linger when no administrator
  is needed, the image download with per-layer progress and Cancel) and stops at a step
  that needs an administrator or an installer, showing the command; "Check again"
  continues. It never runs anything as root and never turns the sandbox off. A desktop
  notification says when the download is done.
- Network allow list and shared credentials are collapsible and shown only while the
  switch is on.

`setup_cmd` is refactored into `steps()` (rows with keys and fixability) and one
function per fix, used by both the terminal `setup` and the job, so there is one list
of checks. New endpoints: GET /v1/settings/sandbox/readiness, GET/POST
/v1/settings/sandbox/setup, POST /v1/settings/sandbox/setup/cancel.
2026-09-27 14:34:18 +05:30
..