Skip to content

OpenSandbox

vdocker/execd/v1.0.19 Feature

This release adds 3 notable features for engineering teams evaluating rollout.

βœ“ 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

Summary

AI summary

Updates πŸ“¦ Misc, ✨ Features, and πŸ› Bug Fixes across a mixed release.

Changes in this release

Feature Medium

Adds PTY session takeover via `?takeover=1` query parameter.

Adds PTY session takeover via `?takeover=1` query parameter.

Source: llm_adapter@2026-06-15

Confidence: high

β€”
Feature Medium

Adds optional `command` field to `POST /pty` for one-shot command execution.

Adds optional `command` field to `POST /pty` for one-shot command execution.

Source: llm_adapter@2026-06-15

Confidence: high

β€”
Feature Medium

Adds `GET /directories/list` endpoint with configurable depth and file type field.

Adds `GET /directories/list` endpoint with configurable depth and file type field.

Source: llm_adapter@2026-06-15

Confidence: high

β€”
Feature Medium

Adds line‑based `offset` and `limit` parameters to `GET /files/download`.

Adds line‑based `offset` and `limit` parameters to `GET /files/download`.

Source: llm_adapter@2026-06-15

Confidence: high

β€”
Feature Medium

`POST /files/replace` now returns `replacedCount` per file.

`POST /files/replace` now returns `replacedCount` per file.

Source: llm_adapter@2026-06-15

Confidence: high

β€”
Feature Medium

OTLP endpoint auto‑discovery falls back to node IP when env vars unset.

OTLP endpoint auto‑discovery falls back to node IP when env vars unset.

Source: llm_adapter@2026-06-15

Confidence: high

β€”
Feature Medium

Includes `opensandbox-supervisor` binary in execd runtime image.

Includes `opensandbox-supervisor` binary in execd runtime image.

Source: llm_adapter@2026-06-15

Confidence: high

β€”
Bugfix Medium

`GET /files/info` now returns 404 instead of 500 for missing paths.

`GET /files/info` now returns 404 instead of 500 for missing paths.

Source: llm_adapter@2026-06-15

Confidence: high

β€”
Bugfix Medium

`POST /files/mv` now returns 404 instead of 500 for missing source.

`POST /files/mv` now returns 404 instead of 500 for missing source.

Source: llm_adapter@2026-06-15

Confidence: high

β€”
Bugfix Medium

`MakeDir` no longer chmod/chown pre‑existing directories.

`MakeDir` no longer chmod/chown pre‑existing directories.

Source: llm_adapter@2026-06-15

Confidence: low

β€”
Bugfix Low

`MakeDir` no longer changes permissions or ownership on directories that already exist.

`MakeDir` no longer changes permissions or ownership on directories that already exist.

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

Confidence: low

β€”
Full changelog

What's New

✨ Features

  • PTY session takeover for device handoff. New ?takeover=1 query parameter on GET /pty/:sessionId/ws lets a second client reclaim a live PTY session instead of getting 409 ALREADY_CONNECTED. The existing holder is evicted with close code 4001 (TAKEN_OVER), the shell process keeps running untouched, and the new client can replay scrollback via ?since=<offset> for seamless screen restore. Enables desktop ⇄ mobile session handoff without restarting the shell. Fully backward compatible β€” without the flag, behavior is unchanged. (#997)

  • PTY custom command execution. POST /pty now accepts an optional command field. When set, the PTY session runs bash -c <command> for one-shot terminal I/O instead of an interactive shell. When omitted, behavior is unchanged (interactive bash). (#1032)

  • Directory listing endpoint. New GET /directories/list endpoint with depth-controlled directory traversal (default depth=1 for immediate children). Also adds a type field (file, directory, symlink, other) to FileInfo responses β€” /files/info now uses Lstat so symlinks are reported as symlinks instead of being resolved to their target type. Supported across all five SDKs. (#1001)

  • Line-based file reading. GET /files/download now supports offset (1-based line number) and limit (line count) query parameters for line-based reads, mutually exclusive with the existing Range header. Uses streaming bufio.Reader without buffering the entire file. Updated across OpenAPI spec and all SDKs. (#1030)

  • Replace file content feedback. POST /files/replace now returns a replacedCount per file, so callers can detect no-match (replacedCount=0) and multi-match scenarios. Response going from empty body to JSON is non-breaking; old SDKs ignoring the body continue to work. Updated across all SDKs and MCP server. (#991)

  • OTLP endpoint auto-discovery. When neither OTEL_EXPORTER_OTLP_METRICS_ENDPOINT nor OTEL_EXPORTER_OTLP_ENDPOINT is set, execd now resolves the node IP from HOST_IP env var or /etc/hostinfo and points the OTLP/HTTP exporter at <node-ip>:4318. Eliminates the need for callers to template the full endpoint URL. (#963)

  • Supervisor binary in container image. The opensandbox-supervisor binary (built from components/internal/cmd/supervisor) is now included in the execd runtime image for future process management use. (#1056)

πŸ› Bug Fixes

  • GET /files/info now returns 404 for missing paths instead of 500. Two cooperating bugs β€” fmt.Errorf using %s instead of %w (stripping the os.ErrNotExist sentinel) and os.IsNotExist not walking wrapped errors β€” made the 404 branch in handleFileError unreachable. Both fixed. (#1026)

  • POST /files/mv now returns 404 for missing source instead of 500. Same sentinel-stripping pattern as #1026 in RenameFile β€” %s β†’ %w fixes the error chain so handleFileError reaches its 404 branch. (#1028)

  • MakeDir no longer chmod/chown pre-existing directories. Previously MakeDir applied ChmodFile unconditionally, which could change permissions on directories that already existed. Now checks existence first and only applies permissions to newly created dirs. SetFileOwnership also returns nil when both owner and group are empty. (#1025)

πŸ“¦ Misc

  • Modernize all os.IsNotExist calls to errors.Is(err, fs.ErrNotExist) across 7 callsites in 5 files, matching Go's recommended idiom. Also fixes a pre-emptive %s β†’ %w sentinel loss in ValidateWorkingDir. (#1029)

πŸ‘₯ Contributors

Thanks to these contributors ❀️

  • @andrewjamesbrown
  • @asiudgufgbukbsa
  • @ferponse
  • @Pangjiping
  • @504097723

  • Docker Hub: opensandbox/execd:v1.0.19
  • Aliyun Registry: sandbox-registry.cn-zhangjiakou.cr.aliyuncs.com/opensandbox/execd:v1.0.19

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]