github alibaba/OpenSandbox python/sandbox/v0.1.8
python/sandbox 0.1.8

7 hours ago

What's New

✨ Features

  • Add first-class Python sandbox pool support for both async and sync clients. This release includes single-node in-memory pools, optional Redis-backed distributed pool stores via opensandbox[pool-redis], lifecycle snapshots, resize/reconcile behavior, stale-idle cleanup, and documentation for operating distributed pools. Redis support is exposed from opensandbox.pool_redis so the base SDK import path does not require Redis dependencies. by @ninan-nn in #823

  • Add snapshot APIs to the Python SDK. Consumers can create, get, list, and delete snapshots, and can create new sandboxes from a snapshotId; snapshot creation remains asynchronous, so callers should poll until the snapshot reaches Ready or Failed. Docker-backed servers support the full flow in this release, while unsupported runtimes may return not implemented. by @ninan-nn in #764

  • Add secure endpoint access surfaces. Python async and sync SDKs now support secureAccess on sandbox creation for Kubernetes gateway deployments, and expose signed endpoint retrieval for short-lived sandbox route access without sharing static tokens. Default endpoint behavior is unchanged unless secure access is explicitly requested. by @ninan-nn in #745 and by @Pangjiping in #787

  • Extend Python sandbox model support for new platform and storage options. The SDK now recognizes Windows platform OS values and syncs PVC auto-provisioning fields across the Python models and converters, keeping request payloads aligned with the updated lifecycle contract. by @Pangjiping in #785 and #749

🐛 Bug Fixes

  • Preserve API error detail from sandbox creation failures. FastAPI-style wrapped error responses are now parsed by the Python exception conversion path so callers keep the original server context instead of receiving a flattened fallback error. by @Gujiassh in #824

  • Preserve timeout=None for manual-cleanup sandbox creation. The Python SDK now serializes an explicit None timeout as JSON null instead of omitting the field, so manual cleanup intent is retained while keeping the existing public timeout: timedelta | None API. by @Gujiassh in #760

  • Harden command streaming error parsing for mixed deployments. The Python SDK now tolerates traceback: null in SSE command-start failures while execd normalizes foreground command error payloads to match the API contract. by @Aboysky in #701

📦 Misc

  • Regenerate Python lifecycle client code for updated snapshot routes, including snapshot creation and deletion endpoint changes. by @ninan-nn in #840

  • Refresh Python sandbox SDK development dependencies: pygments 2.20.0 and pytest 9.0.3. by @dependabot in #671 and #720

👥 Contributors

Thanks to these contributors ❤️

@ninan-nn
@Pangjiping
@Gujiassh
@Aboysky

Don't miss a new OpenSandbox release

NewReleases is sending notifications on new releases.