Skip to content

Commit 57303ed

Browse files
authored
Merge pull request #25456 from dvdksn/sbx/v0.34
sbx/v0.34
2 parents c91aa83 + e053004 commit 57303ed

22 files changed

Lines changed: 148 additions & 175 deletions

content/manuals/ai/sandboxes/release-notes.md

Lines changed: 45 additions & 118 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,51 @@ the full release history, including pre-releases and downloads, see the
1515

1616
<!-- BEGIN GENERATED RELEASES -->
1717

18+
## 0.34.0
19+
20+
{{< release-date date="2026-06-26" >}}
21+
22+
[GitHub release](https://github.com/docker/sbx-releases/releases/tag/v0.34.0)
23+
24+
### Highlights
25+
26+
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+
1863
## 0.33.0
1964

2065
{{< release-date date="2026-06-17" >}}
@@ -134,124 +179,6 @@ This release also improves network isolation and policy enforcement. Sandbox DNS
134179
- Stop counting expected `rm`/`stop`/list-ports "not found" 404s as analytics failures, so routine existence checks no longer inflate error dashboards.
135180
- Require a daemon restart (instead of failing with `405 Method Not Allowed`) when downgrading the CLI below a newer running daemon.
136181

137-
## 0.31.3
138-
139-
{{< release-date date="2026-06-03" >}}
140-
141-
[GitHub release](https://github.com/docker/sbx-releases/releases/tag/v0.31.3)
142-
143-
### Bug Fixes
144-
145-
- Fix a failure to start sandboxes that were created with older versions of the CLI.
146-
- Fix a file descriptor leak on Linux. Each credential lookup left a session
147-
D-Bus socket open, so long-running processes (such as the daemon) could
148-
gradually accumulate open file descriptors and eventually hit the session
149-
bus's connection limit, failing with "The maximum number of active
150-
connections has been reached." Connections are now closed after each
151-
operation. macOS and Windows were not affected.
152-
153-
## 0.31.2
154-
155-
{{< release-date date="2026-06-01" >}}
156-
157-
[GitHub release](https://github.com/docker/sbx-releases/releases/tag/v0.31.2)
158-
159-
### Highlights
160-
161-
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.
169-
170-
## 0.31.1
171-
172-
{{< release-date date="2026-05-29" >}}
173-
174-
[GitHub release](https://github.com/docker/sbx-releases/releases/tag/v0.31.1)
175-
176-
### Bug fixes
177-
178-
- 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.
179-
180-
## 0.31.0
181-
182-
{{< release-date date="2026-05-28" >}}
183-
184-
[GitHub release](https://github.com/docker/sbx-releases/releases/tag/v0.31.0)
185-
186-
### Highlights
187-
188-
#### Clone mode: `--clone`
189-
190-
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).
230-
231-
#### Telemetry
232-
233-
- Surface `port_publish_failed` inner error detail.
234-
235-
#### Secrets
236-
237-
- 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.
254-
255182
<!-- END GENERATED RELEASES -->
256183

257184
## Earlier releases

data/sbx_cli/sbx.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@ see_also:
3030
- sbx rm - Remove one or more sandboxes
3131
- sbx run - Run an agent in a sandbox
3232
- sbx secret - Manage stored secrets
33+
- sbx setup - (Experimental) Detect host configuration and prepare Docker Sandboxes
3334
- sbx stop - Stop one or more sandboxes without removing them
3435
- sbx template - Manage sandbox templates
3536
- sbx tui - Open the interactive TUI dashboard

data/sbx_cli/sbx_create.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ options:
1313
- name: cpus
1414
default_value: "0"
1515
usage: |
16-
Number of CPUs to allocate to the sandbox (0 = auto: N-1 host CPUs, min 1)
16+
Number of CPUs to allocate to the sandbox (0 = auto: all host CPUs)
1717
- name: help
1818
shorthand: h
1919
default_value: "false"

data/sbx_cli/sbx_create_claude.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ inherited_options:
2222
- name: cpus
2323
default_value: "0"
2424
usage: |
25-
Number of CPUs to allocate to the sandbox (0 = auto: N-1 host CPUs, min 1)
25+
Number of CPUs to allocate to the sandbox (0 = auto: all host CPUs)
2626
- name: debug
2727
shorthand: D
2828
default_value: "false"

data/sbx_cli/sbx_create_codex.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ inherited_options:
2222
- name: cpus
2323
default_value: "0"
2424
usage: |
25-
Number of CPUs to allocate to the sandbox (0 = auto: N-1 host CPUs, min 1)
25+
Number of CPUs to allocate to the sandbox (0 = auto: all host CPUs)
2626
- name: debug
2727
shorthand: D
2828
default_value: "false"

data/sbx_cli/sbx_create_copilot.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ inherited_options:
2222
- name: cpus
2323
default_value: "0"
2424
usage: |
25-
Number of CPUs to allocate to the sandbox (0 = auto: N-1 host CPUs, min 1)
25+
Number of CPUs to allocate to the sandbox (0 = auto: all host CPUs)
2626
- name: debug
2727
shorthand: D
2828
default_value: "false"

data/sbx_cli/sbx_create_cursor.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ inherited_options:
2222
- name: cpus
2323
default_value: "0"
2424
usage: |
25-
Number of CPUs to allocate to the sandbox (0 = auto: N-1 host CPUs, min 1)
25+
Number of CPUs to allocate to the sandbox (0 = auto: all host CPUs)
2626
- name: debug
2727
shorthand: D
2828
default_value: "false"

data/sbx_cli/sbx_create_docker-agent.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ inherited_options:
2222
- name: cpus
2323
default_value: "0"
2424
usage: |
25-
Number of CPUs to allocate to the sandbox (0 = auto: N-1 host CPUs, min 1)
25+
Number of CPUs to allocate to the sandbox (0 = auto: all host CPUs)
2626
- name: debug
2727
shorthand: D
2828
default_value: "false"

data/sbx_cli/sbx_create_droid.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ inherited_options:
2222
- name: cpus
2323
default_value: "0"
2424
usage: |
25-
Number of CPUs to allocate to the sandbox (0 = auto: N-1 host CPUs, min 1)
25+
Number of CPUs to allocate to the sandbox (0 = auto: all host CPUs)
2626
- name: debug
2727
shorthand: D
2828
default_value: "false"

data/sbx_cli/sbx_create_gemini.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ inherited_options:
2222
- name: cpus
2323
default_value: "0"
2424
usage: |
25-
Number of CPUs to allocate to the sandbox (0 = auto: N-1 host CPUs, min 1)
25+
Number of CPUs to allocate to the sandbox (0 = auto: all host CPUs)
2626
- name: debug
2727
shorthand: D
2828
default_value: "false"

0 commit comments

Comments
 (0)