This release improves sandbox lifecycle management with a new force stop capability. The sandbox stop endpoint now accepts a force parameter that sends SIGKILL instead of SIGTERM, ensuring immediate termination for unresponsive sandboxes across the API, runner, and SDK stack.
The Python SDK import time drops from ~3 seconds to near-instant. The fix replaces eager imports with lazy getattr-based loading, reducing startup from ~600 compiled Pydantic model initializations to only what is needed.
SDK dotenv handling is now isolated: only DAYTONA_* variables are loaded from .env files without polluting the global environment. Several API fixes address stale sandbox writes, build cache staleness, and snapshot mutation.
Release Details
Features:
- api: clear failed build cache (#4160)
- api,runner,sdk: force stop sandbox (#4172)
- guides: OpenEnv FinQA guide with single-episode demo and GRPO training (#3979)
- sdk-typescript,sdk-python,sdk-ruby: load only DAYTONA_ env vars from dotenv files without polluting env (#4186)
Fixes:
- api: prevent stale sandbox writes (#4146)
- api: migration drift (#3961)
- api: declarative build staleness cron (#4159)
- api: avoid in-place snapshot mutation in sandbox state sync (#4187)
- daemon: close sync session stdin and track async holder process (#4107)
- otel: bump otel SDKs to v1.42.0 (#4213)
- runner: pass inter-sandbox network enabled configuration (#4195)
- sdk-python: retry request on stale connection (#4214)
- sdk-python: surface upload_files error details (#4048, #4206)
Refactor:
- sdk-python: optimize Python SDK import time with lazy imports (#4192)
Chores: