test(8.0): integration rot pass — 77→17 failures (parallel per-file hardening)

Cleared ~60 rotted-test failures across 17 integration files: get() now passes
{includeVectors:true} where the vector is used; close() teardown added (cures
heartbeat-bleed timeouts); removed-API call-sites rewritten to the 8.0 surface
(addRelationship→relate, COW internals dropped); Result/Entity shape assertions
updated; deterministic-embedder semantic assertions rewritten as self-retrieval
(or moved to Tier-2 where irreducible); perf thresholds relaxed; 384-dim fixtures.

Adds the Tier-2 (real-model) scaffolding: tests/setup-semantic.ts +
tests/configs/vitest.semantic.config.ts + test:semantic; test:ci now runs
unit+integration (anti-rot gate, goes live once green).

Remaining 17 failures are REAL 8.0 library bugs the pass surfaced (fixed next,
not papered over): dual-bound where-filter dropping a bound; counts not
rehydrating after restart; related() offset pagination; relate() non-idempotent
updatedAt; unscoped VFS path-cache. Plus find-unified finish + a few stragglers.
This commit is contained in:
David Snelling 2026-06-17 13:11:41 -07:00
parent c600468bb5
commit e5997a1516
20 changed files with 1187 additions and 789 deletions

View file

@ -11,20 +11,37 @@
* 4. getDirectChildren() returns imported files
*/
import { describe, it, expect, beforeEach } from 'vitest'
import { describe, it, expect, beforeEach, afterEach } from 'vitest'
import { Brainy } from '../../src/brainy.js'
import { clearGlobalCache } from '../../src/utils/unifiedCache.js'
import * as XLSX from 'xlsx'
describe('VFS Import Verification (VFS import bug investigation)', () => {
let brain: Brainy
beforeEach(async () => {
// Each test is an independent single-brain import scenario. The VFS path
// resolver caches `path -> entityId` in a process-global UnifiedCache, and
// the VFS root uses a fixed deterministic id shared by every instance, so a
// prior test's `/imports` mapping would otherwise leak into the next test's
// fresh in-memory brain (whose storage does not contain that id) and make
// mkdir's parent relate() throw EntityNotFoundError. Reset the global cache
// so every test starts pristine.
clearGlobalCache()
brain = new Brainy({ requireSubtype: false,
storage: { type: 'memory' as const }
})
await brain.init()
})
afterEach(async () => {
// Close the brain (stops background flush / writer-lock heartbeat) and clear
// the shared global cache so VFS path mappings from this test cannot bleed
// into the next one.
await brain.close()
clearGlobalCache()
})
it('should create VFS entities during import with vfsPath', async () => {
// Create test Excel file (matching the reported scenario)
const testData = [