# Omnigraph v0.6.2

v0.6.2 is a maintenance-safety release on top of v0.6.1. It tightens the
`optimize` / recovery boundary, adds an explicit repair path for uncovered
manifest/head drift, completes the legacy `__run__` branch cleanup (MR-770),
accepts pretty-printed JSON load input, and updates the project governance and
release automation around those fixes.

## Highlights

- **Explicit `omnigraph repair`.** New `repair` CLI support previews uncovered
  manifest/head drift by default and reports each table's classification,
  action, manifest version, Lance HEAD version, Lance operations, and any
  classification error. `--confirm` publishes verified maintenance-only drift;
  `--force --confirm` can publish suspicious or unverifiable drift after
  operator review.
- **Optimize skips uncovered drift.** `omnigraph optimize` now refuses to
  interpret Lance HEAD movement that is ahead of `__manifest` without a recovery
  sidecar. Those tables are reported as `skipped: DriftNeedsRepair` and left
  untouched until `omnigraph repair` classifies them.
- **Optimize publishes compaction.** Successful compaction now publishes the
  compacted Lance version back through the graph manifest and is covered by an
  `Optimize` recovery sidecar. A crash after Lance compaction but before
  manifest publish converges through the normal recovery sweep instead of
  leaving hidden drift.
- **Recovery roll-back convergence.** Recovery roll-back now aligns the
  manifest-visible version after restoring a table, closing the residual where
  Lance HEAD and `__manifest` could stay out of sync after recovery.
- **Legacy `__run__` branch cleanup (MR-770).** Completes the retirement of the
  Run state machine (removed in v0.4.0). A one-time v2→v3 `__manifest`
  internal-schema migration runs on the first read-write open and deletes any
  stale `__run__*` staging branches left by pre-v0.4.0 graphs — they previously
  leaked into `branch list` and counted as blocking branches at `schema apply`
  time. The migration is idempotent, and the `is_internal_run_branch` guard
  (and `run_registry.rs`) is retired now that `__run__*` is an ordinary branch
  name. (The earlier v0.6.1 notes described this as shipped in v0.6.1; it
  actually landed here in v0.6.2.)
- **Pretty-printed JSON load input.** `load` accepts multi-line JSON objects in
  addition to one-object-per-line JSONL, so formatted fixture or export files no
  longer need to be minified before import.

## Operational Notes

- `repair` requires a clean recovery state. Pending `__recovery` sidecars still
  belong to automatic open-time recovery; reopen the graph first, then run
  repair if drift remains.
- `repair --confirm` only auto-publishes drift made of Lance maintenance
  operations (`Rewrite` and `ReserveFragments`). Semantic operations such as
  append, delete, update, and merge are refused unless the operator uses
  `--force --confirm`.
- `optimize` remains non-destructive. It still skips blob-bearing tables while
  OmniGraph is pinned to the Lance version with the blob-v2 compaction issue.
- No manual on-disk migration is required. Existing graphs open under v0.6.2.
  Graphs already at internal manifest schema stamp v3 are unchanged; graphs
  created before v0.4.0 that still carry the v2 stamp auto-migrate v2→v3 on the
  first **read-write** open (the `__run__*` sweep above). The migration is
  write-path-only, so a long-lived **read-only** deployment still lists any
  stale `__run__*` branch until it is next opened read-write.

## Docs, Governance, And CI

- Added issue, discussion, RFC, and pull-request templates plus governance docs
  for the external contribution path.
- Regenerated CODEOWNERS tables and adjusted branch-protection docs so code
  owners can bypass required PR review where repository rules allow it.
- Trimmed Windows release builds out of per-PR CI and kept Windows packaging on
  tag releases.
- Made Homebrew audit diagnostic-only in the release workflow so a flaky audit
  cannot block publishing an otherwise valid formula update.
