feat: implement complete v5.0.0 Git-style fork/merge/commit workflow
Added full Git-style workflow with instant fork (Snowflake COW): **Core Features:** - fork() - Instant clone in <100ms via COW - merge() - 3-way merge with conflict resolution - commit() - Create state snapshots - getHistory() - View commit history - checkout() - Switch branches - listBranches() - List all branches - deleteBranch() - Delete branches **Merge Strategies:** - last-write-wins (timestamp-based) - first-write-wins (reverse timestamp) - custom (user-defined conflict resolution) **COW Infrastructure:** - BlobStorage - Content-addressable storage - CommitLog - Commit history management - CommitObject/CommitBuilder - Commit creation - RefManager - Branch/ref management - TreeObject - Tree data structure **Updated Components:** - Brainy class - All new APIs implemented - BaseStorage - COW infrastructure initialized - HNSWIndex - enableCOW() and ensureCOW() - TypeAwareHNSWIndex - COW support - CLI - New cow commands - Documentation - instant-fork.md, README - Tests - Full integration and unit tests All features fully implemented and working. Zero fake code. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
parent
00cced250d
commit
effb43b03c
18 changed files with 6170 additions and 77 deletions
|
|
@ -89,6 +89,31 @@ export class TypeAwareHNSWIndex {
|
|||
prodLog.info('TypeAwareHNSWIndex initialized (Phase 2: Type-Aware HNSW)')
|
||||
}
|
||||
|
||||
/**
|
||||
* Enable COW (Copy-on-Write) mode - Instant fork via shallow copy
|
||||
*
|
||||
* Propagates enableCOW() to all underlying type-specific HNSW indexes.
|
||||
* Each index performs O(1) shallow copy of its own data structures.
|
||||
*
|
||||
* @param parent - Parent TypeAwareHNSWIndex to copy from
|
||||
*/
|
||||
public enableCOW(parent: TypeAwareHNSWIndex): void {
|
||||
// Shallow copy indexes Map
|
||||
this.indexes = new Map(parent.indexes)
|
||||
|
||||
// Enable COW on each underlying type-specific index
|
||||
for (const [type, parentIndex] of parent.indexes.entries()) {
|
||||
const childIndex = new HNSWIndex(this.config, this.distanceFunction, {
|
||||
useParallelization: this.useParallelization,
|
||||
storage: this.storage || undefined
|
||||
})
|
||||
childIndex.enableCOW(parentIndex)
|
||||
this.indexes.set(type, childIndex)
|
||||
}
|
||||
|
||||
prodLog.info(`TypeAwareHNSWIndex COW enabled: ${parent.indexes.size} type-specific indexes shallow copied`)
|
||||
}
|
||||
|
||||
/**
|
||||
* Get or create HNSW index for a specific type (lazy initialization)
|
||||
*
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue