From 834149ed90722146e332a795e63e686e98a2c20c Mon Sep 17 00:00:00 2001 From: David Snelling Date: Wed, 26 Aug 2026 08:03:48 -0700 Subject: [PATCH 1/2] =?UTF-8?q?docs(releases):=20the=2010.4.0=20entry=20ca?= =?UTF-8?q?tches=20up=20to=20the=20late=20trains=20=E2=80=94=20repair=20ro?= =?UTF-8?q?uting,=20the=20vector=20ledger=20and=20open-gate=20leg,=20the?= =?UTF-8?q?=20loud=20config=20guard,=20the=20JSON-safe=20crossing?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- RELEASES.md | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/RELEASES.md b/RELEASES.md index 45420bd1..bc400412 100644 --- a/RELEASES.md +++ b/RELEASES.md @@ -105,6 +105,25 @@ the flag has no effect on timing. Full manual control still lives in writes to both, swaps atomically, and persists once after the swap. Reads never observe a partial index. `repairIndex({ rebuild: ['metadata'] })` uses it automatically. +- **Incremental heal is routed.** A provider invariant that asks for the + incremental heal (`heal: 'repair'`) now routes to the provider's own + `repair()` when it exposes one — re-posting exactly what its ledger names, + never a store-sized rebuild — and the post-heal re-read of the report decides + success; a repair that doesn't converge is recorded with the escalation named. +- **The vector family joins the count ledger.** `getCanonicalCounts()` gains + `vectors: { all }` — the count of canonical entities holding a real vector + (deferred-embed entities count when their vector lands). And the open gate + closes the vector leg: a store whose canonical rows hold vectors but whose + derived vector index is empty now builds at `open()` (or refuses with the + typed error) instead of silently serving empty vector-search results. +- **An unknown storage config shape fails loudly.** A nested `config` object + carrying a path-shaped key (a shape that was never supported) used to fall + through silently to the default shared directory — every instance writing one + store while callers believed each had its own. It now throws, naming the + canonical `path` key. +- **Relation index rows are JSON-safe.** Internal endpoint identifiers can no + longer ride the metadata-index crossing (a native provider serializes it); + they stay on the graph operations where they belong. - **A broken accelerator install can never read as "not installed."** The auto-detection free pass now requires the resolution error to name the accelerator package itself, exactly — a missing platform-binary sibling From efa042b52cd64187538984e5e17dfb3d83f47eae Mon Sep 17 00:00:00 2001 From: David Snelling Date: Wed, 26 Aug 2026 09:44:47 -0700 Subject: [PATCH 2/2] chore(release): 10.4.0 --- CHANGELOG.md | 5 +++++ package-lock.json | 4 ++-- package.json | 2 +- 3 files changed, 8 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 494ae950..a8d186da 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,11 @@ All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines. +### [10.4.0](https://source.soulcraft.com/soulcraft/brainy/compare/v10.4.0-rc.4...v10.4.0) (2026-08-26) + +- docs(releases): the 10.4.0 entry catches up to the late trains — repair routing, the vector ledger and open-gate leg, the loud config guard, the JSON-safe crossing (834149ed) + + ### [10.4.0-rc.4](https://source.soulcraft.com/soulcraft/brainy/compare/v10.4.0-rc.3...v10.4.0-rc.4) (2026-08-25) - feat(vector): the vectored-noun scalar joins the count ledger; the open gate closes the vector leg (9730835b) diff --git a/package-lock.json b/package-lock.json index 9daf75f3..4c85804b 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "@soulcraft/brainy", - "version": "10.4.0-rc.4", + "version": "10.4.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@soulcraft/brainy", - "version": "10.4.0-rc.4", + "version": "10.4.0", "license": "MIT", "dependencies": { "@msgpack/msgpack": "^3.1.2", diff --git a/package.json b/package.json index fdee766f..a8db7f0b 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@soulcraft/brainy", - "version": "10.4.0-rc.4", + "version": "10.4.0", "description": "Universal Knowledge Protocol™ - World's first Triple Intelligence database unifying vector, graph, and document search in one API. Stage 3 CANONICAL: 42 nouns × 127 verbs covering 96-97% of all human knowledge.", "main": "dist/index.js", "module": "dist/index.js",