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