Root Cause:
- API mismatch between BrainyConfig.storage and StorageOptions
- Users pass `path: './data'` but storageFactory expected `rootDirectory`
- Result: user-specified paths were ignored, fallback used instead
- This caused 0 files to be written when custom paths were specified
The Fix (DRY + Zero-Config):
- Created getFileSystemPath() helper as single source of truth
- Supports ALL API variants:
1. Official: { rootDirectory: '...' }
2. User-friendly: { path: '...' }
3. Nested: { options: { rootDirectory: '...' } }
4. Nested path: { options: { path: '...' } }
- Maintains zero-config fallback: './brainy-data'
Impact:
- CRITICAL FIX: Restores filesystem persistence for all users
- No breaking changes - backward compatible with all APIs
- Tested: test-persistence script + 20 unit tests passed
Resolves: v3.43.2 critical regression (Bug #6)
|
||
|---|---|---|
| .. | ||
| api | ||
| augmentations | ||
| cli | ||
| config | ||
| cortex | ||
| critical | ||
| distributed | ||
| embeddings | ||
| errors | ||
| graph | ||
| hnsw | ||
| import | ||
| importers | ||
| interfaces | ||
| mcp | ||
| neural | ||
| patterns | ||
| scripts | ||
| shared | ||
| storage | ||
| streaming | ||
| triple | ||
| types | ||
| universal | ||
| utils | ||
| vfs | ||
| augmentationManager.ts | ||
| augmentationPipeline.ts | ||
| brainy.ts | ||
| coreTypes.ts | ||
| cortex.ts | ||
| index.ts | ||
| pipeline.ts | ||
| setup.ts | ||
| unified.ts | ||
| worker.ts | ||