diff --git a/CHANGELOG.md b/CHANGELOG.md index 9eea9eda..bb12448d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,180 @@ # Changelog +## v0.7.1 - 2026-10-11 + +### Added + +- *(index)* carry the peer's proof with a generation's history +- *(index)* carry index copy proofs through transfers +- *(index)* guard each local index copy before it serves +- *(server)* configure the auto-commit re-execution budget +- *(storage)* store index generations under local installations +- *(session)* cancel a running statement through its budget +- *(query)* refuse an unproved index read that would leave the budget +- *(query)* add a per-statement memory and time budget +- *(server)* serve index checks and rebuilds over gRPC +- *(index)* check B-tree indexes against their records and repair them +- *(config)* make the index feed capacity a setting +- *(server)* log slow statements +- *(schema)* resolve edge identity apart from temporality +- *(schema)* declare a partial unique index as a scoped constraint +- *(schema)* repair stored duplicates during a unique build +- *(schema)* admit index builds as inspectable operations +- *(vector)* run index searches against the statement budget +- *(query)* run per-row subqueries under a part of the budget +- *(query)* charge graph traversal to the statement budget +- *(storage)* keep exact edge cardinality counts at commit +- *(core)* count edge cardinality over logical identities +- *(index)* show this member's index copies +- *(query)* account procedure calls and node and document rewrites +- *(search)* run text index searches against the statement budget +- *(query)* account shortest paths and counter-answered counts +- *(query)* count relationship MERGE as accounted work +- *(query)* charge detaching deletes and trigger bodies to the budget +- *(query)* charge joins and UNION to the statement budget +- *(query)* charge UNWIND and aggregation to the statement budget +- *(storage)* charge staged writes to the statement budget +- *(cypher)* add REINDEX and index check procedures +- *(query)* count a label's nodes from its counter +- *(query)* account rank fusion and document scores +- *(search)* run encrypted index searches within the statement budget +- *(query)* charge write operators to the statement budget +- *(replicate)* fill a generation's replacement from a peer +- *(storage)* replace a generation's local installation +- *(migrate)* add the node sizes report module +- *(migrate)* catalog record migrations, check and journal stats +- *(migrate)* offline tool to bring a data directory current + +### Fixed + +- *(server)* carry a session cancel to the leader and charge merges +- *(search)* keep text statistics to what readers see after a failed write +- *(query)* leave a build the member cannot take to the leader +- *(server)* exit when consensus stops on a fatal error +- *(reads)* reuse the statement schema view +- *(raft)* fence follower cuts with a closed bound +- *(query)* search temporal labels at their valid state +- *(server)* list labels from the counters, under a read lock +- drop the upgrade path from 0.6 stores +- *(vector)* mark an index ready only at a build's handover +- *(storage)* mark a partition capture with the engine format +- *(core)* key an edge discriminator by its complete value +- *(storage)* refuse a write over a moved index binding as a conflict +- *(embed)* run an auto-commit statement again after a refused commit +- *(query)* refuse a duplicate trigger name as an existing object +- *(index)* bind writes to a definition compaction has settled +- *(storage)* read a record's latest value at the present +- *(query)* decide index mark durability in the order of its removal +- *(query)* store index unfitness when found and lift it only as proved +- *(query)* keep a member's unfit index copy excluded until proved here +- *(index)* check a unique entry's holder against its record +- *(search)* parse the documented text query language +- *(search)* highlight the words a fuzzy search matched +- *(search)* match every word a text prefix starts +- *(embed)* fence the vector freshness watermark at a cut +- *(embed)* keep a failed index fold out of later releases +- *(storage)* let a catalog change wait for admitted writers +- *(query)* stop and join index build executors when a database closes +- *(storage)* wait for every older transaction in an index build +- refuse to open over unreadable index and consensus state +- *(index)* refuse to open over an index catalog record it cannot read +- *(index)* bind builds and checks to the definition, not a held version +- *(index)* bind a check's repair to the check its executor holds +- *(storage)* fold node deltas into a whole write of the same node +- *(storage)* hide rows a transaction deleted from its scans +- *(modality)* refuse an unresolved temporal edge type on every write +- *(index)* stop a check whose generation the index left +- *(query)* never lift a failed index mark by touching the disk again +- *(query)* treat an index mark whose removal failed as unknown +- *(query)* end a vector build at its ready mark +- *(query)* mark a built vector index ready after its tail fold +- *(query)* keep the edge discriminator in the query fingerprint +- *(storage)* bound a Raft generation history by its applied entries +- *(search)* run a text prefix as a term range +- *(search)* refuse writes after a lost text-index writer +- *(search)* carry no fictitious birth time in text documents +- *(storage)* admit a replacement's writes like any other write +- *(storage)* announce an applied entry before a reader can see it +- *(storage)* release commit claims where the writes land +- *(storage)* flush memtables sealed while the queue was full +- *(storage)* keep the timeline docs free of private links +- *(vector)* keep concurrent HNSW inserts apart from their neighbours +- *(migrate)* find every marked store, Raft snapshot captures too + +### Performance + +- *(storage)* keep five minutes of MVCC history by default +- *(cdc)* answer a consumer's progress age without rereading the log +- *(query)* stream node scans within the statement budget +- *(query)* reap every TTL target in one read of the shard +- *(query)* write a top-level SET as a property delta +- *(storage)* admit bounds by the way writes move the count +- *(query)* find MERGE and UPSERT patterns through the index +- *(query)* charge index lookups to the statement budget +- *(storage)* borrow node bytes during decode +- *(query)* bound property delta chains with whole writes +- *(query)* take TTL candidates from a ready anchor index +- *(query)* pass over other labels' records by their labels +- *(query)* write a change carrying most of a record whole +- *(storage)* finish a generation import without flushing +- *(storage)* hard-link sealed journal segments into checkpoints + +### Refactored + +- *(schema)* drop the property uniqueness flag and index adoption + +### Testing + +- pin the statement budget across index repair answers +- *(server)* drop timing prints from the follower build test +- *(server)* take cdc raft-tail timestamps from the clock +- a scoped uniqueness survives a restore and a repair replicates +- unreadable state refuses the loaders and a replicated member +- *(cluster)* a follower checks its own index copy after a crash +- *(integration)* match the refusal of a directory two formats behind +- *(index)* check index copies after a server crash only +- *(integration)* measure the group, not a held write, in version moves +- *(integration)* ask every member for the voters after restarts +- *(schema)* cover the refusals of edge identity +- *(core)* equal starts do not merge independent edge instances +- *(index)* cover compound checks, deletes and check takeover +- *(index)* race two writers for a value of a suspect unique index +- *(index)* measure lookups while an index check repairs +- *(embed)* hold the node until a single-attempt statement returns +- *(index)* check partial, sparse, derived and temporal indexes +- *(embed)* keep the re-execution test beside the executor +- *(bench)* keep the index wrong for every measured fallback run +- *(bench)* measure lookups answered by the index and by the records +- *(embed)* cover reads within the statement budget +- *(embed)* change a record through the node store in index checks +- *(search)* cover AS OF after a rebuild and a write the worker cannot fold +- *(bench)* keep the text history bench's T0 inside the retention window +- *(index)* index nodes created together under their own ids +- *(embed)* rank unfolded and own text writes against a fresh index +- *(schema)* cover type definitions and repair outcomes +- *(index)* exclude a copy a dead run left guarded from a capture +- *(index)* cover the edges of index copy transfer +- *(query)* fail every flush in the index mark fault tests +- *(storage)* prove a persist after a failed one keeps its write +- *(query)* bound the repairs a backfill page may make +- *(query)* cover a suffix collision and suffix exhaustion in duplicate repair +- *(raft)* wait for leadership before proposing in write-path tests +- *(search)* keep final statistics through segment merge and reopen +- *(search)* cover refused and zero birth-time reads +- *(storage)* keep a transaction's view and conflicts across a switch +- *(storage)* drop a replacement when a Raft snapshot replaces the index +- *(storage)* cover a replacement's registration, readers and rebuilds +- *(storage)* cover a replacement against concurrent effects +- *(storage)* keep each test's doc comment with its test +- *(storage)* replay kept cardinality counts once after a power cut +- *(storage)* race edge commits through the whole pipeline +- *(storage)* first edges into different pairs share an upper bound +- *(storage)* cover kept counts on every commit path + +### Bench + +- *(embed)* report text-index resources and recovery + ## v0.7.0 - 2026-10-06 ### Added diff --git a/Cargo.lock b/Cargo.lock index d32c3ea0..8c6ff309 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -832,7 +832,7 @@ dependencies = [ [[package]] name = "coordinode-auth" -version = "0.7.0" +version = "0.7.1" dependencies = [ "serde", "tempfile", @@ -842,7 +842,7 @@ dependencies = [ [[package]] name = "coordinode-bench" -version = "0.7.0" +version = "0.7.1" dependencies = [ "chrono", "clap", @@ -856,7 +856,7 @@ dependencies = [ [[package]] name = "coordinode-client" -version = "0.7.0" +version = "0.7.1" dependencies = [ "parking_lot", "prost", @@ -872,7 +872,7 @@ dependencies = [ [[package]] name = "coordinode-cluster" -version = "0.7.0" +version = "0.7.1" dependencies = [ "coordinode-storage", "coordinode-workspace-hack", @@ -890,7 +890,7 @@ dependencies = [ [[package]] name = "coordinode-core" -version = "0.7.0" +version = "0.7.1" dependencies = [ "atomic-waker", "bytes", @@ -913,7 +913,7 @@ dependencies = [ [[package]] name = "coordinode-embed" -version = "0.7.0" +version = "0.7.1" dependencies = [ "chrono", "coordinode-core", @@ -942,7 +942,7 @@ dependencies = [ [[package]] name = "coordinode-integration" -version = "0.7.0" +version = "0.7.1" dependencies = [ "coordinode-client", "coordinode-test-fixtures", @@ -994,7 +994,7 @@ dependencies = [ [[package]] name = "coordinode-migrate" -version = "0.7.0" +version = "0.7.1" dependencies = [ "anyhow", "coordinode-core", @@ -1011,7 +1011,7 @@ dependencies = [ [[package]] name = "coordinode-modality" -version = "0.7.0" +version = "0.7.1" dependencies = [ "coordinode-core", "coordinode-lsm-tree", @@ -1032,7 +1032,7 @@ dependencies = [ [[package]] name = "coordinode-query" -version = "0.7.0" +version = "0.7.1" dependencies = [ "chrono", "coordinode-cluster", @@ -1066,7 +1066,7 @@ dependencies = [ [[package]] name = "coordinode-raft" -version = "0.7.0" +version = "0.7.1" dependencies = [ "bytes", "coordinode-core", @@ -1097,7 +1097,7 @@ dependencies = [ [[package]] name = "coordinode-replicate" -version = "0.7.0" +version = "0.7.1" dependencies = [ "coordinode-core", "coordinode-embed", @@ -1124,7 +1124,7 @@ dependencies = [ [[package]] name = "coordinode-s3" -version = "0.7.0" +version = "0.7.1" dependencies = [ "bytes", "coordinode-core", @@ -1145,7 +1145,7 @@ dependencies = [ [[package]] name = "coordinode-search" -version = "0.7.0" +version = "0.7.1" dependencies = [ "aes-gcm 0.11.1", "coordinode-core", @@ -1167,7 +1167,7 @@ dependencies = [ [[package]] name = "coordinode-server" -version = "0.7.0" +version = "0.7.1" dependencies = [ "async-trait", "axum", @@ -1223,7 +1223,7 @@ dependencies = [ [[package]] name = "coordinode-session" -version = "0.7.0" +version = "0.7.1" dependencies = [ "coordinode-core", "parking_lot", @@ -1232,7 +1232,7 @@ dependencies = [ [[package]] name = "coordinode-storage" -version = "0.7.0" +version = "0.7.1" dependencies = [ "byteorder-lite", "bytes", @@ -1270,7 +1270,7 @@ dependencies = [ [[package]] name = "coordinode-swarm" -version = "0.7.0" +version = "0.7.1" dependencies = [ "lz4_flex 0.14.0", "structured-zstd", @@ -1280,7 +1280,7 @@ dependencies = [ [[package]] name = "coordinode-test-fixtures" -version = "0.7.0" +version = "0.7.1" dependencies = [ "coordinode-lsm-tree", "coordinode-storage", @@ -1289,7 +1289,7 @@ dependencies = [ [[package]] name = "coordinode-timeseries" -version = "0.7.0" +version = "0.7.1" dependencies = [ "coordinode-core", "coordinode-modality", @@ -1303,7 +1303,7 @@ dependencies = [ [[package]] name = "coordinode-vector" -version = "0.7.0" +version = "0.7.1" dependencies = [ "coordinode-core", "coordinode-storage", @@ -1326,7 +1326,7 @@ dependencies = [ [[package]] name = "coordinode-wire" -version = "0.7.0" +version = "0.7.1" dependencies = [ "bytes", "coordinode-workspace-hack", diff --git a/Cargo.toml b/Cargo.toml index d41b1795..f2ecd8c8 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -32,7 +32,7 @@ exclude = [ ] [workspace.package] -version = "0.7.0" +version = "0.7.1" edition = "2021" rust-version = "1.90" license = "AGPL-3.0-only" diff --git a/crates/coordinode-client/CHANGELOG.md b/crates/coordinode-client/CHANGELOG.md index 63ecef62..1a2ff23c 100644 --- a/crates/coordinode-client/CHANGELOG.md +++ b/crates/coordinode-client/CHANGELOG.md @@ -2,6 +2,12 @@ All notable changes to this crate are documented in this file. +## v0.7.1 - 2026-10-11 + +### Added + +- *(query)* add a per-statement memory and time budget + ## v0.7.0 - 2026-10-06 ### Added diff --git a/crates/coordinode-core/CHANGELOG.md b/crates/coordinode-core/CHANGELOG.md index 8907161c..85732200 100644 --- a/crates/coordinode-core/CHANGELOG.md +++ b/crates/coordinode-core/CHANGELOG.md @@ -2,6 +2,48 @@ All notable changes to this crate are documented in this file. +## v0.7.1 - 2026-10-11 + +### Added + +- *(storage)* store index generations under local installations +- *(vector)* run index searches against the statement budget +- *(query)* run per-row subqueries under a part of the budget +- *(query)* charge graph traversal to the statement budget +- *(session)* cancel a running statement through its budget +- *(query)* add a per-statement memory and time budget +- *(index)* check B-tree indexes against their records and repair them +- *(storage)* keep exact edge cardinality counts at commit +- *(core)* count edge cardinality over logical identities +- *(schema)* resolve edge identity apart from temporality +- *(schema)* declare a partial unique index as a scoped constraint +- *(schema)* admit index builds as inspectable operations + +### Fixed + +- *(storage)* mark a partition capture with the engine format +- *(server)* carry a session cancel to the leader and charge merges +- *(raft)* fence follower cuts with a closed bound +- *(query)* search temporal labels at their valid state +- *(core)* key an edge discriminator by its complete value + +### Performance + +- *(query)* stream node scans within the statement budget +- *(storage)* keep five minutes of MVCC history by default +- *(query)* reap every TTL target in one read of the shard +- *(query)* write a top-level SET as a property delta +- *(storage)* admit bounds by the way writes move the count + +### Refactored + +- *(schema)* drop the property uniqueness flag and index adoption + +### Testing + +- *(schema)* cover the refusals of edge identity +- *(core)* equal starts do not merge independent edge instances + ## v0.7.0 - 2026-10-06 ### Added diff --git a/crates/coordinode-embed/CHANGELOG.md b/crates/coordinode-embed/CHANGELOG.md index eb8f87b4..0ef4c360 100644 --- a/crates/coordinode-embed/CHANGELOG.md +++ b/crates/coordinode-embed/CHANGELOG.md @@ -2,6 +2,107 @@ All notable changes to this crate are documented in this file. +## v0.7.1 - 2026-10-11 + +### Added + +- *(index)* carry index copy proofs through transfers +- *(index)* show this member's index copies +- *(index)* guard each local index copy before it serves +- *(server)* configure the auto-commit re-execution budget +- *(storage)* store index generations under local installations +- *(query)* account procedure calls and node and document rewrites +- *(search)* run text index searches against the statement budget +- *(vector)* run index searches against the statement budget +- *(query)* account shortest paths and counter-answered counts +- *(query)* run per-row subqueries under a part of the budget +- *(query)* count relationship MERGE as accounted work +- *(query)* charge detaching deletes and trigger bodies to the budget +- *(query)* charge joins and UNION to the statement budget +- *(query)* charge graph traversal to the statement budget +- *(session)* cancel a running statement through its budget +- *(query)* charge UNWIND and aggregation to the statement budget +- *(storage)* charge staged writes to the statement budget +- *(query)* refuse an unproved index read that would leave the budget +- *(query)* add a per-statement memory and time budget +- *(server)* serve index checks and rebuilds over gRPC +- *(cypher)* add REINDEX and index check procedures +- *(index)* check B-tree indexes against their records and repair them +- *(config)* make the index feed capacity a setting +- *(query)* count a label's nodes from its counter +- *(schema)* resolve edge identity apart from temporality +- *(schema)* declare a partial unique index as a scoped constraint +- *(schema)* repair stored duplicates during a unique build +- *(schema)* admit index builds as inspectable operations + +### Fixed + +- *(storage)* refuse a write over a moved index binding as a conflict +- *(embed)* run an auto-commit statement again after a refused commit +- *(query)* refuse a duplicate trigger name as an existing object +- *(server)* carry a session cancel to the leader and charge merges +- *(index)* bind writes to a definition compaction has settled +- *(storage)* read a record's latest value at the present +- *(query)* decide index mark durability in the order of its removal +- *(query)* store index unfitness when found and lift it only as proved +- *(query)* keep a member's unfit index copy excluded until proved here +- *(index)* check a unique entry's holder against its record +- *(search)* parse the documented text query language +- *(search)* highlight the words a fuzzy search matched +- *(query)* leave a build the member cannot take to the leader +- *(reads)* reuse the statement schema view +- *(raft)* fence follower cuts with a closed bound +- *(search)* match every word a text prefix starts +- *(query)* search temporal labels at their valid state +- *(embed)* fence the vector freshness watermark at a cut +- *(embed)* keep a failed index fold out of later releases +- *(storage)* let a catalog change wait for admitted writers +- *(server)* list labels from the counters, under a read lock +- *(query)* stop and join index build executors when a database closes +- *(storage)* wait for every older transaction in an index build +- drop the upgrade path from 0.6 stores +- refuse to open over unreadable index and consensus state +- *(index)* refuse to open over an index catalog record it cannot read + +### Performance + +- *(query)* find MERGE and UPSERT patterns through the index +- *(query)* charge index lookups to the statement budget +- *(query)* stream node scans within the statement budget +- *(storage)* keep five minutes of MVCC history by default +- *(storage)* borrow node bytes during decode + +### Refactored + +- *(schema)* drop the property uniqueness flag and index adoption + +### Testing + +- *(index)* cover compound checks, deletes and check takeover +- *(index)* race two writers for a value of a suspect unique index +- *(index)* measure lookups while an index check repairs +- *(embed)* hold the node until a single-attempt statement returns +- *(index)* check index copies after a server crash only +- *(index)* check partial, sparse, derived and temporal indexes +- *(embed)* keep the re-execution test beside the executor +- pin the statement budget across index repair answers +- *(bench)* keep the index wrong for every measured fallback run +- *(bench)* measure lookups answered by the index and by the records +- *(embed)* cover reads within the statement budget +- *(embed)* change a record through the node store in index checks +- *(search)* cover AS OF after a rebuild and a write the worker cannot fold +- *(bench)* keep the text history bench's T0 inside the retention window +- *(index)* index nodes created together under their own ids +- *(embed)* rank unfolded and own text writes against a fresh index +- *(schema)* cover the refusals of edge identity +- *(schema)* cover type definitions and repair outcomes +- a scoped uniqueness survives a restore and a repair replicates +- unreadable state refuses the loaders and a replicated member + +### Bench + +- *(embed)* report text-index resources and recovery + ## v0.7.0 - 2026-10-06 ### Added diff --git a/crates/coordinode-migrate/CHANGELOG.md b/crates/coordinode-migrate/CHANGELOG.md new file mode 100644 index 00000000..da844c6d --- /dev/null +++ b/crates/coordinode-migrate/CHANGELOG.md @@ -0,0 +1,25 @@ +# Changelog + +All notable changes to this project will be documented in this file. + +The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), +and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). + +## [Unreleased] + +## v0.7.1 - 2026-10-11 + +### Added + +- *(storage)* store index generations under local installations +- *(migrate)* add the node sizes report module +- *(migrate)* catalog record migrations, check and journal stats +- *(migrate)* offline tool to bring a data directory current + +### Fixed + +- *(migrate)* find every marked store, Raft snapshot captures too + +### Performance + +- *(query)* bound property delta chains with whole writes diff --git a/crates/coordinode-modality/CHANGELOG.md b/crates/coordinode-modality/CHANGELOG.md index eb20e46b..cc02aa68 100644 --- a/crates/coordinode-modality/CHANGELOG.md +++ b/crates/coordinode-modality/CHANGELOG.md @@ -2,6 +2,42 @@ All notable changes to this crate are documented in this file. +## v0.7.1 - 2026-10-11 + +### Added + +- *(index)* carry index copy proofs through transfers +- *(index)* guard each local index copy before it serves +- *(storage)* store index generations under local installations +- *(index)* check B-tree indexes against their records and repair them +- *(storage)* keep exact edge cardinality counts at commit +- *(schema)* resolve edge identity apart from temporality +- *(schema)* declare a partial unique index as a scoped constraint +- *(schema)* repair stored duplicates during a unique build + +### Fixed + +- *(index)* bind builds and checks to the definition, not a held version +- *(index)* bind a check's repair to the check its executor holds +- *(query)* store index unfitness when found and lift it only as proved +- *(query)* keep a member's unfit index copy excluded until proved here +- *(storage)* fold node deltas into a whole write of the same node +- *(reads)* reuse the statement schema view +- *(query)* search temporal labels at their valid state +- *(storage)* hide rows a transaction deleted from its scans +- *(modality)* refuse an unresolved temporal edge type on every write +- refuse to open over unreadable index and consensus state +- *(index)* refuse to open over an index catalog record it cannot read + +### Performance + +- *(query)* charge index lookups to the statement budget +- *(query)* stream node scans within the statement budget +- *(query)* bound property delta chains with whole writes +- *(query)* take TTL candidates from a ready anchor index +- *(query)* write a top-level SET as a property delta +- *(storage)* borrow node bytes during decode + ## v0.7.0 - 2026-10-06 ### Added diff --git a/crates/coordinode-query/CHANGELOG.md b/crates/coordinode-query/CHANGELOG.md index 2dbf8ab3..ba4b4f7c 100644 --- a/crates/coordinode-query/CHANGELOG.md +++ b/crates/coordinode-query/CHANGELOG.md @@ -2,6 +2,94 @@ All notable changes to this crate are documented in this file. +## v0.7.1 - 2026-10-11 + +### Added + +- *(index)* carry the peer's proof with a generation's history +- *(index)* carry index copy proofs through transfers +- *(index)* show this member's index copies +- *(index)* guard each local index copy before it serves +- *(storage)* store index generations under local installations +- *(query)* account procedure calls and node and document rewrites +- *(query)* account rank fusion and document scores +- *(search)* run encrypted index searches within the statement budget +- *(search)* run text index searches against the statement budget +- *(vector)* run index searches against the statement budget +- *(query)* account shortest paths and counter-answered counts +- *(query)* run per-row subqueries under a part of the budget +- *(query)* count relationship MERGE as accounted work +- *(query)* charge detaching deletes and trigger bodies to the budget +- *(query)* charge joins and UNION to the statement budget +- *(query)* charge write operators to the statement budget +- *(query)* charge graph traversal to the statement budget +- *(session)* cancel a running statement through its budget +- *(query)* charge UNWIND and aggregation to the statement budget +- *(storage)* charge staged writes to the statement budget +- *(query)* refuse an unproved index read that would leave the budget +- *(query)* add a per-statement memory and time budget +- *(server)* serve index checks and rebuilds over gRPC +- *(cypher)* add REINDEX and index check procedures +- *(index)* check B-tree indexes against their records and repair them +- *(query)* count a label's nodes from its counter +- *(schema)* resolve edge identity apart from temporality +- *(schema)* declare a partial unique index as a scoped constraint +- *(schema)* repair stored duplicates during a unique build +- *(schema)* admit index builds as inspectable operations + +### Fixed + +- *(index)* bind builds and checks to the definition, not a held version +- *(index)* bind a check's repair to the check its executor holds +- *(index)* stop a check whose generation the index left +- *(query)* refuse a duplicate trigger name as an existing object +- *(server)* carry a session cancel to the leader and charge merges +- *(index)* bind writes to a definition compaction has settled +- *(query)* never lift a failed index mark by touching the disk again +- *(query)* treat an index mark whose removal failed as unknown +- *(query)* decide index mark durability in the order of its removal +- *(query)* store index unfitness when found and lift it only as proved +- *(query)* keep a member's unfit index copy excluded until proved here +- *(index)* check a unique entry's holder against its record +- *(query)* leave a build the member cannot take to the leader +- *(storage)* fold node deltas into a whole write of the same node +- *(reads)* reuse the statement schema view +- *(raft)* fence follower cuts with a closed bound +- *(query)* search temporal labels at their valid state +- *(embed)* fence the vector freshness watermark at a cut +- *(query)* end a vector build at its ready mark +- *(query)* mark a built vector index ready after its tail fold +- *(storage)* let a catalog change wait for admitted writers +- *(query)* keep the edge discriminator in the query fingerprint +- *(query)* stop and join index build executors when a database closes +- *(storage)* wait for every older transaction in an index build +- *(index)* refuse to open over an index catalog record it cannot read +- *(vector)* mark an index ready only at a build's handover + +### Performance + +- *(query)* find MERGE and UPSERT patterns through the index +- *(query)* charge index lookups to the statement budget +- *(query)* stream node scans within the statement budget +- *(query)* pass over other labels' records by their labels +- *(query)* write a change carrying most of a record whole +- *(query)* bound property delta chains with whole writes +- *(query)* take TTL candidates from a ready anchor index +- *(query)* reap every TTL target in one read of the shard +- *(query)* write a top-level SET as a property delta +- *(storage)* borrow node bytes during decode + +### Testing + +- *(index)* exclude a copy a dead run left guarded from a capture +- *(index)* cover compound checks, deletes and check takeover +- *(index)* cover the edges of index copy transfer +- *(query)* fail every flush in the index mark fault tests +- *(storage)* prove a persist after a failed one keeps its write +- *(query)* bound the repairs a backfill page may make +- *(schema)* cover type definitions and repair outcomes +- *(query)* cover a suffix collision and suffix exhaustion in duplicate repair + ## v0.7.0 - 2026-10-06 ### Added diff --git a/crates/coordinode-raft/CHANGELOG.md b/crates/coordinode-raft/CHANGELOG.md index 47659e7a..00ff8850 100644 --- a/crates/coordinode-raft/CHANGELOG.md +++ b/crates/coordinode-raft/CHANGELOG.md @@ -2,6 +2,31 @@ All notable changes to this crate are documented in this file. +## v0.7.1 - 2026-10-11 + +### Added + +- *(index)* carry the peer's proof with a generation's history +- *(index)* carry index copy proofs through transfers +- *(storage)* store index generations under local installations + +### Fixed + +- *(storage)* bound a Raft generation history by its applied entries +- *(storage)* mark a partition capture with the engine format +- *(reads)* reuse the statement schema view +- *(raft)* fence follower cuts with a closed bound +- drop the upgrade path from 0.6 stores +- refuse to open over unreadable index and consensus state + +### Performance + +- *(storage)* admit bounds by the way writes move the count + +### Testing + +- *(raft)* wait for leadership before proposing in write-path tests + ## v0.7.0 - 2026-10-06 ### Added diff --git a/crates/coordinode-replicate/CHANGELOG.md b/crates/coordinode-replicate/CHANGELOG.md index e81847c3..4479b935 100644 --- a/crates/coordinode-replicate/CHANGELOG.md +++ b/crates/coordinode-replicate/CHANGELOG.md @@ -2,6 +2,18 @@ All notable changes to this crate are documented in this file. +## v0.7.1 - 2026-10-11 + +### Added + +- *(index)* carry the peer's proof with a generation's history +- *(replicate)* fill a generation's replacement from a peer +- *(storage)* store index generations under local installations + +### Performance + +- *(cdc)* answer a consumer's progress age without rereading the log + ## v0.7.0 - 2026-10-06 ### Added diff --git a/crates/coordinode-search/CHANGELOG.md b/crates/coordinode-search/CHANGELOG.md index ef64d000..6fd0c52f 100644 --- a/crates/coordinode-search/CHANGELOG.md +++ b/crates/coordinode-search/CHANGELOG.md @@ -2,6 +2,29 @@ All notable changes to this crate are documented in this file. +## v0.7.1 - 2026-10-11 + +### Added + +- *(search)* run encrypted index searches within the statement budget +- *(search)* run text index searches against the statement budget + +### Fixed + +- *(search)* keep text statistics to what readers see after a failed write +- *(search)* parse the documented text query language +- *(search)* highlight the words a fuzzy search matched +- *(search)* run a text prefix as a term range +- *(search)* refuse writes after a lost text-index writer +- *(search)* match every word a text prefix starts +- *(search)* carry no fictitious birth time in text documents +- *(query)* search temporal labels at their valid state + +### Testing + +- *(search)* keep final statistics through segment merge and reopen +- *(search)* cover refused and zero birth-time reads + ## v0.7.0 - 2026-10-06 ### Documentation diff --git a/crates/coordinode-session/CHANGELOG.md b/crates/coordinode-session/CHANGELOG.md index 9320dd79..87ddae21 100644 --- a/crates/coordinode-session/CHANGELOG.md +++ b/crates/coordinode-session/CHANGELOG.md @@ -2,6 +2,17 @@ All notable changes to this crate are documented in this file. +## v0.7.1 - 2026-10-11 + +### Added + +- *(session)* cancel a running statement through its budget +- *(query)* add a per-statement memory and time budget + +### Testing + +- pin the statement budget across index repair answers + ## v0.7.0 - 2026-10-06 ### Added diff --git a/crates/coordinode-storage/CHANGELOG.md b/crates/coordinode-storage/CHANGELOG.md index 8e056095..21f5ab75 100644 --- a/crates/coordinode-storage/CHANGELOG.md +++ b/crates/coordinode-storage/CHANGELOG.md @@ -2,6 +2,70 @@ All notable changes to this crate are documented in this file. +## v0.7.1 - 2026-10-11 + +### Added + +- *(index)* carry the peer's proof with a generation's history +- *(index)* carry index copy proofs through transfers +- *(index)* guard each local index copy before it serves +- *(replicate)* fill a generation's replacement from a peer +- *(storage)* replace a generation's local installation +- *(storage)* store index generations under local installations +- *(storage)* charge staged writes to the statement budget +- *(config)* make the index feed capacity a setting +- *(query)* count a label's nodes from its counter +- *(storage)* keep exact edge cardinality counts at commit +- *(core)* count edge cardinality over logical identities + +### Fixed + +- *(storage)* refuse a write over a moved index binding as a conflict +- *(storage)* admit a replacement's writes like any other write +- *(storage)* bound a Raft generation history by its applied entries +- *(storage)* mark a partition capture with the engine format +- *(storage)* read a record's latest value at the present +- *(storage)* announce an applied entry before a reader can see it +- *(storage)* fold node deltas into a whole write of the same node +- *(reads)* reuse the statement schema view +- *(storage)* release commit claims where the writes land +- *(raft)* fence follower cuts with a closed bound +- *(query)* search temporal labels at their valid state +- *(storage)* hide rows a transaction deleted from its scans +- *(storage)* let a catalog change wait for admitted writers +- *(server)* list labels from the counters, under a read lock +- *(storage)* flush memtables sealed while the queue was full +- *(storage)* wait for every older transaction in an index build +- drop the upgrade path from 0.6 stores +- *(storage)* keep the timeline docs free of private links +- *(index)* refuse to open over an index catalog record it cannot read + +### Performance + +- *(storage)* finish a generation import without flushing +- *(query)* stream node scans within the statement budget +- *(storage)* keep five minutes of MVCC history by default +- *(query)* bound property delta chains with whole writes +- *(query)* take TTL candidates from a ready anchor index +- *(query)* write a top-level SET as a property delta +- *(storage)* hard-link sealed journal segments into checkpoints +- *(storage)* borrow node bytes during decode +- *(storage)* admit bounds by the way writes move the count +- *(cdc)* answer a consumer's progress age without rereading the log + +### Testing + +- *(storage)* keep a transaction's view and conflicts across a switch +- *(storage)* drop a replacement when a Raft snapshot replaces the index +- *(storage)* cover a replacement's registration, readers and rebuilds +- *(storage)* cover a replacement against concurrent effects +- *(storage)* keep each test's doc comment with its test +- *(storage)* prove a persist after a failed one keeps its write +- *(storage)* replay kept cardinality counts once after a power cut +- *(storage)* race edge commits through the whole pipeline +- *(storage)* first edges into different pairs share an upper bound +- *(storage)* cover kept counts on every commit path + ## v0.7.0 - 2026-10-06 ### Added diff --git a/crates/coordinode-test-fixtures/CHANGELOG.md b/crates/coordinode-test-fixtures/CHANGELOG.md index 552cb0a6..6f86ef9a 100644 --- a/crates/coordinode-test-fixtures/CHANGELOG.md +++ b/crates/coordinode-test-fixtures/CHANGELOG.md @@ -2,6 +2,16 @@ All notable changes to this crate are documented in this file. +## v0.7.1 - 2026-10-11 + +### Fixed + +- *(query)* store index unfitness when found and lift it only as proved + +### Testing + +- *(storage)* prove a persist after a failed one keeps its write + ## v0.7.0 - 2026-10-06 ### Documentation diff --git a/crates/coordinode-vector/CHANGELOG.md b/crates/coordinode-vector/CHANGELOG.md index 485c730a..6f10a84c 100644 --- a/crates/coordinode-vector/CHANGELOG.md +++ b/crates/coordinode-vector/CHANGELOG.md @@ -2,6 +2,18 @@ All notable changes to this crate are documented in this file. +## v0.7.1 - 2026-10-11 + +### Added + +- *(vector)* run index searches against the statement budget + +### Fixed + +- *(vector)* keep concurrent HNSW inserts apart from their neighbours +- *(embed)* fence the vector freshness watermark at a cut +- *(query)* mark a built vector index ready after its tail fold + ## v0.7.0 - 2026-10-06 ### Added