java/sandbox/v1.0.17
opensandbox-group/OpenSandboxjava/sandbox/v1.0.17Jul 24, 2026by ninan-nn
AI Summary
The Java/Kotlin SDKs feature retrying pool acquire policies and runtime isolation fixes for serialization conflicts and UID/GID handling.
Key Highlights
- Retrying pool acquire policies to skip stale idle candidates
- Serialization runtime isolation for kotlinx.serialization
- Attach to isolated sessions for stateless workers
New Features
- Retrying pool acquire policies
- Sandbox create metrics
- Client IP header detection
- Attach to isolated sessions
- UID mode availability probing
- Exact snapshot name filtering
- Serialization runtime isolation
- Isolated UID/GID range fix
Full Release Notes
## What's New ### ✨ Features - **Retrying pool acquire policies** — Kotlin/Java sandbox pools now support `RETRY_NEXT_IDLE` and `RETRY_NEXT_IDLE_THEN_CREATE`, 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 never blocks callers and can be disabled with `OPENSANDBOX_DISABLE_METRICS=1` or `disableMetrics`. #1341 - **Client IP header** — the SDK now best-effort detects the host intranet IPv4 and sends it as `OPEN-SANDBOX-CLIENT-IP` through the OkHttp transport. User-provided headers are never overwritten. #1326 - **Attach to isolated sessions** — `isolation.attach(sessionId)` lets stateless workers rebuild a handle for an existing execd isolated session while that in-memory session is still 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 ### 🐛 Bug Fixes - **Serialization runtime isolation** — SDK artifacts now shade `kotlinx.serialization` into the OpenSandbox namespace and remove it from published POM/BOM dependencies, avoiding runtime ABI conflicts when applications force older serialization runtimes. #1344 - **Isolated UID/GID range fix** — isolated session UID/GID fields now use a wider integer type so values in the execd `uint32` range deserialize and serialize correctly above `Int32.MAX_VALUE`. #1298 ### 📦 Misc - Kotlin code-interpreter now lives under the sandbox Kotlin Gradle build while preserving the published `com.alibaba.opensandbox:code-interpreter` artifact. The sandbox BOM manages sandbox and code-interpreter artifacts together. #1293 - Bumped Kotlin/Java SDK package versions and default User-Agent strings for this release. #1384 ### 👥 Contributors - @FAUST-BENCHOU - @Pangjiping - @jianpingpei - @ninan-nn - @ruirui6946