omnigraph/docs/releases/v0.8.0.md
Andrew Altshuler 23e838ffa8
docs(release): trim v0.8.0 notes + drop internal RFC references (#322)
* docs(release): trim v0.8.0 notes, drop internal RFC references

Shorten the v0.8.0 release notes to a scannable highlights + upgrade format and
remove internal RFC-track references (RFC-013 Phase 7, step 3a, etc.), which are
not public-inspectable and don't belong in OSS-facing release notes.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* docs(release): widen rebuild note to any pre-v0.8.0 graph

Greptile P1: the version gate blocks any pre-v4 graph (v0.4.x-v0.7.x), not just
v0.7.x. The trim over-narrowed it and left older-release users without a signal.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-02 01:11:19 +03:00

43 lines
2.4 KiB
Markdown

# Omnigraph v0.8.0
The first release with an on-disk format change since v0.4.0. Graph commit
lineage now lives in `__manifest`, the two legacy commit-graph datasets are
gone, constraint validation is unified (and stricter in a few cases), and the
storage-format version is now visible to operators. **Storage is
strict-single-version: a graph from an older release is rebuilt via
export/import, not migrated in place.** Read the upgrade notes before rolling out.
## Highlights
- **Graph lineage moved into `__manifest` (internal schema v4).** The commit DAG
(commits, parents, branch heads, actor) is now written in the same atomic
commit as a graph's table-version rows, closing the crash window where a
manifest version could exist without its lineage. The two legacy datasets
(`_graph_commits.lance`, `_graph_commit_actors.lance`) are no longer created or
read — one fewer moving part and two fewer directory listings per open.
- **Stricter, unified constraint validation.** The loader, mutation, and
branch-merge paths now share one validator, so they can no longer drift. All
changes are stricter (none relax an existing check): enum constraints are
enforced on merge, a `@unique` value that collides with an already-committed
different row is rejected, duplicate-key semantics are precise (a key repeated
within one input batch is rejected; the same id across batches coalesces), and
overwrite loads validate per touched table. A pipeline that unknowingly relied
on one of these gaps will now fail loudly at write time.
- **Storage-format version is visible.** `omnigraph version` prints the format
version this binary serves, `omnigraph snapshot` reports a graph's on-disk
version, and the server `GET /healthz` response includes it.
- **Prebuilt linux-arm64 (aarch64) binaries** now ship alongside Linux x86_64,
macOS arm64, and Windows x86_64, with a matching Homebrew bottle.
## Upgrade
- **Upgrade every binary that touches a graph to v0.8.0 together.** Older-format
graphs are refused on open in both directions: a newer binary refuses an
old-format graph, and an old binary refuses this one.
- **Any pre-v0.8.0 graph is rebuilt, not migrated:** export it with the old binary,
then `init` + `load` with v0.8.0. Data, vectors, and blobs are preserved;
commit history and branches are not carried over. See the
[upgrade guide](../user/operations/upgrade.md).