NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
Go modules · #1975 by repository stars
Last release 3 days ago
05 Oct 2026
Ships on a steady schedule
a new release about every 2 weeks
Nearly every release is documented
notes for 60 of the last 60 stable releases
Nothing withdrawn
no release was ever pulled
7 years old
405 releases · first in 2020
One column per quarter.
Expose cache hit and miss counts as Prometheus metrics by @mr8356 in #2039
Full Changelog: v0.7.23...v0.7.24
Nothing published for this version
Precompute the daily peak sessions per channel by @hackerwins in #1997
Six fixes around one seam — what a tombstone is, and who is charged for it —
plus an unrelated query optimization.
#2000, #2010 and #2012 are document-size accounting. A tree split dropped
sizes that Live was still holding, an attribute stayed charged to Live after it
stopped being the live value, and a tombstoned node's style was charged as
though it were live. Each drifts docSize away from the document it describes,
which matters wherever size is a limit rather than a statistic.
#2005 and #2009 are the collection-correctness pair. A tree split copies an
attribute tombstone, and the copy had no place of its own in GC, so it was
never collected. The heavier one is #2009: recreateFromSpan resolved a
restored node's parent by identity but never by liveness, so a parent
tombstoned since the node was purged still accepted it — a live node placed
under a tombstone, registered and reachable from nothing once the parent was
unlinked. The same PR fixes a snapshot losing a text attribute's removal flag,
where toTextNodes wrote attributes without isRemoved while toRHT always
has. The flag defaults to false on decode, so a tombstoned attribute came back
live stamped with the removal's own ticket — the newest ticket in play, which
therefore wins LWW against every older write. A replica served from a snapshot
rendered formatting a replica that replayed the changes did not, and the two
never reconciled.
#2001 makes a split report its boundary growth to undo/redo
reconciliation, which previously could not see it.
#1997 is unrelated. Peak sessions per channel was setting GetProjectStats
latency against a fixed 3s deadline: the window total repeated the series'
scan, and peak was the only metric whose cost scaled with channels x days —
about 280k rows for a 3-month window on a project with ~4,900 channels, while
every other metric stayed under 0.7s. The total is now reduced in Go from the
series, and sum_session_peak_daily stores the finished daily peak as one
BIGINT per (project_id, dt), so the same window reads about 91 rows.
Operators: #1997 requires
sum_session_peak_dailyto exist and be
backfilled before this version rolls out. The server's coverage probe reads
every summary table in one round trip, so a cluster that lacks the table
fails the probe for every project-stats metric, not just peak, wherever
--starrocks-summary-enabledis on. See yorkie-team/devops#359.
The client half of this release ships in
yorkie-js-sdk v0.7.23.
Nothing published for this version
Emit an object's members in a stable order when encoding by @hackerwins in #1984
Four fixes, splitting into two groups.
#1984 is the convergence-shaped one. Object members were emitted in
whatever order the map yielded, so two servers encoding the same document could
produce different bytes for it. Snapshots are content-addressed downstream and
compared across replicas, so an ordering that varies per process makes equal
documents look unequal.
#1990 corrects document-size accounting for an element removed before it
was ever registered with the root. Its size was booked but never unbooked, so
docSize drifted upward over a document's lifetime — which matters where size
is a limit rather than a statistic.
#1991 and #1993 are YSON hardening. The parser accepted malformed
constructor argument lists instead of rejecting them, and the marshaller
emitted object keys and strings unquoted, producing output it could not read
back. Both are round-trip defects: what came out was not what would go in.
The client half of this release ships in
yorkie-js-sdk v0.7.22,
which carries the same #1990 and #1991 fixes plus the offline-persistence work.
Nothing published for this version
Nothing published for this version
Add the element-restore wire fields and a capability handshake, and stop generated code from drifting by @hackerwins in #1981
Both fixes are convergence bugs rather than crashes — nothing fails loudly,
the replicas simply stop agreeing — which is the argument for taking this
release promptly.
#1978. Undoing an object member's removal restored it and the next
collection pass deleted it again, on every replica except the one that undid,
and on the server, which replays the change log with OpSourceReplay to build
snapshots. The key then disappeared from every snapshot built afterwards and
from every client that later loaded one.
#1980. RGA decides where an insert lands by walking forward from its anchor
over the nodes currently linked into the list, tombstones included — and
collection unlinks exactly those. So collection mutated the input to the
insertion rule, and two replicas differing only in whether it had run ordered
the same later insert differently, with nothing left to reconverge them. All
three RGA-shaped structures were affected: Array, Text and Tree.
The client half of the same element-identity problem ships in
yorkie-js-sdk v0.7.21.
Charts. Only yorkie-cluster moves, to 0.7.21. No commit in this window
touched build/charts/, so yorkie-analytics stays at 0.7.20 and
yorkie-monitoring at 0.7.7.
Full Changelog: v0.7.20...v0.7.21
Add server-side offline-resumable attach (stable actor, resume, epoch) by @hackerwins in #1969
Full Changelog: v0.7.19...v0.7.20
Nothing published for this version
Serve long-retention project-stats windows via decoupled HLL summaries by @hackerwins in #1961
Full Changelog: v0.7.18...v0.7.19
Release candidate for validating the project-stats long-retention dual read ( #1961 ) on the public cluster. Go server only — builds yorkieteam/yorkie
Release candidate for validating the project-stats long-retention dual read (#1961) on the public cluster. Go server only — builds yorkieteam/yorkie:0.7.19-rc. Not a stable release; charts/SDKs unchanged.
Nothing published for this version
Anchor Array.Add on the last node's position identity by @lemon0333 in #1958
Full Changelog: v0.7.17...v0.7.18
Port the JS SDK's undo/redo history layer to the Go SDK by @hackerwins in #1932
Full Changelog: v0.7.16...v0.7.17
Keep a document loadable when two tree nodes share one ID by @hackerwins in #1927
Full Changelog: v0.7.15...v0.7.16
Speed up GetProjectStats with approximate, concurrent reads by @raararaara in #1925
Full Changelog: v0.7.14...v0.7.15
Identity-preserving restore for Tree undo/redo by @harrykim8672 in #1893
Full Changelog: v0.7.13...v0.7.14
Nothing published for this version
Nothing published for this version
Identity-preserving restore for Text undo/redo (server + wire) by @harrykim8672 in https://github.com/yorkie-team/yorkie/pull/1875
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Add disable_presence Document option for presence-free docs by @raararaara in https://github.com/yorkie-team/yorkie/pull/1841
Nothing published for this version
Add per-project ChannelSessionTTL with admin override by @hackerwins in https://github.com/yorkie-team/yorkie/pull/1827
Nothing published for this version
Support wildcard patterns in Project.AllowedOrigins by @hackerwins in https://github.com/yorkie-team/yorkie/pull/1810
Channel RPC consolidation + PeekChannel by @JOOHOJANG in https://github.com/yorkie-team/yorkie/pull/1805
Reduce lock contention in channel manager for high-concurrency skew by @raararaara in https://github.com/yorkie-team/yorkie/pull/1786
Support IntegerDedupCnt in YSON serialization with HLL round-trip by @hackerwins in https://github.com/yorkie-team/yorkie/pull/1774
Nothing published for this version
Add shared secret authentication for ClusterService by @hackerwins in https://github.com/yorkie-team/yorkie/pull/1770
Nothing published for this version
Remove deprecated yorkie-argocd Helm chart by @hackerwins in https://github.com/yorkie-team/yorkie/pull/1748
Fix tree style divergence on concurrent split via End-token guard by @hackerwins in https://github.com/yorkie-team/yorkie/pull/1731
Add StyleByPath and RemoveStyleByPath for Tree by @hackerwins in https://github.com/yorkie-team/yorkie/pull/1717
Nothing published for this version
Nothing published for this version
Add zstd snapshot compression and external body storage to prevent 16MB overflow by @hackerwins in https://github.com/yorkie-team/yorkie/pull/1704
Nothing published for this version
Add tree-level schema support by @hackerwins in https://github.com/yorkie-team/yorkie/pull/1691
Add undo/redo design document for CRDT operations by @hackerwins in https://github.com/yorkie-team/yorkie/pull/1686
Nothing published for this version
Add attributes_to_remove support to Operation.Style for text undo/redo by @hackerwins in https://github.com/yorkie-team/yorkie/pull/1678
Add cluster RPC and client timeout configurations by @emplam27 in https://github.com/yorkie-team/yorkie/pull/1665
Add MCP server for AI-assisted document migration by @hackerwins in https://github.com/yorkie-team/yorkie/pull/1659
Refine shard key routing logic in Envoy Lua filter by @raararaara in https://github.com/yorkie-team/yorkie/pull/1649
Nothing published for this version
Introduce lock-free PathTrie for channel and path indexing by @emplam27 in https://github.com/yorkie-team/yorkie/pull/1644
Batch cluster.GetChannels to reduce cluster RPC calls by @emplam27 in https://github.com/yorkie-team/yorkie/pull/1636
Nothing published for this version
Enhance project caching with secret key support by @emplam27 in https://github.com/yorkie-team/yorkie/pull/1621
Improve Project Caching and Invalidation Consistency by @emplam27 in https://github.com/yorkie-team/yorkie/pull/1600
Introduce GetRevision RPC and fix revision restore by @hackerwins in https://github.com/yorkie-team/yorkie/pull/1595
Nothing published for this version
Nothing published for this version
Collect active channel and session metrics by @emplam27 in https://github.com/yorkie-team/yorkie/pull/1588
Your coding agent can read these notes before it upgrades. Set up the MCP server →