fix: user metadata named 'level' is a real field everywhere — the engine-internal node layer no longer shadows it in sort/filter/aggregation, and the indexing views stop stamping a phantom 0 into its column; index epoch 2 rebuilds existing brains at first open
Also completes the v8.10.2 write-granularity law for the transact() plan path: a metadata-only batch update never rewrites the vector-bearing noun record (planUpdate staged the unconditional save the update() fix removed). Seven pins in tests/integration/level-field-shadow.test.ts including the reporting consumer's exact repro rows; orderBy JSDoc documents the ordering contract and the announced field-addressing law.
This commit is contained in:
parent
cb717be275
commit
1a09be0628
8 changed files with 259 additions and 17 deletions
|
|
@ -245,7 +245,9 @@ describe('rc.8 no-freeze migration deference (isMigrating / stampBrainFormat / b
|
|||
it('the brain-format marker module exports the compiled epoch + data-format constants', () => {
|
||||
// cor imports these from '@soulcraft/brainy/brain-format' (Hook 3) so both
|
||||
// sides share ONE source of truth — no duplicated constant to drift.
|
||||
expect(EXPECTED_INDEX_EPOCH).toBe(1)
|
||||
// Epoch 2: user metadata named `level` became indexable (the reserved-name
|
||||
// shadow fix, 2026-08-03) — pre-fix brains rebuild derived indexes at open.
|
||||
expect(EXPECTED_INDEX_EPOCH).toBe(2)
|
||||
expect(CURRENT_DATA_FORMAT).toBe('8.0')
|
||||
})
|
||||
})
|
||||
|
|
|
|||
Reference in a new issue