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. #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. #990 - Added SDK model support for PVC auto-provisioning fields. #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. #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. #928 - Expected
FILE_NOT_FOUNDresponses from filesystem reads now log at DEBUG instead of ERROR, while still propagating the same exception to callers. #923 - Pool idle TTL handling now goes through a state-store hook so in-memory pool TTL and configured idle timeout stay aligned. #708