docs(8.0): RELEASES.md — rc.9 (migration LOCK + 6x cosine + ES2023/Node22 floor)

This commit is contained in:
David Snelling 2026-07-01 11:52:52 -07:00
parent cf74c25d90
commit 3a33987136

View file

@ -10,7 +10,28 @@ Full auto-generated changelog: `CHANGELOG.md` · Releases: https://github.com/so
--- ---
## v8.0.0 — release candidate (`8.0.0-rc.8` published 2026-06-30 on npm tag `rc`) ## v8.0.0 — release candidate (`8.0.0-rc.9` published 2026-07-01 on npm tag `rc`)
> **rc.9 changes (2026-07-01):**
> - **Whole-brain auto-upgrade is now a coordinated, observable LOCK — supersedes rc.8's no-freeze
> approach.** When a large brain's derived-index format changes (7.x→8.0), the native provider
> rebuilds the indexes from the canonical records **in place** while Brainy **blocks and queues**
> reads and writes — so no operation ever touches a half-built index. This is a clean *blocking
> upgrade to a known-good state* (vs rc.8's online background swap): unknown/halfway states are
> more dangerous than a bounded wait. Small brains still rebuild inline on open. New surface, all
> additive: a typed, exported, retryable **`MigrationInProgressError`** (catch it → HTTP 503 +
> `Retry-After`); `getIndexStatus()` gains **`migrating` + `migration`** progress (never gated —
> the readiness-probe signal); a **`migrationWaitTimeoutMs`** config (default 30 s — it bounds the
> *caller's wait*, NOT the rebuild, which is unbounded); `health()` / `checkHealth()` report the
> upgrade without blocking. No effect without a native provider.
> - **Faster vector search (open-core).** The JS distance functions are rewritten from `reduce` to
> allocation-free loops — **~6× cosine, ~1.4× euclidean** (MEASURED, `tests/benchmarks/distance-microbench.mjs`,
> 384-dim, median of 41). Numerically identical → recall unchanged.
> - **Runtime floor + Bun.** Engines are now **Node ≥22 / Bun ≥1.1** (fixes a Node-24 `EBADENGINE`);
> compiler target ES2023 with DOM dropped from the type lib (8.0 is Node/Bun/Deno-only, no browser
> path). **Bun is recommended as a runtime** (`bun add` / `bun run`); the single-binary
> `bun build --compile` is not a supported target (native addon can't embed + a Bun 1.3.10 codegen
> regression). `.d.ts` stays TS-5.x-parseable.
> **rc.8 additions (2026-06-30) — additive, no breaking change:** > **rc.8 additions (2026-06-30) — additive, no breaking change:**
> - **No-freeze (online) whole-brain auto-upgrade.** When a derived-index format changes, a large > - **No-freeze (online) whole-brain auto-upgrade.** When a derived-index format changes, a large