You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This commit was created on GitHub.com and signed with GitHub’s verified signature.
What's New
Breaking Changes
The credential vault binding match no longer carries a Ports field. 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 sets Match.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 RunOnceAsync and WithSessionAsync isolation convenience helpers to the C# SDK. RunOnceAsync(code, workspace, ...) wraps create → run → delete into a single call with guaranteed cleanup, and WithSessionAsync(req, fn) scopes a multi-run isolated workflow with auto-delete on exit. They are exposed as extension methods on IIsolatedSessions in the root OpenSandbox namespace (so callers only need using 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, Isolated models). #1008#1222
Added an LRU + TTL endpoint cache with in-flight request deduplication. The SDK now caches (sandbox_id, port, use_server_proxy) → Endpoint to avoid repeated resolution round-trips. It is enabled by default (TTL 600s, max size 1024) and tunable via ConnectionConfig; killing a sandbox actively invalidates its cached entries. #1133
Sandbox lifecycle responses now surface extensions. The C# SDK response models expose opensandbox.extensions.* data returned by create/get/list so callers can read extension values round-tripped from the server. #1112
Added the optional resourceRequests field 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 deleteOnSandboxTermination semantics 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 remains false (opt-in), so existing behavior is unchanged. #880
Misc
Updated the C# SDK project (.csproj) repository metadata to the new opensandbox-group/OpenSandbox org 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.4 and fixed the default User-Agent string, which had drifted behind at 0.1.2; a regression test now locks the User-Agent to the package version. #1248