0.1.0 (2026-06-12)

Initial release.

  • DurableStash — a LiveStash adapter backed by DurableServer: one durable process per browser session, persisted to S3-compatible object storage. State survives live navigation, reconnects, LiveView crashes, and redeploys; recovery happens on every mount.
  • Per-key diff writes with key-wise merge — concurrent tabs writing different keys cannot clobber each other.
  • Per-key recovery scopes: :session (recover on every mount) and :reconnect (recover only on rejoins — crashes, Wi-Fi drops, deploys — and clear on fresh navigation; right for form drafts).
  • vsn/migrate options for versioning the stored shape; mismatches without a migration discard to defaults.
  • JSON-safety guards (on_invalid_value: :raise | :log) and JSON normalization at stash time, so recovered values are identical in dev and prod.

  • DurableStash.TestBackend — an in-memory DurableServer.StorageBackend with faithful etag CAS, for tests and local development without S3.