-
v5.10.2 Stable
released this
2025-11-15 01:12:46 +01:00 | 551 commits to main since this releaseDownloads
-
Source code (ZIP)
1 download
-
Source code (TAR.GZ)
1 download
-
Source code (ZIP)
-
released this
2025-11-15 00:31:13 +01:00 | 553 commits to main since this release🚨 CRITICAL HOTFIX - Blob Integrity Regression
v5.10.0 regressed the v5.7.2 blob integrity bug, causing 100% VFS file read failure. This hotfix restores functionality with defense-in-depth architecture.
Problem Fixed
- Symptom:
Blob integrity check failed: <hash>errors on every VFS file read - Root Cause: Missing defense-in-depth unwrap verification in
BlobStorage.read() - Impact: 100% failure rate for VFS file operations in Workshop application
The Solution (v5.10.1)
1. Defense-in-Depth Architecture
- ✅ Unwrap at BOTH layers: adapter (v5.7.5) AND blob layer (v5.10.1)
- ✅ Works even if adapter fails to unwrap or is buggy
- ✅ Metadata also unwrapped before parsing
2. DRY Principle - Single Source of Truth
- ✅ Created
binaryDataCodec.tsas single source of truth - ✅ All wrap/unwrap operations use shared utilities
- ✅ Works across ALL 8 storage adapters
3. Comprehensive Testing
- ✅ Created
TestWrappingAdapter.tsthat actually wraps data like production - ✅ Added 3 regression tests that would have caught this bug
- ✅ All tests pass ✓
Files Modified
NEW:
src/storage/cow/binaryDataCodec.ts- Single source of truth for binary encoding/decodingtests/helpers/TestWrappingAdapter.ts- Real wrapping adapter for testing
FIXED:
src/storage/cow/BlobStorage.ts:314,342- Defense-in-depth unwrap for metadata & datasrc/storage/baseStorage.ts:332,340- Uses shared binaryDataCodec utilitiestests/unit/storage/cow/BlobStorage.test.ts:513-610- 3 regression tests
Architecture Improvements
- ✅ Defense-in-Depth: Unwrap at BOTH adapter and blob layers
- ✅ DRY Principle: All wrap/unwrap operations use shared
binaryDataCodec.ts - ✅ Works Across ALL 8 Storage Adapters: FileSystem, Memory, S3, GCS, Azure, R2, OPFS, Historical
- ✅ Prevents Future Regressions: Real wrapping tests catch this bug class
Related Issues
- v5.7.2: Original blob integrity bug - hashed wrapper instead of content
- v5.7.5: First fix - added unwrap to COW adapter (necessary but insufficient)
- v5.10.0: Regression - missing defense-in-depth in BlobStorage layer
- v5.10.1: Complete fix - defense-in-depth + DRY architecture + comprehensive tests
Installation
npm install @soulcraft/brainy@5.10.1Verification
- ✅ Build: Zero TypeScript errors
- ✅ Tests: All 3 regression tests pass
- ✅ Architecture: DRY, defense-in-depth, works across all adapters
Downloads
-
Source code (ZIP)
1 download
-
Source code (TAR.GZ)
1 download
- Symptom:
-
released this
2025-11-14 21:57:01 +01:00 | 554 commits to main since this releaseFull Changelog: https://github.com/soulcraftlabs/brainy/compare/v5.9.0...v5.10.0
Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
1 download
-
Source code (ZIP)
-
v5.9.0 Stable
released this
2025-11-14 20:46:44 +01:00 | 557 commits to main since this releaseFull Changelog: https://github.com/soulcraftlabs/brainy/compare/v5.7.13...v5.9.0
Downloads
-
Source code (ZIP)
1 download
-
Source code (TAR.GZ)
1 download
-
Source code (ZIP)
-
v5.7.13 Stable
released this
2025-11-14 02:09:45 +01:00 | 562 commits to main since this releaseDownloads
-
Source code (ZIP)
1 download
-
Source code (TAR.GZ)
1 download
-
Source code (ZIP)
-
released this
2025-11-13 23:54:17 +01:00 | 564 commits to main since this releaseDownloads
-
Source code (ZIP)
1 download
-
Source code (TAR.GZ)
1 download
-
Source code (ZIP)
-
released this
2025-11-13 23:21:23 +01:00 | 566 commits to main since this releaseDownloads
-
Source code (ZIP)
1 download
-
Source code (TAR.GZ)
1 download
-
Source code (ZIP)
-
released this
2025-11-13 20:56:43 +01:00 | 568 commits to main since this releaseFull Changelog: https://github.com/soulcraftlabs/brainy/compare/v5.7.9...v5.7.10
Downloads
-
Source code (ZIP)
1 download
-
Source code (TAR.GZ)
1 download
-
Source code (ZIP)
-
v5.7.9 Stable
released this
2025-11-13 20:08:00 +01:00 | 570 commits to main since this releaseFull Changelog: https://github.com/soulcraftlabs/brainy/compare/v5.7.8...v5.7.9
Downloads
-
Source code (ZIP)
1 download
-
Source code (TAR.GZ)
1 download
-
Source code (ZIP)
-
released this
2025-11-13 19:46:11 +01:00 | 572 commits to main since this releasev5.7.8: CRITICAL HOTFIX - HNSW Connections Deserialization
Critical Bug Fixed
Fixed "noun.connections.entries is not a function" error reported by Workshop team when using v5.7.7 with lazy loading.
Root Cause
When HNSW data was loaded from JSON storage via
getNounsWithPagination(), theconnectionsfield (which should beMap<number, Set<string>>) was deserialized as a plain JavaScript object{}. Subsequent code that expected a Map with.entries()method would crash.The Fix
Added defensive deserialization in
baseStorage.ts:1156-1168to reconstruct the Map and Sets from plain objects when loading from storage:// v5.7.8: Convert connections from plain object to Map (JSON deserialization fix) const connections = new Map<number, Set<string>>() if (noun.connections && typeof noun.connections === 'object') { for (const [levelStr, ids] of Object.entries(noun.connections)) { if (Array.isArray(ids)) { connections.set(parseInt(levelStr, 10), new Set<string>(ids)) } } }Impact
- ✅ Fixes HNSW index rebuild failures
- ✅ Workshop team can now use v5.7.7+ lazy loading without crashes
- ✅ All existing data formats supported (defensive checks)
- ✅ No data migration required
Upgrade
npm install @soulcraft/brainy@5.7.8No code changes needed - existing applications work automatically.
For Workshop Team
This fixes the blocking issue you reported. The lazy loading feature from v5.7.7 will now work correctly with your existing data.
Testing:
- Build: ✅ PASS
- Unit tests: ✅ PASS (1,032/1,032 tests)
- Published: ✅ npm @soulcraft/brainy@5.7.8
Full Changelog: https://github.com/soulcraftlabs/brainy/compare/v5.7.7...v5.7.8
Downloads
-
Source code (ZIP)
1 download
-
Source code (TAR.GZ)
1 download