mirror of
https://github.com/andrewyng/openworker.git
synced 2026-11-14 14:07:13 +00:00
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.