Force Stop & SDK Performance

Daytona v0.157.0 changelog dark Daytona v0.157.0 changelog light

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:

  • sync go.sum for v0.156.0 (#4194)

  • docs: update typescript sdk readme and package metadata (#4185)

  • docs: update readme (#4176)

  • sdk-go: bump to v0.157.0 (#4220)