omnigraph/crates/omnigraph
Ragnor Comerford 1c83377d77
fix(engine): force-delete in __run__ sweep for concurrency safety
`migrate_v2_to_v3` ran `Dataset::delete_branch` (= `branches().delete(.., false)`),
which errors "BranchContents not found" if the branch is already gone. Since the
sweep now runs in `Omnigraph::open(ReadWrite)`, two processes opening the same
legacy v2 graph concurrently would race: one wins each delete, the other's open
fails. The migration only claimed idempotency under *sequential* retry.

Switch to `Dataset::force_delete_branch` (= `delete(.., true)`), Lance's
documented path for cleaning up zombie branches, which tolerates an
already-absent branch. The sweep is now idempotent under concurrent runners and
robust to partial/zombie state. Found in self-review; no behavior change for the
common single-open path.
2026-05-31 16:20:45 +02:00
..
examples (feat): multi-graph server mode (#119) 2026-05-28 16:19:31 +02:00
src fix(engine): force-delete in __run__ sweep for concurrency safety 2026-05-31 16:20:45 +02:00
tests refactor(engine): remove the legacy __run__ branch guard (MR-770) 2026-05-31 15:45:32 +02:00
Cargo.toml Rename repo terminology to graph (#118) 2026-05-24 16:46:00 +01:00