Developer-experience release: no breaking changes, no new required runtime dependencies.
ExDaytona.Testing— in-package test doubles: real clients answered by process-owned expectations/stubs (expect/3+verify!/0,stub/3), HTTP-free sandbox structs, and scripted streaming/websocket transports. Test apps built on the SDK with no Daytona account,async: truesafe.ExDaytona.Snapshot+ExDaytona.WarmPool— build an image into a snapshot once (Snapshot.build/4, with live build-log streaming), thenSandbox.create(snapshot: name)skips the build; warm pools keep sandboxes pre-provisioned for millisecond creates.- Lazy Enumerable streams —
FS.stream!/3(backpressured chunk enumeration; halting cancels the request) andLogStream.events!/2.ExDaytona.Erroris now an exception, so the bang APIs raise it. ExDaytona.Webhooks.Plug— drop-in Svix-verified webhook endpoint that handles the raw-body footgun; compiled only when the optional:plugdependency is present.- Domain telemetry —
[:ex_daytona, ...]spans for sandbox/session/fs/snapshot operations with redaction-safe metadata (outcome, error codes, ids, byte counts). Event table inExDaytona.Telemetry.
Full details in the CHANGELOG.