This release includes breaking changes for platform teams planning a safe upgrade.
✓ No known CVEs patched in this version
Topics
ReleasePort's take
Light signalThe command timeout API now defaults to java.time.Duration; kotlin.time.Duration overloads are deprecated but still available. Several bug fixes and new features improve sandbox management, memory safety, and error logging.
Why it matters: API change requires updating timeout code to use java.time.Duration before the next major release; fixes prevent unbounded memory growth, idle‑pool races, and noisy FILE_NOT_FOUND errors.
Summary
AI summaryUpdates Behavior Changes, Bug Fixes, and What's New across a mixed release.
Changes in this release
| Type | Severity | Summary | CVE |
|---|---|---|---|
| Feature | Low |
Added skipAccumulation support to execution handlers, preventing unbounded memory growth for streamed commands. Added skipAccumulation support to execution handlers, preventing unbounded memory growth for streamed commands. Source: llm_adapter@2026-06-08 Confidence: high |
— |
| Feature | Low |
Added SDK model support for PVC auto-provisioning fields. Added SDK model support for PVC auto-provisioning fields. Source: llm_adapter@2026-06-08 Confidence: high |
— |
| Feature | Low |
Added secureAccess support to sandbox builders and pool creation specs, with endpoint header propagation and log redaction (opt‑in). Added secureAccess support to sandbox builders and pool creation specs, with endpoint header propagation and log redaction (opt‑in). Source: llm_adapter@2026-06-08 Confidence: high |
— |
| Bugfix | Medium |
Command timeout APIs now use java.time.Duration as primary type; deprecated kotlin.time.Duration overloads remain. Command timeout APIs now use java.time.Duration as primary type; deprecated kotlin.time.Duration overloads remain. Source: llm_adapter@2026-06-08 Confidence: high |
— |
| Bugfix | Medium |
Pool idle TTL handling now goes through a state‑store hook to keep in‑memory TTL aligned with configured idle timeout. Pool idle TTL handling now goes through a state‑store hook to keep in‑memory TTL aligned with configured idle timeout. Source: llm_adapter@2026-06-08 Confidence: high |
— |
| Bugfix | Medium |
Expected FILE_NOT_FOUND responses from filesystem reads now log at DEBUG instead of ERROR while still propagating the exception. Expected FILE_NOT_FOUND responses from filesystem reads now log at DEBUG instead of ERROR while still propagating the exception. Source: llm_adapter@2026-06-08 Confidence: high |
— |
| Bugfix | Medium |
Sandbox Pool now skips idle sandboxes close to expiry before returning them from pool.acquire(), avoiding race where checkReady can timeout. Sandbox Pool now skips idle sandboxes close to expiry before returning them from pool.acquire(), avoiding race where checkReady can timeout. Source: llm_adapter@2026-06-08 Confidence: high |
— |
Full changelog
What's New
Behavior Changes
- Sandbox Pool now skips idle sandboxes that are too close to expiry before returning them from
pool.acquire(). This avoids a race wherecheckReadycan time out because the selected sandbox expires server-side before it can be renewed. The default threshold ismin(60s, idleTimeout / 2)and can be disabled withDuration.ZERO. https://github.com/opensandbox-group/OpenSandbox/pull/986
Features
- Added
skipAccumulationsupport for execution handlers. When enabled, stdout/stderr events are still delivered to callbacks but are not appended to accumulated execution logs, preventing unbounded memory growth for long-running streamed commands. https://github.com/opensandbox-group/OpenSandbox/pull/990 - Added SDK model support for PVC auto-provisioning fields. https://github.com/opensandbox-group/OpenSandbox/pull/749
- Added
secureAccesssupport to sandbox builders and pool creation specs, including endpoint header propagation and log redaction. This is opt-in and currently supported by Kubernetes ingress gateway mode. https://github.com/opensandbox-group/OpenSandbox/pull/745
Bug Fixes
- Command timeout APIs now use
java.time.Durationas the primary public type for better Java interoperability. Deprecatedkotlin.time.Durationoverloads remain for migration. https://github.com/opensandbox-group/OpenSandbox/pull/928 - Expected
FILE_NOT_FOUNDresponses from filesystem reads now log at DEBUG instead of ERROR, while still propagating the same exception to callers. https://github.com/opensandbox-group/OpenSandbox/pull/923 - Pool idle TTL handling now goes through a state-store hook so in-memory pool TTL and configured idle timeout stay aligned. https://github.com/opensandbox-group/OpenSandbox/pull/708
Contributors
- @hittyt
- @Pangjiping
- @asiudgufgbukbsa
- @ninan-nn
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
Related context
Earlier breaking changes
- vpython/sandbox/v0.1.14 Removes `CredentialMatch.ports`; port now derived from scheme.
- vjava/sandbox/v1.0.16 Removes CredentialMatch.ports; port derived from scheme instead.
- vdocker/egress/v1.1.4 `Match.Ports` field removed from Credential Vault bindings; ports derived from scheme.
- vdocker/egress/v1.1.4 'X-Forwarded-Proto' is trusted only from configured proxy CIDRs.
- vdocker/egress/v1.1.4 Credential Vault requires `dns+nft` enforcement for egress connections.
Beta — feedback welcome: [email protected]