I Shipped...

23 September 2026 (5PRs)

finish hydration from local payloads

I made a receiver finish its initial setup from payload references it already has locally, without waiting for another update to arrive.

fail on unknown starter test filters

I made manual test runs fail clearly when a requested starter does not exist, instead of silently skipping every test and reporting success.

check allocation growth for nested records

I added regression checks showing that nested records are admitted correctly and that their allocation use grows within a defined bound as nesting gets deeper.

avoid unrelated exclusive read conflicts

I made exclusive reads compare the rows their filter selected, so a change to an unrelated row in the same table no longer causes a false conflict.

add Inspector overlay to SvelteKit

I wired the Inspector into SvelteKit development and made the managed runtime shut down cleanly when the plugin closes or rebuilds.

19 September 2026 (15PRs)

wake owners when external reads finish

I made external read readiness wake the owning server or relay before it ticks subscribers, so waiting work resumes without unsafe repeated scheduling.

show starter delete failures

I made the React and Next starters show local delete failures and finish the deleting indicator after local saving, while remote syncing continues separately.

separate encoded and decoded message limits

I gave compressed messages separate size limits before and after decoding, so legal compressed data is accepted while oversized declarations are rejected early.

reuse complete startup history safely

I added bounded reuse for complete row history and eligible query plans, without sharing query results or access rights between requests.

retain authored schema identity on reads

I kept the schema identity that originally described a read, so unrelated schema changes or a renamed table cannot make the read check the wrong table.

require record keys to match primary keys

I made raw writes reject records stored under a key that disagrees with the record's own primary key, before the inconsistent data can be saved.

report permanent queued send failures

I made permanent transport send errors reach the caller and kept quick reconnect confirmations from being lost while older messages are drained.

release cancelled reads and queued work

I made cancellation release a read that never finishes, allowing the next queued operation to proceed instead of waiting behind it forever.

reject nested arrays as reference targets

I made explicit relationship declarations reject nested arrays as reference targets early, while still allowing nested arrays as ordinary data.

recover offline writes after restart

I made a restarted browser recover pending offline edits even when their earlier history is temporarily incomplete, and replay long histories without overflowing the stack.

match starter auth settings

I made the auth provider and Jazz server use matching issuer and audience settings in the starters, and wired the development Inspector into the Next setup.

keep WebSocket limits per server

I moved WebSocket connection limits and cleanup into each server, so one server's clients no longer count against or evict another server's clients.

keep successful workspace lookups

I kept a successful package lookup available when the alternate workspace lookup fails, without changing validation or result ordering.

keep BYTEA filters after URL sharing

I made binary equality filters survive saving and reopening a query URL by restoring their bytes as binary values instead of plain objects.

delete restored rows again

I fixed delete checks to look at the row's current state, so a row that was restored can be deleted again while already-deleted rows still stay protected.