Skip to content

v0.4.0 — Testing, snapshots & warm pools, lazy streams, Webhooks.Plug, telemetry

Latest

Choose a tag to compare

@github-actions github-actions released this 01 Sep 01:52

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: true safe.
  • ExDaytona.Snapshot + ExDaytona.WarmPool — build an image into a snapshot once (Snapshot.build/4, with live build-log streaming), then Sandbox.create(snapshot: name) skips the build; warm pools keep sandboxes pre-provisioned for millisecond creates.
  • Lazy Enumerable streamsFS.stream!/3 (backpressured chunk enumeration; halting cancels the request) and LogStream.events!/2. ExDaytona.Error is 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 :plug dependency 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 in ExDaytona.Telemetry.

Full details in the CHANGELOG.