omnigraph/docs/releases/v0.7.1.md
Andrew Altshuler b38b36e48f
release: v0.7.1 (#290)
Patch release over v0.7.0: three correctness fixes (#283 camelCase filters,
#284 cluster-apply crash-loop, #277 branch-merge OOM on embedding tables), the
#280 queries-list catalog-metadata improvement, and the #268 warm-read perf
fix. No breaking changes, no on-disk format change, no migration.

Version coherence: all 7 crate manifests + path-dep constraints, Cargo.lock,
openapi.json, and AGENTS.md surveyed version bumped 0.7.0 -> 0.7.1. Full
workspace gate green (1472 tests).


Claude-Session: https://claude.ai/code/session_01FQ1Hf4eXLsJmeLUkTYBEw7

Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-19 23:12:44 +03:00

3.8 KiB
Raw Blame History

Omnigraph v0.7.1

A patch release on top of v0.7.0: three correctness fixes (camelCase filters, cluster-apply crash loops, branch-merge OOM on embedding tables), one CLI catalog-metadata improvement, and a warm-read performance fix. No breaking changes, no on-disk format change, and no migration — drop-in over v0.7.0.

Fixes

  • camelCase property filters now execute (#283). A query — or a chained mutation — that filtered on a camelCase schema field (e.g. repoName) linted and planned cleanly but failed at run time with No field named reponame. Column names are case sensitive. The identifier's case was destroyed at two engine→Lance boundaries: the read-filter pushdown built the column with a case-normalizing constructor, and the pending-batch mutation scan re-parsed the predicate through a normalizing SQL context. Both now preserve case (the read path uses a case-preserving column reference; the pending scan disables SQL identifier normalization), so camelCase fields work consistently in read and write predicates and a camelCase @index equality still routes to the scalar index. The fix is correct-by-construction rather than a per-query guard; a regression test pins index routing so a silent full-scan fallback can't slip back in.

  • cluster apply no longer crash-loops a booting server (#284). Applying a schema change while a graph had non-main (agent/review) branches, or a migration that needed a backfill, could throw a freshly-booting omnigraph-server --cluster into an unescapable crash loop. Neither input is an engine bug — the engine rejects both cleanly and before moving any graph state — but cluster apply wrote a recovery sidecar before calling the engine and left it in place on the clean rejection, and the server refuses to boot while a sidecar is pending. The asymmetric-cleanup path is fixed so a pre-movement rejection leaves no stale sidecar, breaking the loop.

  • Branch-merge fast-forward no longer OOMs on embedding tables (#277). A branch→main fast-forward merge of a forked, embedding-bearing table re-derived the whole branch through a single Lance merge_insert — a full-outer hash join over the entire delta — which exhausted the DataFusion memory pool on high-dimensional embeddings (e.g. 8k rows × 3072-dim) and hung or failed the merge. New rows now stream through stage_append (no hash join), only genuinely-changed rows are upserted, embeddings are no longer stringified to diff them, and index coverage defers to the reconciler, so a fast-forward merge completes in bounded work. The three-way merge path is unchanged.

Improvements

  • omnigraph queries list surfaces stored-query @description / @instruction (#280). The CLI now shows a stored query's catalog metadata — what it does and how to invoke it — in both human and --json output, matching what GET /queries already returned. Previously both fields were silently dropped on the CLI side.

  • Warm reads no longer pay an O(history) metadata tax (#268). Warm reads used to re-derive per-query metadata (coordinator re-open, __manifest + commit-graph re-scans, per-table re-open, double schema validation) on a cost that scaled with commit history and never warmed up. A warm same-branch read now does one cheap version probe, one schema read, and zero table opens on a warm repeat (warm coordinator reuse, open-by-location+version, validate-once, held Dataset handles + one shared Lance Session per graph). This also closes a commit-DAG fork where a same-branch write after an external commit could append off a stale cached head.

Upgrade notes

Drop-in over v0.7.0 — no configuration, schema, or data changes. Upgrade the server and CLI together as usual. Graphs created on v0.7.0 read and write identically on v0.7.1.