sdks/sandbox/go/v1.0.5

pq-yang/MatAnyone2sdks/sandbox/go/v1.0.5Jul 24, 2026by ninan-nn

AI Summary

Introduces retry policies for pool acquire, metrics reporting, and client IP detection to the Go Sandbox SDK.

Key Highlights

  • Retrying pool acquire policies (skip stale idle candidates)
  • Sandbox create metrics reporting to lifecycle server
  • Client IP header detection for intranet IPv4

New Features

  • Retrying pool acquire policies
  • Sandbox create metrics
  • Attach to isolated sessions by session ID
  • UID mode availability checks
  • Exact snapshot name filtering
  • Isolated session bind mounts and listing

Full Release Notes

## What's New

### ✨ Features

- **Retrying pool acquire policies** — Go sandbox pools now support `AcquirePolicyRetryNextIdle` and `AcquirePolicyRetryNextIdleThenCreate`, allowing `Acquire` to skip stale idle candidates before failing or falling back to direct create. Existing policies keep their current behavior; `MaxAcquireRetries` defaults to 3. #1347
- **Sandbox create metrics** — `Sandbox.Create` now reports fire-and-forget `sandbox.create` latency events to the lifecycle server. Reporting ignores old-server version skew and can be disabled with `OPENSANDBOX_DISABLE_METRICS=1`. #1307
- **Client IP header** — the SDK now best-effort detects the host intranet IPv4 and sends it as `OPEN-SANDBOX-CLIENT-IP` on outbound requests. User-provided headers are never overwritten. #1326
- **Attach to isolated sessions** — the SDK can now attach to an existing isolated session by session ID, allowing stateless workers to recover a functional handle while the execd in-memory session remains alive. #1295
- **UID mode availability** — isolated session responses now expose per-mode `setpriv` / `userns` availability, and unavailable requested modes fail with `503 NOT_SUPPORTED`. #1320
- **Exact snapshot name filtering** — snapshot listing now supports an exact `name` filter. #1301
- **Isolated session bind mounts and listing** — isolated sessions can now receive explicit bind mounts, and the SDK exposes isolated session listing so callers can inspect active sessions. #1264 #1269
- **Credential Vault placeholder substitutions** — request matching now supports opt-in placeholders for path, query, header, and body surfaces, including passthrough auth bindings. #1251

### 🐛 Bug Fixes

- **Streaming and stale connection hardening** — long-lived SSE command streams no longer use the normal total request timeout, so command output is not cut off by `RequestTimeout`. Idempotent `GET` / `HEAD` requests retry once on a fresh connection after timeout, reset, or EOF errors. #1316

### 📦 Misc

- Bumped the Go SDK version constant and default User-Agent string for this release. #1384

### 👥 Contributors

- @FAUST-BENCHOU
- @Pangjiping
- @jianpingpei
- @jwx0925
- @ninan-nn
- @ruirui6946