You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Kit installs are now restricted to an allowlist of sources, defaulting to Docker Hub only — a **breaking change** if you install kits from a Git URL or another registry.
27
+
28
+
This release also renames `sbx policy set-default` to `sbx policy init`, restores published ports when a sandbox restarts, fixes a number of bugs, and adds two experimental previews: a native SSH endpoint and an `sbx setup` command for smoother first-time onboarding.
29
+
30
+
### What's New
31
+
32
+
#### SSH
33
+
34
+
- Add an experimental native SSH endpoint in sandboxd: connect with `ssh <sandbox-name>@127.0.0.1 -p 2222` (publickey auth, connect-to-create, interactive shell and exec; no SFTP yet). Enable with `sbx settings set feature.ssh true`.
35
+
36
+
#### Setup & Onboarding
37
+
38
+
- Add an experimental `sbx setup` command that imports agent credentials from environment variables.
39
+
40
+
#### Agents
41
+
42
+
- Cursor sandboxes no longer show the workspace trust prompt on launch.
43
+
44
+
#### Kits
45
+
46
+
- Add OCI v2 kit artifact streaming that decompresses the layer once to a cache directory and uses seek-based random access, so file content is not held in memory between reads.
47
+
- Restrict kit installs to an allowlist of sources, defaulting to Docker Hub (`docker.io/`) only.
48
+
49
+
**Breaking:** installing a kit from another registry or a Git URL fails until you add its prefix with `sbx settings set kit.allowedSources`. See [Docs: Restrict kit sources](https://docs.docker.com/ai/sandboxes/customize/kits#restrict-kit-sources) for details.
50
+
51
+
#### CLI & Behavior Changes
52
+
53
+
- Rename `sbx policy set-default` to `sbx policy init`; the old name keeps working as a hidden, deprecated alias.
54
+
- Published sandbox ports are restored on restart, and the CLI/TUI can recover explicit host-port conflicts by choosing a new host port.
55
+
56
+
#### Bug Fixes
57
+
58
+
- Fix a daemon hang where a slow or stuck sandbox creation/deletion blocked `sbx ls`, the TUI, and new sessions until the daemon was restarted.
59
+
- Fix a kit mixin regression where adding `network.serviceDomains` for a service already provided by the base agent failed with a "credential … defined in both" error.
60
+
- Reject `+` in sandbox names with a clear validation error instead of panicking.
61
+
- Fix the interactive host-port conflict recovery prompt not appearing on Windows when restarting a sandbox whose published port is already in use.
62
+
18
63
## 0.33.0
19
64
20
65
{{< release-date date="2026-06-17" >}}
@@ -134,124 +179,6 @@ This release also improves network isolation and policy enforcement. Sandbox DNS
134
179
- Stop counting expected `rm`/`stop`/list-ports "not found" 404s as analytics failures, so routine existence checks no longer inflate error dashboards.
135
180
- Require a daemon restart (instead of failing with `405 Method Not Allowed`) when downgrading the CLI below a newer running daemon.
This patch release resolves two reliability issues. It **fixes a Windows issue** where odd default sandbox memory values could lead to startup timeouts. It also includes a **daemon-compatibility fix** that prevents a silent failure (`405 Method Not Allowed`) when the `sbx` CLI is downgraded while a newer `sandboxd` daemon is still running — the CLI now requires a daemon restart instead.
162
-
163
-
### What's New
164
-
165
-
#### Bug Fixes
166
-
167
-
- Fix a Windows issue where odd default sandbox memory values could lead to startup timeouts.
168
-
- Require a daemon restart when downgrading the CLI below a running daemon, instead of silently proceeding into a `405 Method Not Allowed` error.
- Fixes a bug introduced in v0.31.0 where sandboxes from earlier versions were not listed by sbx ls and could fail to run. Upgrading to v0.31.1 restores them.
The `--branch` flag has been removed in favor of `--clone` (clone mode). Using `--branch` now fails with:
191
-
192
-
```console
193
-
$ sbx run claude --branch foo
194
-
ERROR: --branch is no longer supported; use --clone instead
195
-
```
196
-
197
-
Clone mode does not create a branch or worktree on your behalf — instead of a host-side worktree, the sandbox now runs against an in-container read-only clone.
198
-
199
-
- Your source repository is mounted into the sandbox read-only, and the shallow clone sets that mount as a Git remote. The agent only ever writes to the in-container clone, never to your working tree or .git/
200
-
- The clone lives on the sandbox's filesystem and is exposed back to the host as a `sandbox-<name>` Git remote served by `git-daemon` (no more `.sbx/<name>-worktrees/...` on the host).
201
-
- Forge remotes (`origin`, `upstream`, etc.) on the host are propagated into the in-container clone, so the agent can `git push origin` directly, the same way you would. Local-path remotes are skipped.
202
-
- Fetched sandbox refs are mirrored into `refs/sandboxes/<name>/*` on the host and persist after the sandbox is removed. Restore a branch from a removed sandbox with `git branch <local-name> refs/sandboxes/<name>/<branch>`. Commits that were never fetched, or uncommitted changes, are still lost on `sbx rm`.
203
-
- The `sandbox-<name>` remote is added to your host on `sbx create --clone` / `sbx run --clone` and removed on `sbx rm`, including across stop and restart.
204
-
205
-
### What's New
206
-
207
-
#### CLI
208
-
209
-
-`sbx create` auto-starts the daemon when it isn't already running.
210
-
-`sbx logout` now stops the daemon and running sandboxes.
211
-
- Unify terminal environment variables across `sbx run` and `sbx exec`.
212
-
213
-
#### Policies
214
-
215
-
- Show policy and rule names in CLI list output and TUI details.
216
-
- Add filters to the policies listing.
217
-
218
-
#### Kits
219
-
220
-
- Mark kits as experimental.
221
-
- Verbose error reporting for kit apply failures.
222
-
223
-
#### Sandboxes
224
-
225
-
- Opt a sandbox into virtiofs caching at create time via `DOCKER_SANDBOXES_ENABLE_VIRTIOFS_CACHE=1` (off by default; the choice is persisted in the spec and survives daemon restarts).
226
-
227
-
#### Networking
228
-
229
-
- Allow public-CA CRL/OCSP/AIA endpoints in the balanced proxy preset. Applies to new installations or after `sbx policy reset` (which removes any user-added rules).
- Store container-registry pull credentials with `sbx secret set --registry`, so `sbx run --template` and `sbx run --kit` can pull from private registries (GHCR, ACR, ECR, Quay, …) without a `docker login`. Manage entries with `sbx secret ls` and remove them with `sbx secret rm --registry <host>`.
238
-
239
-
> [!WARNING]
240
-
> By default the credential is stored **host-side only** and is used just for pulling templates/kits. It is never placed inside a sandbox. If you pass `-g` (or scope it to a sandbox name), the credential is **injected into the sandbox in plaintext**, where the agent and any code running there can read it. Only use `-g`/sandbox scope when the sandbox itself needs to pull from the registry; otherwise omit `-g` to keep it host-only.
241
-
242
-
#### Bug Fixes
243
-
244
-
- Sort `template ls` output by repository, then tag.
245
-
- Retry `ExecResize` to keep the agent TUI in sync.
246
-
- Set `TERM=xterm-256color` when exec'ing with `-t`.
247
-
- Move the state directory symlink from `/tmp` to `~/.sbx/run/`.
248
-
- Stop `storageRootsGone` from locking the storagekit singleton.
249
-
- Use `engineError` and add retry debug logging in sandboxd.
250
-
- Retry transient shim start closures.
251
-
- Make Cursor session bootstrap proxy-local.
252
-
- Add bracketed `[::1]` to `NO_PROXY` for IPv6 loopback.
253
-
- Backdate proxy CA `NotBefore` to match the goproxy leaf cert window.
0 commit comments