mirror of
https://github.com/ModernRelay/omnigraph.git
synced 2026-06-12 01:45:14 +02:00
The v0.6.2 notes omitted the MR-770 `__run__` cleanup entirely, and the v0.6.1 notes wrongly claimed it shipped in v0.6.1. The code (the `migrate_v2_to_v3` `__manifest` sweep + `is_internal_run_branch`/`run_registry.rs` removal) first appears at the v0.6.2 tag via #132 and is absent at v0.6.1. - v0.6.2: add the MR-770 highlight, correct the manifest-stamp note to describe the v2→v3 auto-migration on first read-write open (with the read-only caveat), and mention the cleanup in the intro. - v0.6.1: replace the two over-claiming `__run__` lines with corrections that point to v0.6.2. Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
4.3 KiB
4.3 KiB
Omnigraph v0.6.1
v0.6.1 focuses on operational polish after v0.6.0: stored-query registries, safer branch cleanup, more complete release artifacts, and a Lance blob-compaction workaround.
Highlights
- Stored-query registries.
omnigraph.yamlcan declare curatedqueries:blocks per graph. Servers load and type-check them at startup,omnigraph queries validatechecks them offline,omnigraph queries listshows exposed queries and typed params,GET /queriesexposes a typed catalog, andPOST /queries/{name}invokes a stored query without accepting ad hoc.gqsource from the client. - Stored-query policy gate. New Cedar action
invoke_querygates the stored-query invocation surface. Stored mutations are double-gated:invoke_queryto reach the stored query andchangefor the actual write. - Safer branch deletion.
branch_deletenow treats the manifest as the authority, flips branch visibility atomically, and reclaims per-table/commit-graph forks as derived state. If best-effort reclaim is interrupted,cleanupreconciles orphaned forks; reusing a branch name before cleanup reports an actionable error. - Legacy
__run__cleanup (MR-770). (Correction: this item shipped in v0.6.2, not v0.6.1 — the v0.6.1 notes over-claimed it. At the v0.6.1 tag the__run__branch-name guard andrun_registry.rswere still present and no v2→v3 sweep migration existed.) The guard removal and the one-time v2→v3__manifestmigration that sweeps stale__run__*staging branches on first read-write open are described in the v0.6.2 release notes. - Blob-safe optimize.
omnigraph optimizeskips tables withBlobproperties instead of failing the whole sweep on Lance's blob-v2 compaction decode bug. Skips are visible in human output,--jsonasskipped,TableOptimizeStats.skipped, and logs; non-blob tables still compact normally. - Deployment improvements. The container entrypoint now composes
OMNIGRAPH_TARGET_URIwithOMNIGRAPH_CONFIG, so operators can keep the graph URI in env while loading policy/query config from a mounted file. The local RustFS bootstrap pins RustFS beta.3 and allows the current insecure local-dev default credentials. - Windows release support. Tagged and edge releases now publish Windows x86_64 archives containing
omnigraph.exeandomnigraph-server.exe, with a PowerShell installer and Windows install docs. - Release tooling. Homebrew formula generation was tightened to produce audit-clean formulas.
Compatibility Notes
- A graph selected by name (
--targetorserver.graph) now usesgraphs.<name>.policyandgraphs.<name>.queries. Top-levelpolicy/queriesblocks are only for anonymous bare-URI single-graph mode; using them with a named graph now fails loudly with migration guidance. mcp.exposedefaults totruefor stored-query registry entries. Setmcp: { expose: false }for service-only queries that should not appear in the catalog.invoke_queryis graph-scoped, not branch-scoped. Branch/snapshot access remains enforced by the innerread/changegate.- Legacy
__run__migration. (Correction: deferred to v0.6.2.) The automatic v2→v3__manifeststamp migration that sweeps stale__run__*branches on first read-write open ships in v0.6.2, not v0.6.1; a v0.6.1 binary does not perform it. See the v0.6.2 notes for the migration behavior and the read-only caveat. - Blob tables are not compacted until the upstream Lance fix lands, so fragment count and deleted-row space on blob tables are not reclaimed by
optimize. Reads, writes, and query results are unaffected; no on-disk migration is required. TableOptimizeStatsis now#[non_exhaustive]and gains askipped: Option<SkipReason>field (so does the newSkipReasonenum). This is a source-level change only for downstream code that built this returned result struct by literal — rare, since it is produced byoptimizeand consumed by reading its fields; field access is unaffected, and#[non_exhaustive]keeps future additions non-breaking.
Docs And Cleanup
- Public docs were updated for stored queries, policy, server routes, deployment, Windows installation, branch deletion, maintenance, and the
runsdocs rename towrites. - README copy and release documentation were refreshed; older release notes had small typo/wording fixes.