What shipped, when.
Per-product release notes for the three projects. Tagged releases
appear here; ongoing work is on each repo's main.
-
v0.2.0 — production-readiness
Six engineering streams that turn v0.1's "real persistence + self-host story" into a workload you can put real users on. Co-edit divergence becomes recoverable (transient-vs-permanent classifier, retry with backoff, click-to-expand dead-letter). The gateway gets per-IP throttling + a hard room cap with LRU eviction. First measured baseline (~1900 req/s, p99 < 3 ms) + a capacity model with five deployment tiers (Solo $5/mo → Sharded linear). Toast surface across the app. Typed Univer facade — 27 caller-side as-any sites eliminated.
Read full notes → -
v0.2.1 — drawing-sync fix + measured WS ceiling
Patch release closing the last two known production-readiness gaps. (1) A drawing (image or chart) inserted by peer A did not appear on peer B; root cause was the bridge's deepRewriteUnitId only swapping unitIds at object keys, missing the unitId embedded at position [0] of the json1 op path (positional array). New rewriteJson1OpPathUnitId helper fixes it. (2) WS-side load harness lands with measured numbers: 1500 concurrent WS clients × 30 s, sustained 350 updates/s aggregate, p99 broadcast latency 3.2 ms, zero dropped records. The capacity model's "~500 active docs latency knee" prediction was ~10× too conservative; real binding constraint at that size is RAM, not broadcast CPU.
Read full notes → -
v0.0.3 — 100% fidelity + verified co-edit
Round-trip fidelity hits 44/44 fixtures pristine = 100%. Live co-editing verified end-to-end with a 5-second smoke (multi-peer text fan-out, awareness, live filename rename). New: page color, wordCompat React prop, drawing-fidelity audit, mobile format chip.
Read full notes → -
v0.1.1 — patch stability
Patch release: Excel-style typed input (currency · percent · negative-in-parens · non-USD symbols) parses as numbers; formula engine triggers initial recalc on workbook mount + swap; mobile lane regressions cleaned up (desktop toolbar hides at ≤480 px, autosave banner no longer clipped); e2e stability fixes that unblock long CI runs.
Read full notes → -
v0.1.0 — WOPI host, JWT auth, admin panel
The first version-bumped release. Real persistence via WOPI (memory · local · S3 · Postgres), JWT-secured access with role + permission + feature claims, a runtime admin panel for branding · storage · networking · room limits · auth providers · webhooks, OCI image labels + rolling-tag scheme, complex pivot cache passthrough (audit 54/54 pristine), and a full self-hosting + customization docs section on schnsrw.live.
Read full notes → -
v0.0.2 — public preview
Casual Editor opens the public preview. Home gallery with 14 real .docx templates, stateless Go gateway implementing the y-websocket protocol in ~120 LOC, three-way fidelity harness vs LibreOffice and OnlyOffice, 26 of 39 fixtures round-trip pristine.
Read full notes → -
v0.0.5 — feature breadth + co-edit fidelity
Phase 4 closes: Charts P1–P5b shipped, Pivot Tables P0, conditional formatting and data validation co-edit synced, drawings synced, autosave with restore banner, ODS fidelity, and 30+ Excel keyboard shortcuts.
Read full notes → -
v0.0.6 — Excel-parity wave
Phase 5 closes the Excel parity gap: Pivots P1 + drill-down, Sparklines, Goal Seek, Name Manager, Flash Fill, dark theme, Recent Files landing, Paste Special, server-side view-only enforcement, and 357 e2e tests.
Read full notes → -
v0.0.4 — Phase 3 presence + history
Peer cursors on the grid, live-typing ghost, presence avatars with last-seen, "Out of sync" pill, and a session-history side panel with per-room op log and revert.
Read full notes → -
v0.0.3 — Phase 2 co-edit shipped
Hocuspocus server + Yjs bridge, room lifecycle, share URL, password-protected rooms, view-only role, Redis persistence option, joiner fast-path, op-log compaction, and the single-port self-hosted Docker image.
Read full notes → -
v0.0.2 — Phase 1 single-user editor
Office-style ribbon, formula bar, status bar, full xlsx / ods / csv / tsv I/O on a worker, and the first Excel keyboard-shortcut sweep.
Read full notes →