A command runs to its end
POST /v2/sandboxes/{id}:exec (and /v1/sandboxes/{id}:exec, and the runtime_sandboxes_exec MCP tool) with no timeoutMs no longer stops the command after 60 seconds: it runs until it exits and returns its exit code and output. timeoutMs still sets a limit when you name one. Every SDK waits for the command to end when you name no limit, with no client timeout, and if the answer is cut while the command runs (for example by a release of the API), the SDK sends the request again with the same idempotency key and returns the same run's result, without running it twice.
Same day.
- Catalog MCP servers in a sandbox are withdrawnGET /v1/mcp/catalog and /v1/sandboxes/{id}/mcp return 404 route_not_found, with a message that says what to use instead.
- A paused sandbox wakes for its own timersA sandbox paused after its idle seconds wakes by itself shortly before the soonest timer of one of its processes is due: a sleep, a poll…
- Environment variables on createPOST /v2/sandboxes and POST /v1/sandboxes take env: up to 32 variables and 32,768 bytes of names and values, set for every command and pr…
- Resize a running sandboxPOST /v2/sandboxes/{id}:update takes vcpu, memoryGB and diskGB (and POST /v1/sandboxes/{id}:resize takes vcpu, memoryMiB and diskMiB).
- Run a sandbox as root with one settingPOST /v2/sandboxes and POST /v2/sandboxes/{id}:update take user: runtime (the default: uid 1000, with passwordless sudo) or root.
- Job secrets can be deleted, and their names reusedPOST /v1/secrets/{id}:delete deletes a job secret (with an optional expectedVersion), and GET /v1/secrets/{id} returns one.
- A fork makes all its copies or nonePOST /v2/sandboxes/{id}:fork with count is admitted as one start: when the copies together would pass one of your limits (running vCPU or…
- Network rules on createPOST /v2/sandboxes takes network (the same {default, rules} that PUT /v2/sandboxes/{id}/network takes), and POST /v1/sandboxes and the ru…