d21b936bf7
## Summary When `lifecycle.on_timeout` is set it wins; otherwise we fall back to the `auto_pause` argument. Previously the Python SDKs subscripted `lifecycle["on_timeout"]`, which raised `KeyError` if a caller passed a `lifecycle` dict missing that key (TypedDict is not enforced at runtime). The JS SDK silently used the whole `lifecycle` object even when `onTimeout` was undefined. In both cases, mixing `lifecycle` and `auto_pause` had inconsistent and surprising behavior across the public surfaces (`create` vs `beta_create`). Now both SDKs use `.get`/optional chaining on `on_timeout` and only treat `lifecycle` as authoritative when that field is actually present. Touched files: - `packages/python-sdk/e2b/sandbox_async/sandbox_api.py` - `packages/python-sdk/e2b/sandbox_sync/sandbox_api.py` - `packages/js-sdk/src/sandbox/sandboxApi.ts` --------- Co-authored-by: Jakub Novak <jakub@e2b.dev>
Changesets
To add changeset run:
npx changeset
in the root of the project. This will create a new changeset in the .changeset folder.