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`);