open-brainy/src
David Snelling 3241ae337a fix(vfs): prevent root duplication with fixed-ID pattern (v5.10.0)
CRITICAL FIX for Workshop team's production blocker:
- VFS roots multiplied exponentially (5 → 100+ in 2 minutes)
- Fresh workspace created 7 duplicate roots on first page load
- Root cause: Query-then-create race condition across VFS instances

ARCHITECTURAL SOLUTION:
Replace Smart Root Selection (symptom masking) with fixed-ID pattern (root cause fix).

Changes:
- Use deterministic UUID '00000000-0000-0000-0000-000000000000' for VFS root
- Storage-level uniqueness prevents all duplicates across instances
- Remove selectBestRoot() method (~60 lines) - no longer needed
- Add auto-cleanup for old v5.9.0 UUID-based roots
- Idempotent creation: Concurrent calls gracefully handled

Why this works:
- All VFS instances use same fixed ID
- Storage enforces uniqueness (filesystem/database constraint)
- No queries needed (O(1) get vs O(log n) query)
- Works across server restarts and multi-server deployments
- Simpler code: ~30 lines added, ~60 lines removed

Test Results:
- Build: Zero TypeScript errors
- VFS tests: 116/128 pass (was 57/128 before fix)
- Full suite: 1174/1200 pass (97.8%)

Impact on Workshop:
- Fresh workspace: 1 root (was 7)
- After 2 minutes: 1 root (was 100)
- No manual cleanup needed
- Per-request pattern now fully supported

Technical Details:
- VFS root ID: 00000000-0000-0000-0000-000000000000
- User-visible path: / (path field, not ID)
- Storage path: entities/nouns/collection/metadata/00/00000000...json
- Migration: Auto-cleanup on first init

Fixes: #VFS-ROOT-DUPLICATION
See: .strategy/V5_10_0_VFS_ROOT_FIX.md for complete analysis
2025-11-14 12:51:25 -08:00
..
api feat: add ImageHandler with EXIF extraction and comprehensive MIME detection (v5.2.0) 2025-11-03 14:06:17 -08:00
augmentations fix: resolve VFS tree corruption from blob errors (v5.8.0) 2025-11-14 11:27:35 -08:00
cli fix: update all Stage 2 references to Stage 3 CANONICAL type counts 2025-11-06 09:40:33 -08:00
config fix: enable GCS native storage with Application Default Credentials 2025-10-09 10:39:54 -07:00
cortex feat: Stage 3 CANONICAL taxonomy with 169 types (v5.5.0) 2025-11-06 09:02:23 -08:00
critical feat: add browser environment compatibility support 2025-09-17 15:48:02 -07:00
data feat: Phase 3 - Unified Semantic Type Inference (Nouns + Verbs) 2025-10-16 10:59:26 -07:00
distributed feat(v4.0.0): Complete metadata/vector separation architecture with Azure support 2025-10-17 12:29:27 -07:00
embeddings feat(v4.0.0): Complete metadata/vector separation architecture with Azure support 2025-10-17 12:29:27 -07:00
errors feat: Brainy 3.0 - Production-ready Triple Intelligence database 2025-09-11 16:23:32 -07:00
graph feat: add v5.8.0 features - transactions, pagination, and comprehensive docs 2025-11-14 10:26:23 -08:00
hnsw docs: label all performance claims as MEASURED vs PROJECTED (NO FAKE CODE compliance) 2025-11-14 08:26:45 -08:00
import fix: resolve v5.7.3 race condition by persisting write-through cache (v5.7.4) 2025-11-12 13:18:53 -08:00
importers fix: update all Stage 2 references to Stage 3 CANONICAL type counts 2025-11-06 09:40:33 -08:00
interfaces feat: implement always-adaptive caching with getCacheStats monitoring 2025-10-10 14:09:30 -07:00
mcp refactor: streamline core API surface 2025-10-04 08:52:06 -07:00
neural fix: resolve getRelations() empty array bug for ALL storage adapters (v5.5.0) 2025-11-06 10:47:59 -08:00
patterns 🧠 Brainy 2.0.0 - Zero-Configuration AI Database with Triple Intelligence™ 2025-08-26 12:32:21 -07:00
query docs: label all performance claims as MEASURED vs PROJECTED (NO FAKE CODE compliance) 2025-11-14 08:26:45 -08:00
scripts feat: add node: protocol to all Node.js built-in imports for bundler compatibility 2025-09-17 14:20:21 -07:00
shared refactor: remove deprecated BrainyData class completely 2025-09-30 16:04:00 -07:00
storage fix: resolve critical 378x pagination infinite loop bug (v5.7.11) 2025-11-13 14:20:19 -08:00
streaming feat: Brainy 3.0 - Production-ready Triple Intelligence database 2025-09-11 16:23:32 -07:00
transaction feat: add v5.8.0 features - transactions, pagination, and comprehensive docs 2025-11-14 10:26:23 -08:00
triple feat: Phase 3 - Unified Semantic Type Inference (Nouns + Verbs) 2025-10-16 10:59:26 -07:00
types feat: Stage 3 CANONICAL taxonomy with 169 types (v5.5.0) 2025-11-06 09:02:23 -08:00
universal fix: prevent fs adapter from throwing on import in browser 2025-09-17 16:22:02 -07:00
utils docs: label all performance claims as MEASURED vs PROJECTED (NO FAKE CODE compliance) 2025-11-14 08:26:45 -08:00
versioning fix: resolve critical COW ref resolution and versioning bugs 2025-11-04 13:05:59 -08:00
vfs fix(vfs): prevent root duplication with fixed-ID pattern (v5.10.0) 2025-11-14 12:51:25 -08:00
augmentationManager.ts feat: Brainy 3.0 - Production-ready Triple Intelligence database 2025-09-11 16:23:32 -07:00
augmentationPipeline.ts feat: Brainy 3.0 - Production-ready Triple Intelligence database 2025-09-11 16:23:32 -07:00
brainy.ts feat: add v5.8.0 features - transactions, pagination, and comprehensive docs 2025-11-14 10:26:23 -08:00
coreTypes.ts perf: 48-64× faster HNSW bulk imports via concurrent neighbor updates 2025-10-29 16:10:40 -07:00
cortex.ts 🧠 Brainy 2.0.0 - Zero-Configuration AI Database with Triple Intelligence™ 2025-08-26 12:32:21 -07:00
index.ts feat: expose neural entity extraction APIs (v5.7.6 - Workshop request) 2025-11-13 09:01:56 -08:00
pipeline.ts 🧠 Brainy 2.0.0 - Zero-Configuration AI Database with Triple Intelligence™ 2025-08-26 12:32:21 -07:00
setup.ts chore: enforce consistent coding style and semicolon removal 2025-09-29 09:50:59 -07:00
unified.ts chore: enforce consistent coding style and semicolon removal 2025-09-29 09:50:59 -07:00
worker.ts 🧠 Brainy 2.0.0 - Zero-Configuration AI Database with Triple Intelligence™ 2025-08-26 12:32:21 -07:00