omnigraph/crates
aaltshuler fd002abaa5 feat(cluster): port the storage backend to the engine StorageAdapter
LocalStateBackend becomes ClusterStore: every stored byte — state ledger,
lock, recovery sidecars, approval artifacts — now flows through the
engine's StorageAdapter, making file:// and s3:// one code path. Behavior
on the file backend is byte-compatible (layout, CAS semantics, diagnostics,
lock release timing) and the entire pre-existing suite passes unchanged.

Mechanics: the ledger CAS keeps its public sha256 vocabulary while the
physical swap is token-conditioned (ETag If-Match on S3 via PR #186's
primitives; content-token + temp/rename locally — the pre-port semantics);
the lock is a create-only put (genuinely cross-machine on object stores)
with deterministic drop-release locally and best-effort spawned release on
S3; sidecars/approvals address by URI (SweepOutcome and the executors carry
strings); sweep row-1 retirement joins the uniform deferred post-CAS
cleanup. ClusterStore also gains the catalog-payload and graph-root
methods that commit 2 wires in.

Async ripple: status/force-unlock/serving-snapshot and the server's
settings loader chain go async (CLI dispatch and ~20 test hosts follow,
mechanically). tokio joins the cluster crate's runtime deps for the lock
guard's handle.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-06-11 14:11:14 +03:00
..
omnigraph feat(storage): versioned CAS, conditional replace, and prefix delete on StorageAdapter 2026-06-11 05:09:45 +03:00
omnigraph-cli feat(cluster): port the storage backend to the engine StorageAdapter 2026-06-11 14:11:14 +03:00
omnigraph-cluster feat(cluster): port the storage backend to the engine StorageAdapter 2026-06-11 14:11:14 +03:00
omnigraph-compiler release: v0.6.2 2026-06-09 15:59:59 +02:00
omnigraph-policy feat(policy): from-source twins for the policy loaders 2026-06-11 05:09:45 +03:00
omnigraph-server feat(cluster): port the storage backend to the engine StorageAdapter 2026-06-11 14:11:14 +03:00