Skip to content

v0.6.0

Latest

Choose a tag to compare

@github-actions github-actions released this 26 Sep 14:28
Immutable release. Only release title and notes can be modified.
bad4649

Upgrading from v0.5.1 with fleet durability requires stopping the whole fleet first. A fleet with bucket durability can use a rolling update.

  • Each Durable Object facet has its own SQLite file and replication stream. A facet write no longer copies the facet database into the root or joins a root transaction. A facet can start from a class in ctx.exports. Facets from v0.5.1 migrate on first open.
  • crypto.subtle supports Ed25519 (also as NODE-ED25519) and X25519, with raw import and export. (#221)
  • Per-cell memory: the SQL statement cache is capped at 128 KiB of compiled statements instead of 1 MiB of SQL text, which could hold tens of MB. A cell shares one object store client instead of three, and operation timers no longer leak one map entry per operation.
  • Stricter workerd parity: WorkerCode requires compatibilityDate, a wasm module in modules must be { wasm: bytes }, export const X = "..." in a main module fails the Worker's start, and the transactionSync() callback receives no argument.
  • ctx.exports holds default and each entrypoint, and fetch() on its stubs sends an HTTP request.
  • R2 keeps empty key segments, so a/b, /a/b, a//b, and a/b/ are four objects. An object v0.5.1 wrote as photos/ stays at photos.
  • Invalid UTF-8 in SQLite TEXT decodes as U+FFFD instead of failing.
  • Headers accepts values above U+00FF and decodes response values as UTF-8.
  • A WebSocket close is wasClean: true whenever the peer sent a close frame.
  • run_worker_first accepts the root route /.
  • Recovery waits for range evidence from a follower's log tail.

Issues fixed:

  • #226: Nest transactionSync() calls through the root storage handle.
  • #227: Resolve relative imports in Dynamic Worker subdirectories.
  • #228: Fire a re-armed alarm on time despite the handler's pending timers.
  • #229: Deliver WebSocket frames while webSocketMessage() runs.
  • #232: R2 list() returns non-ASCII and % keys as put() received them.