feat(8.0): brain.fillSubtypes migration helper + pre-RC1 gap closure
- brain.fillSubtypes(rules): idempotent subtype back-fill for pre-8.0 data.
One rule per NounType/VerbType (literal default or per-entry function);
fills only entries still missing a subtype through the public update()/
updateRelation() paths; returns { scanned, filled, skipped, errors, byType }.
Full unit suite in tests/unit/brainy/fill-subtypes.test.ts.
- Fix getNouns/getVerbs pagination hasMore (peek one past the window) —
was permanently false, silently truncating every multi-page walk.
- find({ near }) without near.id now throws a teaching error instead of an
opaque storage sharding failure; CLI --threshold without --near applies a
plain score floor.
- CLI init/close audit: every one-shot command init()s, close()s, and exits
explicitly; delete the unmaintained interactive REPL; replace the cloud-era
storage subcommands with status/batch-delete; new types/validate commands.
- requireSubtype JSDoc now documents the 8.0 default-on contract; audit()
recommendation points at fillSubtypes.
- Docs: data-storage-architecture rewritten to the real 8.0 on-disk layout;
README storage section reflects filesystem+memory and snapshots; eli5 and
SEMANTIC_VFS /as-of/ semantics corrected; internal tracker IDs and
.strategy references scrubbed from published files.
This commit is contained in:
parent
9b0f4acd5b
commit
c44678390e
30 changed files with 1517 additions and 3226 deletions
|
|
@ -226,7 +226,7 @@ describe('Brainy strict-mode self-test (7.30.1)', () => {
|
|||
const report = await brain.audit()
|
||||
expect(report.total).toBeGreaterThanOrEqual(1)
|
||||
expect(report.entitiesWithoutSubtype['person']).toBe(1)
|
||||
expect(report.recommendation).toMatch(/Migrate via/)
|
||||
expect(report.recommendation).toMatch(/fillSubtypes/)
|
||||
})
|
||||
|
||||
it('excludes VFS entities by default (they bypass enforcement anyway)', async () => {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue