Skip to content

Release 0.135

v0.135.0 — 2026-07-15

Tables v2.1: multi-tab workbooks + cross-tab reference columns. One Table is now one SQLite workbook of N tabs (the Excel model): a tab bar switches sheets, spreadsheet imports land every sheet as a tab of one node (the sheet→tab flip — no more sibling tables), and a bare single-tab doc stays byte-compatible with v2. New reference columns (type: 'reference') offer values from another tab’s column, Excel data-validation style — soft integrity (free text allowed, dangling values flagged in the profile, degrade-to-text with values intact when a source is removed). An embedded schema layer (data dictionary + join edges) backs table_sql and rides the corpus map as a schemaDigest. The grid autosaves as op batches (diffTableDocs → the draft_rev etag), scaling edits past the 10k window; reference cells get a lazy typeahead editor (?distinct= on the rows route).

Shipped after a 3-reviewer adversarial audit; every confirmed finding fixed in the same release. Notable fixes: formula↔stored column retypes are now DDL (a retype used to leave the file unreadable); new-row runs and top-of-grid inserts persist in the right order (op round-trip is now applyOps(X, diff(X,Y)) === Y); autosave no longer drops edits typed during an in-flight save; the whole-doc guards and truncation caps are draft-aware; PUT /draft carries the if_rev etag; and file-replacing renames sweep stale -wal sidecars first. The draft-ops route is now validated with a strict per-op schema.

Deploy: tag-only bump — no migration, no compose change. The table-dbs mount and migration 0120 shipped with v0.134.0; v2.1 is code-only. Skill bodies (table_authoring, tool_grounding) force-sync on the version bump.