diff --git a/RELEASES.md b/RELEASES.md index 27ea135f..270ba970 100644 --- a/RELEASES.md +++ b/RELEASES.md @@ -10,13 +10,13 @@ Full auto-generated changelog: `CHANGELOG.md` · Releases: https://github.com/so --- -## v8.0.0 — release candidate (`8.0.0-rc.1` published 2026-06-20 on npm tag `rc`) +## v8.0.0 — release candidate (`8.0.0-rc.2` published 2026-06-21 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.1` is live** — install with +no separate migration doc. **`8.0.0-rc.2` is live** — install with `npm i @soulcraft/brainy@rc` to try it; the `latest` tag stays on 7.x until GA. > **rc.1 additions (this entry predates them — full writeup lands at GA):** entity-id @@ -32,6 +32,24 @@ no separate migration doc. **`8.0.0-rc.1` is live** — install with > param, instead of the old silent remap-or-drop. Pass reserved values as their dedicated top-level > params. Opt back into the legacy behavior with `new Brainy({ reservedFieldPolicy: 'warn' | 'remap' })`. +> **rc.2 additions (2026-06-21):** +> - **Graph performance + the `brain.graph` namespace.** New `brain.graph.subgraph(seeds, opts)` +> (bounded multi-hop neighborhood → `{ nodes, edges, truncated }`) and `brain.graph.export(opts)` +> (stream the whole graph in one O(N+E) pass — the right primitive for visualizing all data +> instead of paging per node). `related({ node })` returns every edge incident to an entity in +> **both directions** in one O(degree) call. Under the hood: `related({ from/to })` now stays +> O(degree) under the default visibility filter (was a full scan), and the verb **and** noun +> pagination walks are cursor-based, so a full edge/node walk is **O(N), not O(N²)** (a consumer +> measured a 19k-edge whole-graph read drop from ~27s toward a single scan). These transparently +> use a native graph engine when present (the `@soulcraft/cor` 3.0 acceleration layer) and fall +> back to pure-TS adjacency otherwise. +> - **Additive ergonomics:** `add({ upsert: true })` (create-or-update in one call — merges into an +> existing id instead of overwriting), `find({ includeVectors: true })`, and `removeMany`'s batch +> size is now storage-adaptive (was a hardcoded 10). +> - **Correctness fixes (apply to all consumers, not just graph users):** `related()` results now +> carry `visibility`; whole-graph/`getNouns` streaming no longer leaks `system`/`internal` entities; +> and small-page cursor walks over nouns no longer loop. No API change — just correct behavior. + ### Headline: Database as a Value 8.0 replaces Brainy's two overlapping version-control subsystems (copy-on-write