Highlights
Adds a format-9 native graph layout, opaque topology keys, edge payloads, and
atomic fresh-build APIs for high-throughput local publication while preserving
the existing public graph model.
What's changed
- Replaced repeated edge-type text in authoritative graph rows and adjacency
indexes with a private edge-type dictionary. Public APIs still accept and
return edge-type strings. - Added opaque node and edge key batch mutation, lookup, keyed-neighbor,
degree, and paged topology-scan APIs through the C ABI and rawzova-sys. - Added atomic trusted and prepared fresh graph builds with input-aligned opaque
keys, ordinal edge endpoints, deterministic ordering, and rollback safety. - Added opaque edge payload storage, batch payload lookup and replacement, and
payload-aware prepared graph construction without duplicating payload bytes
into adjacency indexes. - Added an atomic fresh-build session for predeclared table, FTS, graph, and
vector targets. Graph keys can be returned provisionally for later steps in
the same session and become durable only when the session finishes. - Reduced fresh graph publication overhead with endpoint deduplication, dense
endpoint slots, 256-row prepared loading, deferred index construction, and
scoped SQLite cache tuning. - Added fresh-build ablation and keyed-graph benchmarks plus format-8 rejection,
transaction, fault, C/C++, generated-C, and raw Rust ABI coverage.
Compatibility
- Bumps
.zovaformat_versionfrom8to9. Zova does not migrate
format-8 files in place; export with a compatible format-8 build and import
into a new format-9 database. - Existing graph names, node IDs, edge types, traversal ordering, incremental
APIs, and bound graph-store routing remain compatible. - Opaque keys are database-local row identities. They are not portable public
IDs and are invalidated when their rows or an unfinished fresh-build session
are rolled back. - The new opaque-key, payload, topology-scan, prepared-build, and fresh-build
session APIs are C ABI and rawzova-syssurfaces in v0.25. The safe Rust,
Python, and Go bindings continue to expose their existing graph APIs.
Full Changelog: v0.24.0...v0.25.0