This release includes 1 breaking change for platform teams planning a safe upgrade.
Published 19d
Containers & Orchestration
✓ No known CVEs patched
✓ No known CVEs patched in this version
Topics
ai
ai-agent
ai-infra
kubernetes
sandbox
Affected surfaces
breaking_upgrade
auth
Summary
AI summaryUpdates Breaking Changes, Bug Fixes, and What's New across a mixed release.
Full changelog
What's New
Breaking Changes
- The credential vault binding match no longer carries a
Portsfield. Port is now derived from the scheme (https→ 443,http→ 80), matching what the intercept layer (iptables/nft) actually redirects. If your C# code constructs credential vault bindings and setsMatch.Ports, remove that field on upgrade — port selection is now implicit from the scheme. This removes a field that never provided real flexibility (only 80/443 were ever intercepted). #1189
Features
- Added
RunOnceAsyncandWithSessionAsyncisolation convenience helpers to the C# SDK.RunOnceAsync(code, workspace, ...)wraps create → run → delete into a single call with guaranteed cleanup, andWithSessionAsync(req, fn)scopes a multi-run isolated workflow with auto-delete on exit. They are exposed as extension methods onIIsolatedSessionsin the rootOpenSandboxnamespace (so callers only needusing OpenSandbox;), and cleanup is best-effort so it never masks the original exception. These build on the execd-backed isolation support added to the C# SDK (IsolatedSessionsAdapter,IIsolatedSessions,Isolatedmodels). #1008 #1222 - Added an LRU + TTL endpoint cache with in-flight request deduplication. The SDK now caches
(sandbox_id, port, use_server_proxy) → Endpointto avoid repeated resolution round-trips. It is enabled by default (TTL 600s, max size 1024) and tunable viaConnectionConfig; killing a sandbox actively invalidates its cached entries. #1133 - Sandbox lifecycle responses now surface
extensions. The C# SDK response models exposeopensandbox.extensions.*data returned by create/get/list so callers can read extension values round-tripped from the server. #1112 - Added the optional
resourceRequestsfield to sandbox creation. Kubernetes-backed sandboxes can now set resource requests separately from limits (enabling Burstable QoS). Omitting the field preserves the existing behavior where requests equal limits. #1074
Bug Fixes
- Clarified
deleteOnSandboxTerminationsemantics in the C# sandbox model: auto-created Kubernetes PVCs are now actually deleted on sandbox termination when opted in (previously the field was documented as Docker-only). Default remainsfalse(opt-in), so existing behavior is unchanged. #880
Misc
- Updated the C# SDK project (
.csproj) repository metadata to the newopensandbox-group/OpenSandboxorg so package pages and issue links point to the current repo (package names and namespaces unchanged). #1139 - Bumped the C# Sandbox SDK package version to
0.1.4and fixed the default User-Agent string, which had drifted behind at0.1.2; a regression test now locks the User-Agent to the package version. #1248
Contributors
- @GreenShadeZhang
- @Gujiassh
- @Pangjiping
- @xfgong
Breaking Changes
- Removed `Match.Ports` field from credential vault binding match; port is now derived implicitly from the scheme (https → 443, http → 80).
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]