java/sandbox/v1.0.16

antonibigata/keysyncjava/sandbox/v1.0.16Jul 13, 2026by Pangjiping

AI Summary

Adds isolation convenience APIs, credential vault placeholders, and fixes User-Agent drift to the Kotlin Sandbox SDK.

Key Highlights

  • Isolation convenience APIs for one-shot and scoped sessions
  • Credential Vault placeholder substitutions
  • Sandbox pool destroy with FORCE-destroy support

Breaking Changes

  • `CredentialMatch.ports` removed; intercept port is derived from scheme
  • `PoolStateStoreContentionException` removed as it was never raised

New Features

  • Isolation convenience APIs (runOnce, withSession)
  • List isolated sessions
  • Isolated bind mounts
  • Credential Vault placeholder substitutions
  • Protocol updates for run_once and session

Full Release Notes

## What's New

### ✨ Features

- **Isolation convenience APIs** — `isolation.runOnce(code, workspace, ...)` and `isolation.withSession(req) { ... }` for one-shot / scoped sessions with guaranteed cleanup. (#1222)
- **List isolated sessions** — `sandbox.isolation().list()`. (#1269)
- **Isolated bind mounts** — `CreateIsolatedSessionRequest.binds` accepts `BindMount(source, dest, readonly)` for arbitrary host→namespace mappings; also exposes `uidMode`. (#1264)
- **Sandbox pool destroy** — `SandboxPoolManager` FORCE-destroy with `DESTROYING` fence + `DESTROYED` tombstone, supported by both in-memory and Redis stores. (#1225)
- **Credential Vault placeholder substitutions** — opt-in placeholders for `path` / `query` / `header` / `body` (incl. `passthrough` bindings). (#1251)
- `IsolationService` now declares `runOnce` / `withSession` as default methods — custom implementations may need to accept the defaults. (#1222)
- `CredentialMatch.ports` removed; intercept port is derived from scheme (`http`→80, `https`→443). Drop any `.ports(...)` calls. (#1189)
- `PoolStateStoreContentionException` removed (never actually raised). (#1198)

### 📦 Misc

- Bump to `1.0.16`; realign default `User-Agent` (`OpenSandbox-Kotlin-SDK/1.0.16`) which had lagged, with a regression test to prevent future drift. (#1248)

### 👥 Contributors

- @jianpingpei
- @jwx0925
- @ninan-nn
- @Pangjiping