Releases
v0.1.0
Compare
Sorry, something went wrong.
No results found
0.1.0 (2026-09-25)
Features
Ability for an entity to reserve DELETE for trusted writes (a85a506 )
Add full-text search with relevance ranking (28bff8f )
Add one-hop query support for relations (5032134 )
Allow collaborative text fields inside keyed-list elements and map values (5a25573 )
Allow grouping a match set by a path, with counts or distinct values (53192c7 )
Allow limiting which fields a client can write (223b97a )
Allow oneof use for references (16ca1db )
Allow syncing only certain fields (3c2f02f )
client: Add devtools for easier debugging (4c0468b )
client: Add purgeLocalData for local sign-out (d6cd206 )
client: Add storagePrefix option (0b2b9fd )
client: Add syncplane/testing for easier testing (e8df539 )
client: Add useQueryAll hook for React (7a589e4 )
client: Batch include hydration and add per-relation options (b539af2 )
client: Cache movable lists (19f3f12 )
client: Coalesce a burst of local writes into one push (1f15878 )
client: Cut local index storage by a third and speed up entity scans (818de3d )
client: Examine large semi-join membership moves in probe-sized batches (f7bcb5e )
client: Fast path for search postings (5bf4da2 )
client: Hydrate include trees with one read per relation instead of one per row (14d2d8b )
client: Improve bootstrap performance by overlapping decoding with store writes (a84ca1e )
client: Improve query and indexing speeds (cdd2cac )
client: Improve querying performance with focus on total counts (b6fd692 )
client: Local queries report which path answered them through onSyncEvent (e2d0e52 )
client: Push the changes that happened mid-push before pulling (4e0ff7c )
client: Rank a byWorkspace query by relevance (9d2dd81 )
client: Read rows across workspaces by ref, and add useRowsAll (47db376 )
client: Read rows by key without deriving the entity, and add useRows (a8e450c )
client: Scope cross-workspace reads to named workspaces (d276525 )
client: Serve cross-workspace queries from secondary indexes (b96cb5f )
client: Serve indexed queries as soon as a cold bootstrap completes (92d346a )
client: Speed up watcher scope prune (bd1f16c )
client: Support for scoped undo management (e11e7f2 )
client: Support movable window and totals for live query results (8a35d42 )
Cross-namespace referencing of objects (3b5f9eb )
engine: Add MaxResyncScan to bound delta-resync work per Pull (e05bda2 )
engine: Add work queries so maintenance passes skip idle workspaces (4fbdf46 )
engine: Batch queued pokes into one NOTIFY round trip (fccfdb6 )
engine: Dedup background work across nodes with per-workspace leases (8e2f6a4 )
engine: Enumerate index candidates by key without reading the rows twice (56a6e7b )
engine: Hash-partition support for pgstore (41f1593 )
engine: Improve background index build performance (421c234 )
engine: Judge pgstore compatibility by what migrations did not version (e48addd )
engine: Let a deployment turn off SQLite's memory-mapped reads (3916fc5 )
engine: Let text compaction run as its own sweep instead of as part of GC (e84ca8d )
engine: Load data in batches when querying via index (d417b29 )
engine: Maintain a forward follow closure from what changed instead of rebuilding it (8667aea )
engine: Prepare SQLite statements once per pool and reuse them across transactions (35cc870 )
engine: Read a row's recorded actor and version through GetMeta (337b588 )
engine: Refuse text inside repeated/map elements and list identities inside a oneof (f3f5c2f )
engine: Serve delta resync from indexes instead of scanning the workspace (cd4a4dd )
engine: Serve partial bootstraps from indexes, closures and windows (bb8496b )
engine: Speed up following subscriptions (e2475d6 )
engine: Subscribe to a workspace set through one wake channel instead of a goroutine per scope (9c785e9 )
engine: Wake the listener for a new channel without dropping its session (c342eca )
engine: Write only the index entries a row write changes (37a782b )
Entities can now declare who may create and update their rows (aa1e2fa )
Faceting support for queries (1703088 )
Feed cursors now name the store that issued them for safety (88a4474 )
Improve performance of pull via incremental window and closure membership (92ee35d )
Improve querying and indexing for maps (eee9ba7 )
Initial version (04e6d1e )
Introduce presence via the concept of rooms (97a7521 )
Limit workspace names to ASCII alphanumerics and a few control characters (9c26b21 )
Make text compaction linear in document size (6401917 )
Merge repeated workspace-qualified references per element, (74d4a96 )
Persist cursor membership to avoid large cursors on the client (3bd3e34 )
Pick the narrowest ordered index for queries, not the first declared (0365802 )
Read the first rows of each group instead of every row (cd02056 )
Reduce cost of seeking with cursors (67622d0 )
Serve or filters, BETWEEN ranges and presence checks from indexes (5be1341 )
server: Clients no longer receive tombstones for hidden rows they never held (262fcf4 )
Stable reverse relation names and ability to give them specific names (dafe976 )
Store write attribution as subject/system (6cd0587 )
Support for before/after cursors for queries (907e53c )
Support for storing history of entities (77c7355 )
Support serving data from read-replicas when using Postgres (4919952 )
Support syncing a row on-demand via holding it (70b7f1a )
Warn when trying patch a row that doesn't exist (fc2deb9 )
Bug Fixes
A live subscription no longer restates the client's whole membership on every change (8317047 )
A rejected edit no longer vanishes silently when a push response is lost (b2f2d62 )
client/react: Make useRow's compare-and-swap opt-in (523d9a9 )
client: A dead-letter that fails mid-way no longer wedges the queue (e6a7af6 )
client: A mutation the server fails no longer wedges the queue forever (475ef59 )
client: Adding a workspace mid-session no longer drops its queued edits (0f0f1d5 )
client: An unapplicable queued mutation no longer wedges a workspace (d4edfd5 )
client: Close mutation-id gaps that can wedge a workspace queue (8dd7555 )
client: Edits made after a store format upgrade no longer go missing (4dcc222 )
client: Fold pending mutations that share a CAS guard (2548b97 )
client: Other tabs no longer lose edits after a store format upgrade (a803748 )
client: Re-adding a purged workspace no longer breaks future editing (fd28944 )
Clients no longer re-bootstrap per text edits to an undecodable entity (474c80f )
client: Spread reconnects across the whole backoff window, and pace the presence stream (9b816c7 )
client: Stop a compaction from dropping typed text and re-sending a barrier mutation (7faf1a6 )
client: Stop online edits from stalling behind full-scope watch rescans (7c81015 )
client: Text editing no longer dies with a "different placement" merge conflict (ab0d6f5 )
client: Text writer identities stay unique in browsers without Web Locks (0e03508 )
client: Undoing a delete now conflicts instead of overwriting a row that took the key (64ae63b )
client: Whole-value text writers now coalesce into word-sized undo groups (9767f75 )
engine: Stop a co-present user from evicting or overwriting another's presence (a652cfb )
engine: Stop a paged pull from skipping a tombstone GC removed at the cursor's version (864a847 )
engine: Stop a pull from issuing three queries per changed row of a followed window (0835479 )
engine: Stop GC from letting an old push overwrite newer writes (e0fa49b )
engine: Stop leaking authentication errors to clients (7d879cc )
engine: Stop losing followed rows after changing subscriptions (eca80c1 )
engine: Stop one-row change from costing a full referrer scan per included target on Pull (d03698c )
engine: Stop the pull after a subscription change from shipping text deltas for rows the client never received (b336cbb )
engine: Stop windowed pulls on PostgreSQL failing after a change-log scan (2994a56 )
Performance Improvements
Ack a whole push batch with one watermark write per client (6b68d44 )
client: Apply projected decoding and size-based index pricing to groupCount, distinct and groupRows (44b90e8 )
client: Decode only the fields needed for queries, for example for pure filtering and factes (67b1256 )
client: Decode only the searchable fields when a match query falls back to a scan (d76b0ba )
client: Keep local queries fast when many writes are waiting to sync (5c3151c )
client: Memoize descriptor-derived reference and field-behavior lookups (5ed51f0 )
client: Overlap IndexedDB reads with row decoding on full-entity scans (eac49cb )
client: Read index-served rows in bulk instead of one IndexedDB request per row (3c409e4 )
client: Skip the second IndexedDB round trip when a local edit notifies watchers (f4896bb )
client: Stop decoding every pending row whole on each indexed query (07005f1 )
client: Store search positions in their own record so most row updates skip them (619802f )
engine: Batch of mutations to PostgreSQL (405da77 )
engine: Make Postgres pushes faster by inserting only new index entries (67210d2 )
engine: Reduce number of Postgres roundtrips needed to answer a catch-up pull (7bb6962 )
engine: Resolve followed reference targets in batches (e06db1b )
Keep a live query over a large result fast by rebuilding only the rows a write moved (ed73a53 )
Make local edits faster by reading a write's rows in one IndexedDB transaction (af0951a )
Serve faceted queries from the index instead of a full scan when beneficial (c6fc5bd )
You can’t perform that action at this time.