Releases: ata-sesli/zova
Release list
Zova v0.25.0
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
Zova v0.24.0
Zova v0.23.0
Highlights
Adds optional bound graph stores, multi-query i8 vector search, and atomic graph batch APIs while hardening the extension and release boundaries.
What's changed
- Added one optional bound graph store alongside object and vector stores, with transparent graph routing after reopen.
- Added graph-store create, bind, info, unbind, and split workflows, plus bound-store diagnostics and self-contained backup, compact, and restore copies.
- Added multi-query i8 cosine search with global, candidate, and CBM-prefilter modes.
- Added atomic graph node/edge batch put and delete APIs across Zig and the C ABI.
- Added profiled directional graph walks with native timing stages and traversal counters through the C ABI.
- Added retained SQLite graph-walk bindings to reduce repeated adjacency binding work without changing traversal semantics.
- Enforced canonical
zova_abi_mincompatibility checks for extension manifests, rejecting malformed, newer, or different-major ABI requirements. - Hardened release packaging by regenerating binding-native snapshots before tests and preserving executable release scripts.
Compatibility
- Bumps
.zovaformat_versionfrom6to7; older Zova builds reject format-7 databases. - Single-file graph storage remains the default. Bound graph storage is optional and limited to one graph store per main database.
- The extension ABI remains pre-1.0. Bundles must declare a compatible
major.minor.patchminimum and should be rebuilt and retested for each Zova minor release.
Full Changelog: v0.22.0...v0.23.0
Zova v0.22.0
Highlights
Introduces the first supported downstream extension-authoring and app-defined SQL function registration path.
What's changed
- Added controlled C ABI registration for application-defined scalar SQL functions and typed callback values/results.
- Added external extension registries that compose with bundled extensions at database open/create time.
- Added experimental extension bundle building, verification, opening, trust, install, and smoke-test workflows.
- Added registry composition, capability, storage-prefix, SQL-hook, and missing-code validation.
- Added C ABI extension bundle open/trust APIs and binding support for the new extension platform.
- Centralized package, ABI, SQLite, Zig, and format metadata in one version module.
- Hardened generated-C builds by gating unavailable dynamic-extension behavior and isolating extension smoke tests.
Compatibility
- Keeps
.zovaformat_version = 6; existing extension metadata is reused. - The downstream extension/function ABI is pre-1.0 and explicitly experimental where documented.
- Controlled registration is the supported path; raw
sqlite3 *access is not the primary integration model.
Full Changelog: v0.21.2...v0.22.0
Zova v0.21.2
Highlights
Adds first-class raw f16 and i8 vector collections and makes the typed vector API canonical across all supported languages.
What's changed
- Added
f32, raw IEEE-754 binary16f16, and signedi8vector element types. - Added element-type-aware storage validation and cosine, L2, and dot-product distance math.
- Added canonical typed vector input/output, batch, candidate-search, and by-ID search APIs.
- Updated SQL vector functions and the search virtual table for typed collections.
- Updated C ABI, Rust, Go, and Python bindings with raw f16-bit and i8 representations.
- Added typed round-trip, ranking, corruption, reopen, backup, and bound-store coverage.
- Hardened generated-C i8 distance builds and exact f32 widening behavior.
Compatibility
- Bumps the experimental
.zovaformat to6for typed vector collection schema. - This is a pre-1.0 vector API transition: legacy implicit-f32 surfaces were replaced by the canonical typed API.
- Raw f16/i8 storage is not automatic quantization; callers supply values in the declared element type.
Full Changelog: v0.21.1...v0.21.2
Zova v0.21.1
Highlights
Hardens Zova's distribution pipeline and makes generated-C/prebuilt artifacts a practical no-Zig downstream path.
What's changed
- Added generated-C release packaging and source-package content verification.
- Bundled Rust sources required by Python source releases and added CI source-sync checks.
- Expanded CI and release matrices to arm64 and hardened GNU/compiler-runtime linking.
- Added position-independent Unix C builds and verified artifacts against the exact release commit.
- Made release uploads safely rerunnable.
- Fixed
trgmsimilarity-ratio overflow/sign handling. - Fixed vector distance conversion to preserve exact f32 widening.
- Added contribution guidance and issue templates.
Compatibility
- Keeps
.zovaformat_version = 5and the existing public storage/extension APIs. - Zig remains canonical source; generated C and prebuilt artifacts are downstream installation options.
Full Changelog: v0.21.0...v0.21.1
Zova v0.21.0
Highlights
Introduces Zova's extension host and proves it with the bundled trgm fuzzy-text extension.
What's changed
- Added namespaced extension manifests, installation metadata, lifecycle hooks, checks, and private storage ownership.
- Added bundled and application-provided extension registries with collision and compatibility validation.
- Added explicitly trusted local dynamic extension bundles; database files never auto-load native code.
- Added extension list/info/install/check/drop/trust CLI workflows.
- Added the target-aware
trgmSQL surface for indexed fuzzy text similarity. - Added C ABI, Rust, Go, and Python extension-management support.
- Added the extension contract and trust-model documentation.
Compatibility
- Bumps the experimental
.zovaformat to5for required extension registry schema. - Dynamic extension loading is explicit and trust-gated;
.zovafiles are not executable packages.
Full Changelog: v0.20.0...v0.21.0
Zova v0.20.0
Highlights
Makes application-defined relationships first-class across Zova records, objects, chunks, vectors, entities, facts, concepts, and external IDs.
What's changed
- Added named graph storage with application-provided stable node IDs and typed target references.
- Added graph, node, and directed-edge CRUD APIs.
- Added deterministic incoming/outgoing neighbor queries, degree queries, and bounded breadth-first traversal.
- Added SQL-native graph neighbor and walk virtual tables.
- Added C ABI, Rust, Go, and Python graph APIs.
- Added graph CLI inspection plus backup, compact, restore, check, doctor, and salvage integration.
- Added distribution publishing support.
Compatibility
- Bumps the experimental
.zovaformat to4for required graph schema. - Graphs are local, embedded, and SQLite-backed; this release does not introduce Cypher/GQL or a separate graph server.
Full Changelog: v0.19.0...v0.20.0
Zova v0.19.0
Highlights
Lets applications move large object and vector storage into optional, explicitly bound local .zova files while keeping records in the main database.
What's changed
- Added one optional bound object store and one optional bound vector store using SQLite
ATTACH. - Added store creation, bind, info, unbind, and split-migration APIs and CLI commands.
- Routes existing object/vector APIs transparently through attached store schemas after reopen.
- Added stable store IDs, binding IDs, consistency epochs, role checks, and open-time mismatch detection.
- Made backup, compact, restore, check, doctor, and inspection workflows aware of bound stores.
- Fixed macOS static archive repacking for
zova-sys.
Compatibility
- Single-file
.zovaremains the default andformat_version = 3is retained. - Bound stores are local/manual storage, not distributed or remote storage. Cross-file crash atomicity follows SQLite's attached-database limits.
Full Changelog: v0.18.0...v0.19.0
Zova v0.18.0
Highlights
Adds transaction-aware, same-process app notifications so applications can react only after storage work commits.
What's changed
- Added explicit
listenandnotifyAPIs with channel, payload, and connection-local sequencing. - Queues notifications within transactions and delivers them only after successful commit.
- Discards pending notifications on rollback and follows nested savepoint rollback/release behavior.
- Added connection-local SQL notification support for prepared-statement workflows.
- Added C ABI, Rust, Go, and Python notification APIs with deterministic subscription lifetimes.
- Included the SQLite-to-Zova migration guide and Darwin C ABI repack support in release packages.
Compatibility
- Keeps
.zovaformat_version = 3; notifications are in-memory and non-persistent. - Notifications are local to one process and database handle, not a durable log, server, or replication system.
Full Changelog: v0.17.0...v0.18.0