Skip to content

OpenSandbox

vserver/v0.2.0 Breaking

This release includes 1 breaking change for platform teams planning a safe upgrade.

βœ“ No known CVEs patched
Read the diff β†’ Tool health β†’ What is this tool? β†’

✓ No known CVEs patched in this version

Topics

ai ai-agent ai-infra kubernetes sandbox

ReleasePort's take

Light signal
editorial:auto 1mo

The Execd install path has been flattened from "/opt/opensandbox/bin/" to "/opt/opensandbox/".

Why it matters: Breaking change: any scripts or configurations referencing the old bin subdirectory will fail. Update paths before upgrading to server/v0.2.0.

Summary

AI summary

Updates πŸ“¦ Misc, πŸ› Bug Fixes, and ⚠️ Breaking Changes across a mixed release.

Changes in this release

Breaking High

Execd install path flattened from "/opt/opensandbox/bin/" to "/opt/opensandbox/".

Execd install path flattened from "/opt/opensandbox/bin/" to "/opt/opensandbox/".

Source: llm_adapter@2026-06-15

Confidence: high

β€”
Feature Medium

Adds Credential Vault for secret injection without exposing raw values to sandbox code.

Adds Credential Vault for secret injection without exposing raw values to sandbox code.

Source: llm_adapter@2026-06-15

Confidence: high

β€”
Dependency Low

Updates starlette from 0.50.0 to 1.0.1, fixing malformed Host header handling.

Updates starlette from 0.50.0 to 1.0.1, fixing malformed Host header handling.

Source: llm_adapter@2026-06-15

Confidence: high

β€”
Dependency Low

Updates idna from 3.11 to 3.15, adding DNS‑length cap enforcement.

Updates idna from 3.11 to 3.15, adding DNS‑length cap enforcement.

Source: llm_adapter@2026-06-15

Confidence: high

β€”
Bugfix Medium

Rejects conflicting endpoint modes combining `use_server_proxy=true` with `expires`.

Rejects conflicting endpoint modes combining `use_server_proxy=true` with `expires`.

Source: llm_adapter@2026-06-15

Confidence: high

β€”
Bugfix Medium

Prevents corruption of Gzip‑encoded proxy responses by streaming raw backend bytes.

Prevents corruption of Gzip‑encoded proxy responses by streaming raw backend bytes.

Source: llm_adapter@2026-06-15

Confidence: high

β€”
Bugfix Low

Defaults `EXECD_ENVS` in Docker bootstrap launcher to align with execd expectations.

Defaults `EXECD_ENVS` in Docker bootstrap launcher to align with execd expectations.

Source: granite4.1:30b@2026-06-15-audit

Confidence: low

β€”
Bugfix Low

Handles null `spec.template` gracefully in platform constraint scope to avoid crashes.

Handles null `spec.template` gracefully in platform constraint scope to avoid crashes.

Source: granite4.1:30b@2026-06-15-audit

Confidence: low

β€”
Bugfix Low

Normalises missing `entrypoint` to default value in pool‑mode sandbox creation, preventing TypeError.

Normalises missing `entrypoint` to default value in pool‑mode sandbox creation, preventing TypeError.

Source: granite4.1:30b@2026-06-15-audit

Confidence: low

β€”
Full changelog

What's New

⚠️ Breaking Changes

  • Execd install path flattened from /opt/opensandbox/bin/ to /opt/opensandbox/ β€” the emptyDir mount in the K8s provider and the Docker bootstrap launcher now use a single /opt/opensandbox directory instead of the nested /opt/opensandbox/bin. Binary paths like /opt/opensandbox/bin/execd become /opt/opensandbox/execd. The Docker runtime also replaces its inline-generated 15-line bootstrap shim with the full bootstrap.sh from the execd image, gaining MITM CA trust, SIGTERM forwarding, and pre-script support. Users running code-interpreter images ≀v1.0.2 must upgrade to v1.1.0; custom Pool CR templates need updated mountPaths and env vars. See the migration guide for details. (#1014)

✨ Features

  • Credential Vault β€” new credential injection system that lets sandboxes consume secrets (API keys, OAuth tokens, HTTP headers, query parameters) without exposing raw values to user code. Credentials are defined at the platform level and injected through the egress sidecar at request time. Includes server-side plumbing, K8s CRD support, egress integration, SDK surface (Python, Go, JS, Kotlin, Java), CLI commands (osb credential-vault), and E2E test coverage. (#1009, #1023, #1027)

πŸ› Bug Fixes

  • Conflicting endpoint modes now rejected β€” requests that combine use_server_proxy=true with expires (asking for both a server proxy path and a signed gateway route) now return SANDBOX::INVALID_PARAMETER instead of silently resolving a signed URL and then overwriting it with the proxy URL. Lifecycle API spec updated accordingly. (#952)

  • Gzip-encoded proxy responses no longer corrupted β€” the server proxy forwarded backend Content-Encoding headers while using httpx.aiter_bytes(), which decodes compressed bodies. Clients then received a gzip header on already-decoded bytes, breaking content like noVNC pages. The proxy now streams raw backend bytes so preserved Content-Encoding headers stay correct. (#971)

  • Docker bootstrap launcher defaults EXECD_ENVS β€” the Docker-generated bootstrap script now exports EXECD_ENVS before starting execd, aligning with the behavior expected by components/execd/bootstrap.sh. Previously the missing variable could cause execd startup issues. (#999)

  • Null spec.template crash in platform constraint scope β€” pool-mode BatchSandbox CRs with spec.template: null crashed _workload_platform_constraint_scope during status polling (same root cause as #910 but in a different call path). Chained .get(key, {}) replaced with .get(key) or {} to handle both absent and null values. (#1007)

  • None entrypoint crash in pool-mode creation β€” when SDK callers omit entrypoint for pool-mode sandboxes, None propagated into _create_workload_from_pool where it triggered TypeError: 'NoneType' object is not iterable in _build_task_template. Now normalised to DEFAULT_ENTRYPOINT at the top of the function. (#1017)

πŸ“¦ Misc

  • Dependency: starlette 0.50.0 β†’ 1.0.1 β€” major version bump, includes malformed Host header handling fix. (#978)
  • Dependency: idna 3.11 β†’ 3.15 β€” DNS-length cap enforcement and helper cleanups. (#959)

πŸ‘₯ Contributors

Thanks to these contributors ❀️

  • @Gujiassh
  • @jwx0925
  • @Pangjiping
  • @qingyuppp
  • @RajvardhanPatil07

  • PyPI: opensandbox-server==0.2.0
  • Docker Hub: opensandbox/server:v0.2.0
  • Aliyun Registry: sandbox-registry.cn-zhangjiakou.cr.aliyuncs.com/opensandbox/server:v0.2.0

Breaking Changes

  • Execd install path flattened from `/opt/opensandbox/bin/` to `/opt/opensandbox/`; binary paths change (e.g., `/opt/opensandbox/bin/execd` β†’ `/opt/opensandbox/execd`). Users with code-interpreter images ≀v1.0.2 must upgrade to v1.1.0 and update custom Pool CR templates accordingly.

Weekly OSS security release digest.

The CVE patches and breaking changes that affected production tools this week. One email, every Sunday.

No spam, unsubscribe anytime.

Share this release

Track OpenSandbox

Get notified when new releases ship.

Sign up free

About OpenSandbox

Secure, Fast, and Extensible Sandbox runtime for AI agents.

All releases β†’

Related context

Earlier breaking changes

Beta — feedback welcome: [email protected]