Changelog

What shipped, when.

Per-product release notes for the three projects. Tagged releases appear here; ongoing work is on each repo's main.

  1. Casual Docs v1.2.0 Jul 8, 2026

    v1.2.0 — the installable editor SDK

    Casual Docs ships as one installable npm package — @casualoffice/docs — with a unified, cross-editor contract: documentMode, an on/off event emitter, an imperative handle (getContent/setContent/executeCommand/undo/redo/focus), a features flag-map, editorExtensions, declarative collab and ai props, and iframe + cspNonce style isolation. The same contract ships in @casualoffice/sheets, so a host wires both editors the same way.

    Read full notes →
  2. Casual Sheets v0.16.0 Jul 8, 2026

    v0.16.0 — the installable spreadsheet SDK

    Casual Sheets ships as one installable npm package — @casualoffice/sheets — embedding a full spreadsheet editor with the unified, cross-editor contract: documentMode, an on/off event emitter, an imperative handle (getContent/setContent/executeCommand/undo/redo/focus), a features flag-map, chrome extensions, declarative collab and ai props, and iframe + cspNonce style isolation. The same contract ships in @casualoffice/docs, so a host wires both editors the same way.

    Read full notes →
  3. Casual Desktop v0.0.6 Jul 5, 2026

    v0.0.6 — an on-device AI that actually does the work

    The AI release. Both editors gain a genuinely agentic assistant that plans, edits, and reviews multi-step tasks — running on a local model on your own machine, so your documents never leave it. Plus real Model Context Protocol support to plug in external tools, and a batch of reliability and polish fixes. Installs in place over v0.0.5 via signed auto-update.

    Read full notes →
  4. Casual Desktop v0.0.3 Jun 28, 2026

    v0.0.3 — first hotfix

    A hotfix on the first public binary, from real-world use: open OpenDocument Text (.odt), stop pipe-separated (.psv) files saving as xlsx, make dark mode follow the launcher across both editors, route Print to a PDF on desktop, and use styled in-app dialogs instead of native ones.

    Read full notes →
  5. Casual Desktop v0.0.2 Jun 28, 2026

    v0.0.2 — first public binary

    Casual Desktop ships its first downloadable binary for macOS, Linux, and Windows. A Tauri shell wrapping the Casual Docs and Casual Sheets web cores verbatim — single-user, offline, native file dialogs. Signed in-app auto-update from GitHub Releases.

    Read full notes →
  6. Casual Desktop v0.0.4 Jun 28, 2026

    v0.0.4 — rename on disk, theme that sticks

    A second round of fixes from real use: rename now renames the file on disk, the in-editor light/dark choice survives a restart, the document-open error banner is gone, and the "number stored as text" toast reads properly. Installs in place over v0.0.3 via signed auto-update.

    Read full notes →
  7. Casual Desktop v0.0.5 Jun 28, 2026

    v0.0.5 — files stay on disk

    A storage-hygiene release: on the desktop app your documents are no longer mirrored into browser storage. The file on disk and its on-disk recovery sidecar are the only source of truth — matching the local-only, files-stay-on-disk model. Installs in place over v0.0.4 via signed auto-update.

    Read full notes →
  8. Casual Sheets v0.3.3 Jun 20, 2026

    v0.3.3 — personal mode on root-owned bind mounts

    Patch release. Personal mode crashed with SqliteError: unable to open database file (SQLITE_CANTOPEN) when /data was a bind mount to a root-owned host directory. The image chowned /data at build time, but a bind mount keeps its host ownership at runtime, so the node user could not create users.db. The container now starts as root, an entrypoint chowns the data dir to node, then drops to node via su-exec before launching the server — named volumes, fresh bind mounts, and --user overrides all still work, and the server still runs unprivileged.

    Read full notes →
  9. Casual Sheets v0.3.2 Jun 20, 2026

    v0.3.2 — Docker refresh, Univer 0.25, CasualOffice rebrand

    Docker app refresh — rebuilds and republishes the image so docker pull casualoffice/sheets:latest works again, and folds in the editor + branding work since 0.3.1. The Univer fork is upgraded 0.24 → 0.25 under the hood. The project is renamed to the CasualOffice org: Docker image casualoffice/sheets, npm scope @casualoffice/*, in-app URLs, and the sheet.casualoffice.org subdomain. Adds an Excel active-cell crosshair highlight and a zen full-screen cell editor.

    Read full notes →
  10. Casual Sheets v0.3.1 Jun 11, 2026

    v0.3.1 — personal-mode boot fix + SDK xlsx extraction

    Patch release. Fixes the Docker image so personal mode (Phase C) actually boots — the named data volume was root-owned and the server, dropping to USER node, could not open users.db, so every signup 502d. Default CASUAL_PERSONAL_MODE reverts to none so the anonymous-room demo flow works out of the box. The xlsx import path is extracted into packages/sdk and published as @casualoffice/sheets/xlsx so hosts can load .xlsx into a Univer snapshot without vendoring the parser.

    Read full notes →
  11. Casual Sheets v0.3.0 Jun 8, 2026

    v0.3.0 — personal mode, WOPI host, and the SDK

    Minor release rolling up two large feature batches plus the Univer-fork perf revamp. Phase C adds personal mode — per-user file storage, bcrypt + SQLite auth, HMAC session cookies, file CRUD over HTTP, profiles, and an admin surface. Phase D adds a stateless WOPI host so Casual Sheets embeds inside a WOPI-speaking platform. A new @casualoffice/sheets SDK ships the signing + iframe postMessage protocol. The Univer fork moves to a vendored submodule with five perf patches.

    Read full notes →
  12. Casual Sheets v0.2.0 May 26, 2026

    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 →
  13. Casual Sheets v0.2.1 May 26, 2026

    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 →
  14. Casual Docs v0.0.3 May 25, 2026

    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 →
  15. Casual Sheets v0.1.1 May 25, 2026

    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 →
  16. Casual Sheets v0.1.0 May 24, 2026

    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 casualoffice.org.

    Read full notes →
  17. Casual Docs v0.0.2 May 23, 2026

    v0.0.2 — public preview

    Casual Docs 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 →
  18. Casual Sheets v0.0.6 May 23, 2026

    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 →
  19. Casual Sheets v0.0.5 May 23, 2026

    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 →
  20. Casual Sheets v0.0.4 May 18, 2026

    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 →
  21. Casual Sheets v0.0.2 May 17, 2026

    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 →
  22. Casual Sheets v0.0.3 May 17, 2026

    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 →