denoland/celldPublic

self-hosted, distributed Durable Objects

v0.6.0

github-actions[bot]bot published bad4649Immutable

Release notes

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.

Attached at publication

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.

Assets 0
None were attached at publication.
No assets.

Shipped in this Release 0

None

Deployments 0

  • None

History 0

No Decisions yet.