I Shipped...

15 October 2026 (3PRs)

reuse query preparation across terminal outputs

I made query preparation reuse work when several outputs share most of the same graph. This avoids rebuilding the same pieces repeatedly while keeping separate outputs, privacy checks, storage, and public APIs unchanged.

reuse graph descriptors during route proofs

I made route-permission checks reuse the descriptions they derive for shared query inputs instead of analysing the same pieces repeatedly. The checks still report missing fields and other errors correctly, and the reused analysis lasts only for that proof.

make sharing checks avoid unnecessary graph copies

I made Jazz's Node query preparation cheaper by walking the internal query graph without copying everything. It now copies only the parts that actually change and skips detailed rejection sketches unless tracing is enabled, while keeping the same sharing and privacy decisions.

13 October 2026 (12PRs)

split CLI integration tests into isolated suites

I split one large CLI integration test file into focused suites for validation, migrations, deployment, and the packaged command. The scenarios now run more independently while keeping the existing command behaviour and coverage.

simplified Better Auth test fixtures

I simplified the Better Auth adapter tests by reusing the fixture schema and permissions instead of repeatedly rebuilding the same definitions. The tests still create fresh servers and data, so authentication, permissions, and backend operations remain isolated.

restored native todo examples for ordinary users

I restored the native Rust todo examples so a normal user can enrol with a JWT before opening the client. The examples now use the current APIs and keep server authority separate from the user process, while preserving the existing create, sync, and resync checks.

required chat membership for collaborative canvas drawing

I stopped people who could only view a collaborative canvas from adding new strokes to it. Canvas members can still draw, and public readers can still see the canvas and its strokes.

recovered browser writes after silent worker loss

I made browser writes recover when the background worker disappears without warning. Pending inserts and deletes now trigger a bounded worker replacement and continue using their original transaction identities, so applications do not need to submit the changes again.

made JWT key-service outages retryable

I changed authentication so temporary failures fetching signing keys tell clients to try again instead of treating valid credentials as permanently bad. Malformed tokens and bad signatures are still rejected immediately, while cached valid keys keep working during an outage.

kept combined query aggregates in sync

I fixed live aggregate queries that could keep an old count or sum when the first value in the result did not change. The subscription now recognises the complete changed result and publishes the replacement once, while equal results stay quiet.

improved contains type errors

I improved query errors for contains when the searched value has the wrong type. The error now explains both the type supplied and the type required, while valid text and array membership queries keep their existing behaviour.

fixed numeric comparisons for floating-point query values

I fixed constant query comparisons that used the raw computer representation of floating-point numbers instead of their numeric values. Negative numbers now sort correctly, signed zeroes compare equal, and negated comparisons keep the right result.

fixed nullable ownership query checks

I fixed authorised queries that could be accepted or rejected differently depending on the order of nullable ownership checks. The validator now settles the complete parameter type before checking each condition, keeping the visible rows and query rules consistent.

exposed native audio streaming and range reads

I exposed the existing native streaming and byte-range storage operations through the main client API. This lets an authorised client upload audio without loading the whole file into memory and read only the bytes it needs, while keeping the existing permission checks.

cleaned up retained subscription query lifetimes

I fixed a leak where server-side query plans could stay registered after the last subscriber closed. The change now releases private plans at the right time and rolls back safely when a live subscription is cancelled, without changing query results or permissions.

30 September 2026 (5PRs)

validation for direct-store key types

I made direct-store schema validation accept supported fixed-width keys and reject variable-width tuple members before storage is accessed. This prevents unsupported key shapes from reaching the storage layer and panicking.

streamed install output for create-jazz

I changed create-jazz to drain package-install output as it arrives instead of keeping it all in one limited buffer. Successful installs no longer fail just because they are verbose, and failures retain useful diagnostics from both output streams.

safer inspector overlay staging

I made inspector overlay updates stage and validate the new files before replacing the published copy. Existing assets survive rejected input and interrupted promotions can recover their backup on the next attempt.

safe rejection of non-finite schema numbers

I made schema serialisation reject values such as NaN and infinity before they are written as misleading nulls. Valid null defaults and finite numbers continue to work as before.

overflow detection for weighted indexes

I made weighted-index calculations detect when their total weight overflows instead of silently changing the probability distribution. Valid weights and the existing empty or all-zero behaviours remain unchanged.