From dbf0218ce1e5dc1cb40657c17e4de51609fbf527 Mon Sep 17 00:00:00 2001 From: RodCor Date: Sun, 5 Jul 2026 04:14:12 -0300 Subject: [PATCH 1/2] chore: bump workspace to 2.5.2 Co-Authored-By: Claude Opus 4.8 (1M context) --- Cargo.lock | 14 +++++++------- Cargo.toml | 2 +- crates/kimetsu-agent/Cargo.toml | 4 ++-- crates/kimetsu-brain/Cargo.toml | 2 +- crates/kimetsu-chat/Cargo.toml | 6 +++--- crates/kimetsu-cli/Cargo.toml | 8 ++++---- crates/kimetsu-e2e/Cargo.toml | 6 +++--- 7 files changed, 21 insertions(+), 21 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index ea62932..d55177f 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1989,7 +1989,7 @@ dependencies = [ [[package]] name = "kimetsu-agent" -version = "2.5.1" +version = "2.5.2" dependencies = [ "aws-credential-types", "aws-sigv4", @@ -2009,7 +2009,7 @@ dependencies = [ [[package]] name = "kimetsu-brain" -version = "2.5.1" +version = "2.5.2" dependencies = [ "blake3", "fastembed", @@ -2030,7 +2030,7 @@ dependencies = [ [[package]] name = "kimetsu-chat" -version = "2.5.1" +version = "2.5.2" dependencies = [ "base64 0.22.1", "crossterm", @@ -2046,7 +2046,7 @@ dependencies = [ [[package]] name = "kimetsu-cli" -version = "2.5.1" +version = "2.5.2" dependencies = [ "clap", "flate2", @@ -2071,7 +2071,7 @@ dependencies = [ [[package]] name = "kimetsu-core" -version = "2.5.1" +version = "2.5.2" dependencies = [ "serde", "serde_json", @@ -2082,7 +2082,7 @@ dependencies = [ [[package]] name = "kimetsu-e2e" -version = "2.5.1" +version = "2.5.2" dependencies = [ "kimetsu-agent", "kimetsu-brain", @@ -2095,7 +2095,7 @@ dependencies = [ [[package]] name = "kimetsu-remote" -version = "2.5.1" +version = "2.5.2" dependencies = [ "axum", "axum-server", diff --git a/Cargo.toml b/Cargo.toml index 8597e01..6480c74 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -15,7 +15,7 @@ resolver = "3" # everything below except the per-crate `description`, `keywords`, # and `categories` which live in each `[package]` block since # crates.io enforces them per crate. -version = "2.5.1" +version = "2.5.2" edition = "2024" # Rust ecosystem dual-license (matches tokio, serde, fastembed-rs, # etc.). UNLICENSED would block crates.io entirely. diff --git a/crates/kimetsu-agent/Cargo.toml b/crates/kimetsu-agent/Cargo.toml index 5c58981..f91b2ce 100644 --- a/crates/kimetsu-agent/Cargo.toml +++ b/crates/kimetsu-agent/Cargo.toml @@ -27,8 +27,8 @@ aws-sigv4.workspace = true aws-smithy-runtime-api.workspace = true blake3.workspace = true http.workspace = true -kimetsu-brain = { path = "../kimetsu-brain", version = "2.5.1" } -kimetsu-core = { path = "../kimetsu-core", version = "2.5.1" } +kimetsu-brain = { path = "../kimetsu-brain", version = "2.5.2" } +kimetsu-core = { path = "../kimetsu-core", version = "2.5.2" } regex.workspace = true reqwest.workspace = true rusqlite.workspace = true diff --git a/crates/kimetsu-brain/Cargo.toml b/crates/kimetsu-brain/Cargo.toml index a20d3cc..12a4aad 100644 --- a/crates/kimetsu-brain/Cargo.toml +++ b/crates/kimetsu-brain/Cargo.toml @@ -50,7 +50,7 @@ hf-hub = { version = "0.5", optional = true, default-features = false, features # already native (ort). The lean build never links it. usearch = { version = "2", optional = true } ignore.workspace = true -kimetsu-core = { path = "../kimetsu-core", version = "2.5.1" } +kimetsu-core = { path = "../kimetsu-core", version = "2.5.2" } # v0.4.5: regex backs the secret-redaction patterns in # `kimetsu_brain::redact`. The crate is already a workspace pin # elsewhere; we just opt this crate into it now. diff --git a/crates/kimetsu-chat/Cargo.toml b/crates/kimetsu-chat/Cargo.toml index cbd5d30..efcaaf7 100644 --- a/crates/kimetsu-chat/Cargo.toml +++ b/crates/kimetsu-chat/Cargo.toml @@ -38,9 +38,9 @@ openclaw = ["dep:json5"] # surface, not a benchmark harness. [dependencies] -kimetsu-agent = { path = "../kimetsu-agent", version = "2.5.1" } -kimetsu-brain = { path = "../kimetsu-brain", version = "2.5.1" } -kimetsu-core = { path = "../kimetsu-core", version = "2.5.1" } +kimetsu-agent = { path = "../kimetsu-agent", version = "2.5.2" } +kimetsu-brain = { path = "../kimetsu-brain", version = "2.5.2" } +kimetsu-core = { path = "../kimetsu-core", version = "2.5.2" } base64.workspace = true crossterm.workspace = true json5 = { workspace = true, optional = true } diff --git a/crates/kimetsu-cli/Cargo.toml b/crates/kimetsu-cli/Cargo.toml index 6adcdf2..1a16deb 100644 --- a/crates/kimetsu-cli/Cargo.toml +++ b/crates/kimetsu-cli/Cargo.toml @@ -43,10 +43,10 @@ path = "src/main.rs" [dependencies] clap.workspace = true -kimetsu-agent = { path = "../kimetsu-agent", version = "2.5.1" } -kimetsu-brain = { path = "../kimetsu-brain", version = "2.5.1" } -kimetsu-chat = { path = "../kimetsu-chat", version = "2.5.1" } -kimetsu-core = { path = "../kimetsu-core", version = "2.5.1" } +kimetsu-agent = { path = "../kimetsu-agent", version = "2.5.2" } +kimetsu-brain = { path = "../kimetsu-brain", version = "2.5.2" } +kimetsu-chat = { path = "../kimetsu-chat", version = "2.5.2" } +kimetsu-core = { path = "../kimetsu-core", version = "2.5.2" } # v0.4.6: `kimetsu doctor` serializes its report struct so --json # output can be piped into CI / hooks. flate2 = "1" diff --git a/crates/kimetsu-e2e/Cargo.toml b/crates/kimetsu-e2e/Cargo.toml index 82f2ed8..0f99b4d 100644 --- a/crates/kimetsu-e2e/Cargo.toml +++ b/crates/kimetsu-e2e/Cargo.toml @@ -20,9 +20,9 @@ publish = false # Real (non-dev) deps so the test fixtures + scripted provider can be # re-exported from `kimetsu_e2e::prelude` to the integration tests in # `tests/`. Integration tests treat this crate as a normal library. -kimetsu-agent = { path = "../kimetsu-agent", version = "2.5.1" } -kimetsu-brain = { path = "../kimetsu-brain", version = "2.5.1" } -kimetsu-core = { path = "../kimetsu-core", version = "2.5.1" } +kimetsu-agent = { path = "../kimetsu-agent", version = "2.5.2" } +kimetsu-brain = { path = "../kimetsu-brain", version = "2.5.2" } +kimetsu-core = { path = "../kimetsu-core", version = "2.5.2" } rusqlite.workspace = true serde_json.workspace = true time.workspace = true From 69592503f18f7d0fefa8368f003521168353676a Mon Sep 17 00:00:00 2001 From: RodCor Date: Mon, 6 Jul 2026 00:46:52 -0300 Subject: [PATCH 2/2] docs: changelog for v2.5.2 (+ retroactive v2.5.0 entry) Co-Authored-By: Claude Opus 4.8 (1M context) --- CHANGELOG.md | 55 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 55 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 9981dc9..fb9d2fb 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,61 @@ onward the project follows SemVer normally: patch releases are bug-fix-only, minor releases are backward-compatible additions, and breaking changes require a major bump. +## v2.5.2: The brain that learns from its own outcomes + +Consolidation v1: the first release where citation outcomes reshape the brain +itself, with every mechanism model-free and every constant documented on one +page. Backward-compatible (schema v9 → v10, automatic on open). + +### Consolidation v1 (new) + +- `kimetsu brain reinforce`: offline consolidation pass. `--staple` merges + memories that were repeatedly cited together into single fact memories + (precomputed multi-hop joins; originals kept; provenance carries part ids). + `--routes` builds a query-routing index from citation history: memories that + answered similar questions before get a bounded retrieval boost. +- `kimetsu brain cite` accepts repeated `--memory-id` (citing a GROUP — the + co-citation signal stapling consumes) and `--query` (linking citations to + the question they answered, feeding the routing index). +- Retrieval-time routing boost with a fixed per-retrieval budget, per-candidate + cap, minimum support, and power-law decay. + +### Learning-loop guardrails + +- The usefulness boost's relevance gain is capped: a heavily-cited memory can + win ties but can never outrank a genuinely more relevant one (fixes a + measured retrieval-flooding failure mode under sustained citation feedback). +- Cited-in-failure penalty now scales with citation history + (`-1.0 / (1 + prior citations / 3)`): a proven memory absorbs occasional + flaky-run hits; an unproven one takes the full penalty. +- All scoring constants (deltas, caps, envelopes, decay) now live in one + documented module, `scoring.rs`. + +### Quality of life + +- Schema-mismatch errors name the offending `project.toml` and hint at the + fix (project discovery climbs to the enclosing git root, so the file is + often far from where you ran the command). +- npm packages ship with provenance attestations (Sigstore): every published + package is publicly verifiable as built by CI from this repo. +- Internal: `project.rs` and the CLI `main.rs` split into focused modules. + +### Benchmarks + +- LoCoMo: 89.4% on the standard 1,540-question set (LLM-judged accuracy). +- Learning-curve harness validated: citation feedback never degrades + retrieval across repeated iterations, with a train/holdout split proving + generalization. + +## v2.5.0: Ship the brain to your team + +Flagships: retrieval level presets (`basic`/`flexible`/`deep`/`advanced`), +temporal validity and date-aware ingestion, fleet write-safety (concurrent +writers, per-event origin), convergent team sync (HLC replay + conflict +surfacing), Kimetsu Remote GA with per-user attribution, and shareable brain +packs (gzip + security-scrubbed export, merge/replace import from file or +URL). Docs site moved to kimetsu.dev. + ## v2.0.0: Never explore twice The biggest token sink is RE-EXPLORATION: the agent re-deriving what the brain