brainy/src/versioning
David Snelling 9db67d0148 fix: resolve critical COW ref resolution and versioning bugs
Fixed three critical bugs in v5.3.0:

1. COW ref resolution bug (lines 2354, 2856, 2895 in src/brainy.ts):
   - getHistory(), commit(), deleteBranch() were prepending 'heads/' to branch names
   - This caused RefManager to resolve 'heads/main' to 'refs/heads/heads/main'
   - Actual ref file at 'refs/heads/main' could not be found
   - Result: "Ref not found: heads/main" error breaking all COW operations

2. VersionManager commitHash bug (lines 212, 222 in src/versioning/VersionManager.ts):
   - save() was assigning entire Ref object to commitHash instead of ref.commitHash
   - Expected string, got object causing type mismatches in version metadata

3. Test mock improvements (tests/unit/versioning/VersionManager.test.ts):
   - Fixed searchByMetadata to skip metadata check for 'type' property
   - Added glob pattern support for tag filtering (e.g. 'v1.*')
   - Added deleteNounMetadata mock
   - Fixed getNounMetadata to return null for missing version entities

Fixes:
- src/brainy.ts (3 lines): Remove 'heads/' prefix from ref resolution calls
- src/versioning/VersionManager.ts (2 lines): Use ref.commitHash instead of ref
- tests/unit/versioning/VersionManager.test.ts: Fix test mocks
- tests/integration/history-ref-resolution-bug.test.ts: Add regression tests

Test Results:
- Before: 16 test failures
- After: 0 failures in VersionManager tests, 1183/1208 total tests passing (98%)
2025-11-04 13:05:59 -08:00
..
VersionDiff.ts feat: add entity versioning system with critical bug fixes (v5.3.0) 2025-11-04 11:19:02 -08:00
VersionIndex.ts feat: add entity versioning system with critical bug fixes (v5.3.0) 2025-11-04 11:19:02 -08:00
VersioningAPI.ts feat: add entity versioning system with critical bug fixes (v5.3.0) 2025-11-04 11:19:02 -08:00
VersionManager.ts fix: resolve critical COW ref resolution and versioning bugs 2025-11-04 13:05:59 -08:00
VersionStorage.ts feat: add entity versioning system with critical bug fixes (v5.3.0) 2025-11-04 11:19:02 -08:00