diff --git a/RELEASES.md b/RELEASES.md index 1935bb1d..018856c0 100644 --- a/RELEASES.md +++ b/RELEASES.md @@ -10,7 +10,17 @@ Full auto-generated changelog: `CHANGELOG.md` · Releases: https://github.com/so --- -## v8.0.13 — 2026-07-07 (accurate boot log — established stores no longer report "New installation") +## v8.0.14 — 2026-07-07 (7→8 migration preserves branch-scoped non-entity state instead of deleting it) + +Defense-in-depth for the one-time 7→8 layout migration. The migration rescues the head branch's +entities (`branches//entities/*` → `entities/*`) and then drained the whole `branches//` +directory. If a 7.x engine had written durable state under the head branch *outside* `entities/` +(a branch-scoped index, blob area, or field registry), that drain would have silently deleted it — +the same failure class as the VFS content blobs a 7.x store kept in `_cow/`. The migration now drains +the branch only when nothing but the moved entities remains; if any non-entity object survives, it +**preserves the branch** (no delete) and logs a loud warning naming the leftover keys, so the state is +recoverable rather than lost. No effect on a normal migration (a clean branch still drains); purely a +guard against silent data loss. Cosmetic boot-log fix. Every persisted 8.0 store logged `📁 New installation: using depth 1 sharding` on **every** open — even established brains holding thousands of entities — which is