Skip to content

docs: Zero 1.12 release notes - #335

Merged
arv merged 4 commits into
mainfrom
arv/release-notes-1.12
Nov 12, 2026
Merged

arv merged 4 commits into
mainfrom
arv/release-notes-1.12

Conversation

@arv

@arv arv commented Nov 11, 2026 •

Copy link
Copy Markdown
Contributor

Adds the Zero 1.12 release notes, plus the docs for what ships with 1.12.

What's in it

  • release-notes/1.12.mdx and an index entry. The notes cover:

    • Synced aggregates, groupBy/distinct and JSON path filters.
    • RMv2 replication-manager slots and server-validated user IDs.
    • Performance charts and fixes.
    • Breaking changes.
    • Security, which links to the 1.11.5 notes, since 1.12 carries the same fixes.

    Commit links point to rocicorp/mono, in the same style as the 1.11.5 notes.

  • zql.mdx: aggregates, distinct, groupBy and JSON path filters. This restores the docs that revert(zql): remove JSON path filter docs until the feature ships #330 and Revert "docs(zql): document aggregates" #331 reverted until the features ship.

  • zero-cache-config.mdx: ZERO_PRE_DRAIN_DELAY_MS, ZERO_AFFINITY_COOKIE_NAME, ZERO_ENABLE_HEAPZ and ZERO_UPSTREAM_PG_REPLICATION_SLOT_PER_REPLICA.

Performance numbers

All numbers compare zero/v1.11.0 with the 1.12 release branch, maint/zero/v1.12. They are medians across alternating runs on an M5 Pro.

  • Server hydration and incremental updates: 10 processes per ref.
  • Query planning: 10 processes per ref.
  • React Native cold start: release builds, 5 launches per ref, on the Android emulator and the iOS simulator. A phase that doesn't touch Zero code is used as a control, and it stays flat.
  • Many connections: apps/zero-throughput with 600 clients, 100 writes/s and one sync worker, 10 runs per ref. The sync worker uses 2.11 cores on 1.11 (range 1.50 to 2.25) and 1.11 cores on 1.12 (range 1.06 to 1.12). p99 lag also dropped, but its ranges overlap, so the note doesn't claim it.

Still open (why this is a draft)

  • Timing: merge with the 1.12.0 stable release.

Adds the 1.12 release notes and the docs for what ships with it: aggregates, groupBy, distinct and JSON path filters in ZQL (restoring what was reverted until the features ship), and the drain, heapz and per-replica slot config options.
@vercel

vercel Bot commented Nov 11, 2026 •

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated
zero-docs Ready Ready Preview Nov 12, 2026 10:26am UTC

Request Review

@arv
arv marked this pull request as ready for review November 12, 2026 11:10
Copilot AI lite review requested due to automatic review settings November 12, 2026 11:10
@arv
arv added this pull request to the merge queue Nov 12, 2026
Merged via the queue into main with commit f428895 Nov 12, 2026
7 checks passed
@arv
arv deleted the arv/release-notes-1.12 branch November 12, 2026 11:11

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 Changes recommended

Active documentation issues remain: the release charts lack independently verifiable benchmark evidence, and the ZQL documentation mis-scopes and incompletely documents the new JSON-path aggregate API.

3 open issues
What changed in this PR

Adds draft Zero 1.12 release documentation covering new query APIs, operational configuration, performance results, fixes, security updates, upgrade guidance, and breaking changes.

Changes:

  • Adds the Zero 1.12 release notes and lists them in the release-notes index.
  • Documents JSON path filters, aggregates, distinct(), and groupBy() in ZQL.
  • Documents new zero-cache configuration options for draining, affinity cookies, heap snapshots, and replication slots.
File Description
contents/​docs/​zql.mdx Documents JSON path filters and aggregate, distinct, and grouped query APIs.
contents/​docs/​zero-cache-config.mdx Documents new zero-cache lifecycle, affinity-cookie, heap-snapshot, and replication-slot configuration options.
contents/​docs/​release-notes/​index.mdx Adds Zero 1.12 as the latest entry in the release-notes index.
contents/​docs/​release-notes/​1.12.mdx Adds the Zero 1.12 release notes, including features, performance results, fixes, security information, upgrade guidance, and breaking changes.

Review effort: Lite

Comment on lines +72 to +74
When a client connects or adds a query, `zero-cache` has to hydrate it: run it against the replica and send the results. In Zero 1.12 this takes about **1.2x less CPU**, and about **1.8x less** for queries with `whereExists`, which are common because permissions use them. We measured 100 client groups on one sync worker, each hydrating its user's top issues with their latest comments. ([6563d5751](https://github.com/rocicorp/mono/commit/6563d5751), [70c771950](https://github.com/rocicorp/mono/commit/70c771950), [c2882cba0](https://github.com/rocicorp/mono/commit/c2882cba0), [5a5fb1af1](https://github.com/rocicorp/mono/commit/5a5fb1af1), [c9c34d145](https://github.com/rocicorp/mono/commit/c9c34d145), [f7233246c](https://github.com/rocicorp/mono/commit/f7233246c), [ae794cc0e](https://github.com/rocicorp/mono/commit/ae794cc0e))

<BenchmarkComparisonChart
Comment thread contents/docs/zql.mdx
)
```

`json` can only be used inside a callback, as the first argument to `cmp`. It works with all the comparison operators, and it can be combined with `and`, `or`, `not`, and `exists` like any other `cmp`.
Comment thread contents/docs/zql.mdx

Zero computes aggregates on the server and syncs only the result, so counting thousands of comments doesn't download them. The value stays up to date as rows change. `where()`, `start()`, and `limit()` apply before the aggregate, just like in SQL, so they have to come before it: `zql.issue.orderBy('created', 'desc').limit(10).avg('numVotes')` averages the ten newest issues.

`sum()` and `avg()` take numeric columns, while `min()` and `max()` also accept string columns. Over no rows, `count()` returns `0` and the others return `null`.

This branch was successfully deployed

1 active deployment
Preview — 522d104a Deployed Nov 12, 2026 by vercel[bot]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants