From 6c9a43816cb160768a3878e65d0d5f996c64784b Mon Sep 17 00:00:00 2001 From: David Snelling Date: Mon, 29 Jun 2026 10:30:44 -0700 Subject: [PATCH] =?UTF-8?q?docs(8.0):=20RELEASES.md=20=E2=80=94=20rc.5=20h?= =?UTF-8?q?ardening=20+=20the=20breaking=20operator=20removal?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Opus 4.8 --- RELEASES.md | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/RELEASES.md b/RELEASES.md index 2c453af7..aea1ab9b 100644 --- a/RELEASES.md +++ b/RELEASES.md @@ -10,15 +10,30 @@ Full auto-generated changelog: `CHANGELOG.md` · Releases: https://github.com/so --- -## v8.0.0 — release candidate (`8.0.0-rc.2` published 2026-06-21 on npm tag `rc`) +## v8.0.0 — release candidate (`8.0.0-rc.5` published 2026-06-24 on npm tag `rc`) **Affected products:** every consumer — this is a major release with removed surfaces, hard renames (no aliases, no deprecation period), and one flipped default. This entry **is** the migration guide: the find/replace pairs, the sed snippet, and the upgrade checklist below are the complete story — there is -no separate migration doc. **`8.0.0-rc.2` is live** — install with +no separate migration doc. **`8.0.0-rc.5` is live** — install with `npm i @soulcraft/brainy@rc` to try it; the `latest` tag stays on 7.x until GA. +> **rc.3–rc.5 additions (2026-06-24):** +> - **Showcase-quality GA hardening (rc.5).** A full readiness audit closed a cold-init +> version-coupling bug (a matched native provider could be rejected on first open), turned +> silent storage-read failures into named `BrainyError`s (no more empty-result-on-error), +> stopped the JS graph LSM from orphaning compacted SSTables, corrected the public docs to +> the real API, and documented the two headline methods. Plus a dead/deprecated-code sweep. +> - **BREAKING — 4 deprecated query operators removed.** `is`→`eq`, `isNot`→`ne`, +> `greaterEqual`→`gte`, `lessEqual`→`lte`. The canonical operators and their clean long-form +> aliases (`equals`/`notEquals`/`greaterThan`/`greaterThanOrEqual`/`lessThan`/`lessThanOrEqual`) +> are unchanged — only the four redundant spellings are gone. Find/replace if you used them. +> - **`find()` search mode** is now the single `searchMode: SearchMode` option (the redundant, +> silently-ignored `mode` alias and the unwired `explain` flag were removed from `FindParams`). +> - The phantom index-integrity guard (find() re-validates every result against its predicate) +> shipped in rc.3; rc.4 added the `accel.isInitialized` gate + #35 at-gen candidate vectors. + > **rc.1 additions (this entry predates them — full writeup lands at GA):** entity-id > normalization — `brain.newId()` (UUID v7) + v7 default ids, and non-UUID string ids are > transparently normalized to a stable UUID v5 (original key preserved under `_originalId`);