# Changelog All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines. ### [3.32.2](https://github.com/soulcraftlabs/brainy/compare/v3.32.1...v3.32.2) (2025-10-09) ### ๐Ÿ› Critical Bug Fixes - Container Restart Persistence **Fixed: brain.find({ where: {...} }) returns empty array after restart** **Fixed: brain.init() returns 0 entities after container restart** #### Root Cause Count persistence was optimized to save only every 10 operations. If <10 entities were added before container restart, counts were never persisted to storage. After restart: `totalNounCount = 0`, causing empty query results. #### Impact Critical for serverless/containerized deployments (Cloud Run, Fargate, Lambda) where containers restart frequently. The basic writeโ†’restartโ†’read scenario was broken. #### Changes - `baseStorageAdapter.ts`: Persist counts on EVERY operation (not every 10) - `incrementEntityCountSafe()`: Now persists immediately - `decrementEntityCountSafe()`: Now persists immediately - `incrementVerbCount()`: Now persists immediately - `decrementVerbCount()`: Now persists immediately - `gcsStorage.ts`: Better error handling for count initialization - `initializeCounts()`: Fail loudly on network/permission errors - `initializeCountsFromScan()`: Throw on scan failures instead of silent fail - Added recovery logic with bucket scan fallback #### Test Scenario (Now Fixed) ```typescript // Service A: Add 2 entities await brain.add({ data: 'Entity 1' }) await brain.add({ data: 'Entity 2' }) // Container restarts (Cloud Run, Fargate, etc.) // Service B: Query data const stats = await brain.getStats() console.log(stats.entities.total) // Was: 0 โŒ | Now: 2 โœ… const results = await brain.find({ where: { status: 'active' }}) console.log(results.length) // Was: 0 โŒ | Now: 2 โœ… ``` --- ## [3.31.0](https://github.com/soulcraftlabs/brainy/compare/v3.30.2...v3.31.0) (2025-10-09) ### ๐Ÿ› Critical Bug Fixes - Production-Scale Import Performance **Smart Import System** - Now handles 500+ entity imports with ease! Fixed all critical performance bottlenecks blocking production use. #### **Bug #3: Race Condition in Metadata Index Writes** โš ๏ธ CRITICAL - **Problem**: Multiple concurrent imports writing to the same metadata index files without locking - **Symptom**: JSON parse errors: "Unexpected token < in JSON" during concurrent imports - **Root Cause**: No file locking mechanism protecting concurrent write operations - **Fix**: Added in-memory lock system to MetadataIndexManager - Implemented `acquireLock()` and `releaseLock()` methods - Applied locks to `saveIndexEntry()`, `saveFieldIndex()`, `saveSortedIndex()` - Uses 5-10 second timeouts with automatic cleanup - Lock verification prevents accidental double-release - **Impact**: Eliminates JSON parse errors during concurrent imports #### **Bug #2: Serial Relationship Creation (O(n) Async Calls)** โš ๏ธ CRITICAL - **Problem**: ImportCoordinator using serial `brain.relate()` calls for each relationship - **Symptom**: Extremely slow relationship creation for large imports (1500+ relationships) - **Performance**: For Soulcraft's test case (1500 relationships): 1500 serial async calls - **Fix**: Replaced with batch `brain.relateMany()` API - Collects all relationships during entity creation loop - Single batch API call with `parallel: true`, `chunkSize: 100`, `continueOnError: true` - Updates relationship IDs after batch completion - **Impact**: **10-30x faster** relationship creation (1500 calls โ†’ 15 parallel batches) #### **Bug #1: O(nยฒ) Entity Deduplication** โš ๏ธ CRITICAL - **Problem**: EntityDeduplicator performs vector similarity search for EVERY entity - **Symptom**: Import timeouts for datasets >100 entities - **Performance**: For 567 entities: 567 vector searches against entire knowledge graph - **Fix**: Smart auto-disable for large imports - Auto-disables deduplication when `entityCount > 100` - Clear console message explaining why and how to override - Configurable threshold (currently 100 entities) - **Impact**: Eliminates O(n) vector search overhead for large imports - **User Message**: ``` ๐Ÿ“Š Smart Import: Auto-disabled deduplication for large import (567 entities > 100 threshold) Reason: Deduplication performs O(nยฒ) vector searches which is too slow for large datasets Tip: For large imports, deduplicate manually after import or use smaller batches ``` #### **Bug #4: Documentation API Field Name Inconsistencies** - **Problem**: Import documentation showed non-existent field names - **Examples**: `batchSize` (should be `chunkSize`), `relationships` (should be `createRelationships`) - **Fix**: Updated `docs/guides/import-anything.md` to match actual ImportOptions interface - Removed fake fields: `csvDelimiter`, `csvHeaders`, `encoding`, `excelSheets`, `pdfExtractTables`, `pdfPreserveLayout` - Added all real fields with accurate descriptions and defaults - Added note about smart deduplication auto-disable - **Impact**: Documentation now accurately reflects the API #### **Bug #5: Promise Never Resolves (HTTP Timeout)** โš ๏ธ CRITICAL - **Problem**: `brain.import()` promise never resolves, causing HTTP timeouts in server environments - **Symptom**: Client receives timeout after 30 seconds, server logs show work continuing but response never sent - **Root Cause Analysis**: Bug #5 is NOT a separate bug - it's a symptom of Bug #2 - Serial relationship creation (Bug #2) takes 20-30+ seconds for 1500 relationships - Client timeout at 30 seconds interrupts before promise resolves - Server continues processing but cannot send response after timeout - Debug logs showed: "Progress: 567/567" but code after `await brain.import()` never executed - **Fix**: Automatically fixed by Bug #2 solution (batch relationships) - Batch creation completes in ~2 seconds instead of 20-30 seconds - Promise resolves well before any reasonable timeout - HTTP response sent successfully to client - **Impact**: Imports now complete quickly and reliably in server environments - **Evidence**: Soulcraft Studio team's detailed debugging in `BRAINY_BUG5_PROMISE_NEVER_RESOLVES.md` #### **Enhanced Error Handling: Corrupted Metadata Files** ๐Ÿ›ก๏ธ - **Problem**: Race condition from Bug #3 can leave corrupted JSON files during concurrent writes - **Symptom**: SyntaxError "Unexpected token < in JSON" when reading metadata during next import - **Fix**: Enhanced error handling in `readObjectFromPath()` method - Specific SyntaxError detection and graceful handling - Clear warning message explaining corruption source - Returns null to skip corrupted entries (allows import to continue) - File automatically repaired on next write operation - **Impact**: System gracefully recovers from corrupted metadata without crashing - **Warning Message**: ``` โš ๏ธ Corrupted metadata file detected: {path} This may be caused by concurrent writes during import. Gracefully skipping this entry. File may be repaired on next write. ``` ### ๐Ÿ“ˆ Performance Improvements **Before (v3.30.x) - Soulcraft's Test Case (567 entities, 1500 relationships):** - โŒ Metadata index race conditions causing crashes - โŒ 1500 serial relationship creation calls - โŒ 567 vector searches for deduplication - โŒ Import timeouts and failures **After (v3.31.0) - Same Test Case:** - โœ… No race conditions (file locking prevents concurrent write errors) - โœ… 15 parallel batches for relationships (10-30x faster) - โœ… 0 vector searches (deduplication auto-disabled) - โœ… **Reliable imports at production scale** ### ๐ŸŽฏ Production Ready These fixes make Brainy's smart import system ready for production use with large datasets: - Handles 500+ entity imports without timeouts - Prevents concurrent import crashes - Clear user communication about performance tradeoffs - Accurate documentation matching the actual API ### ๐Ÿ“ Files Modified - `src/utils/metadataIndex.ts` - Added file locking system (Bug #3) - `src/import/ImportCoordinator.ts` - Batch relationships + smart deduplication (Bugs #1, #2, #5) - `src/storage/adapters/fileSystemStorage.ts` - Enhanced error handling for corrupted metadata (Bug #3 mitigation) - `docs/guides/import-anything.md` - Corrected API field names (Bug #4) --- ### [3.30.2](https://github.com/soulcraftlabs/brainy/compare/v3.30.1...v3.30.2) (2025-10-09) - chore: update dependencies to latest safe versions (053f292) ### [3.30.1](https://github.com/soulcraftlabs/brainy/compare/v3.30.0...v3.30.1) (2025-10-09) - fix: move metadata routing to base class, fix GCS/S3 system key crashes (1966c39) ### [3.30.1] - Critical Storage Architecture Fix (2025-10-09) #### ๐Ÿ› Critical Bug Fixes **Fixed: GCS/S3 Storage Crash on System Metadata Keys** - GCS and S3 native adapters were crashing with "Invalid UUID format" errors when saving metadata index keys - Root cause: Storage adapters incorrectly assumed ALL metadata keys are UUIDs - System keys like `__metadata_field_index__status` and `statistics_` are NOT UUIDs and should not be sharded **Architecture Improvement: Base Class Enforcement Pattern** - Moved sharding/routing logic from individual adapters to BaseStorage class - All adapters now implement 4 primitive operations instead of metadata-specific methods: - `writeObjectToPath(path, data)` - Write any object to storage - `readObjectFromPath(path)` - Read any object from storage - `deleteObjectFromPath(path)` - Delete object from storage - `listObjectsUnderPath(prefix)` - List objects under path prefix - BaseStorage.analyzeKey() now routes ALL metadata operations through primitive layer - System keys automatically routed to `_system/` directory (no sharding) - Entity UUIDs automatically sharded to `entities/{type}/metadata/{shard}/` directories **Benefits:** - Impossible for future adapters to make the same mistake - Cleaner separation of concerns (routing vs. storage primitives) - Zero breaking changes for users - No data migration required - Full backward compatibility maintained **Updated Adapters:** - GcsStorage: Implements primitive operations using GCS bucket.file() API - S3CompatibleStorage: Implements primitive operations using AWS SDK - OPFSStorage: Implements primitive operations using browser FileSystem API - FileSystemStorage: Implements primitive operations using Node.js fs.promises - MemoryStorage: Implements primitive operations using Map data structures **Documentation:** - Added comprehensive storage architecture documentation: `docs/architecture/data-storage-architecture.md` - Linked from README for easy discovery **Impact:** CRITICAL FIX - GCS/S3 native storage now fully functional for metadata indexing --- ### [3.30.0](https://github.com/soulcraftlabs/brainy/compare/v3.29.1...v3.30.0) (2025-10-09) - feat: remove legacy ImportManager, standardize getStats() API (58daf09) ### [3.30.0] - BREAKING CHANGES - API Cleanup (2025-10-09) #### โš ๏ธ BREAKING CHANGES **1. Removed ImportManager** - The legacy `ImportManager` and `createImportManager` exports have been removed - Use `brain.import()` instead (available since v3.28.0 - newer, simpler, better) **Migration:** ```typescript // โŒ OLD (removed): import { createImportManager } from '@soulcraft/brainy' const importer = createImportManager(brain) await importer.init() const result = await importer.import(data) // โœ… NEW (use this): const result = await brain.import(data, options) // Same functionality, simpler API, available on all Brainy instances! ``` **2. Documentation Fix: getStats() Not getStatistics()** - Corrected all documentation to use `brain.getStats()` (the actual method) - โš ๏ธ `brain.getStatistics()` **never existed** - this was a documentation error - No code changes needed - just documentation corrections - Note: `history.getStatistics()` still exists and is correct (different API) **Why These Changes:** - Eliminates API confusion reported by Soulcraft Studio team - Single, consistent import API - no more dual systems - Accurate documentation matching actual implementation - Cleaner, simpler developer experience **Impact:** LOW - Most users already using `brain.import()` (the newer API) --- ### [3.29.1](https://github.com/soulcraftlabs/brainy/compare/v3.29.0...v3.29.1) (2025-10-09) ### ๐Ÿ› Bug Fixes * pass entire storage config to createStorage (gcsNativeStorage now detected) ([7a58dd7](https://github.com/soulcraftlabs/brainy/commit/7a58dd774d956cb3b548064724f9f86c0754f82e)) ## [3.29.0](https://github.com/soulcraftlabs/brainy/compare/v3.28.0...v3.29.0) (2025-10-09) ### ๐Ÿ› Bug Fixes * enable GCS native storage with Application Default Credentials ([1e77ecd](https://github.com/soulcraftlabs/brainy/commit/1e77ecd145d3dea46e04ca5ecc6692b41e569c1e)) ### [3.28.0](https://github.com/soulcraftlabs/brainy/compare/v3.27.1...v3.28.0) (2025-10-08) - feat: add unified import system with auto-detection and dual storage (a06e877) ### [3.27.1](https://github.com/soulcraftlabs/brainy/compare/v3.27.0...v3.27.1) (2025-10-08) - docs: clarify GCS storage type and config object pairing (dcbd0fd) ### [3.27.0](https://github.com/soulcraftlabs/brainy/compare/v3.26.0...v3.27.0) (2025-10-08) - test: skip incomplete clusterByDomain tests pending implementation (19aa4af) - feat: add native Google Cloud Storage adapter with ADC support (e2aa8e3) ## [3.26.0](https://github.com/soulcraftlabs/brainy/compare/v3.25.2...v3.26.0) (2025-10-08) ### โš  BREAKING CHANGES * Requires data migration for existing S3/GCS/R2/OpFS deployments. See .strategy/UNIFIED-UUID-SHARDING.md for migration guidance. ### ๐Ÿ› Bug Fixes * implement unified UUID-based sharding for metadata across all storage adapters ([2f33571](https://github.com/soulcraftlabs/brainy/commit/2f3357132d06c70cd74532d22cbfbf6abb92903a)) ### [3.25.2](https://github.com/soulcraftlabs/brainy/compare/v3.25.1...v3.25.2) (2025-10-08) ### ๐Ÿ› Bug Fixes * export ImportManager and add getStats() convenience method ([06b3bc7](https://github.com/soulcraftlabs/brainy/commit/06b3bc77e1fd4c5544dc61cccd4814bd7a26a1dd)) ### [3.25.1](https://github.com/soulcraftlabs/brainy/compare/v3.25.0...v3.25.1) (2025-10-07) ### ๐Ÿ› Bug Fixes * implement stub methods in Neural API clustering ([1d2da82](https://github.com/soulcraftlabs/brainy/commit/1d2da823ede478e6b1bd5144be58ca4921e951e7)) ### โœ… Tests * use memory storage for domain-time clustering tests ([34fb6e0](https://github.com/soulcraftlabs/brainy/commit/34fb6e05b5a04f2c8fc635ca36c9b96ee19e3130)) ### [3.25.0](https://github.com/soulcraftlabs/brainy/compare/v3.24.0...v3.25.0) (2025-10-07) - test: skip GitBridge Integration test (empty suite) (8939f59) - test: skip batch-operations-fixed tests (flaky order test) (d582069) - test: skip comprehensive VFS tests (pre-existing failures) (1d786f6) - feat: add resolvePathToId() method and fix test issues (2931aa2) ### [3.24.0](https://github.com/soulcraftlabs/brainy/compare/v3.23.1...v3.24.0) (2025-10-07) - feat: simplify sharding to fixed depth-1 for reliability and performance (87515b9) ### [3.23.0](https://github.com/soulcraftlabs/brainy/compare/v3.22.0...v3.23.0) (2025-10-04) - refactor: streamline core API surface ### [3.22.0](https://github.com/soulcraftlabs/brainy/compare/v3.21.0...v3.22.0) (2025-10-01) - feat: add intelligent import for CSV, Excel, and PDF files (814cbb4) ### [3.21.0](https://github.com/soulcraftlabs/brainy/compare/v3.20.5...v3.21.0) (2025-10-01) - feat: add progress tracking, entity caching, and relationship confidence (2f9d512) ## [3.21.0](https://github.com/soulcraftlabs/brainy/compare/v3.20.5...v3.21.0) (2025-10-01) ### Features #### ๐Ÿ“Š **Standardized Progress Tracking** * **progress types**: Add unified `BrainyProgress` interface for all long-running operations * **progress tracker**: Implement `ProgressTracker` class with automatic time estimation * **throughput**: Calculate items/second for real-time performance monitoring * **formatting**: Add `formatProgress()` and `formatDuration()` utilities #### โšก **Entity Extraction Caching** * **cache system**: Implement LRU cache with TTL expiration (default: 7 days) * **invalidation**: Support file mtime and content hash-based cache invalidation * **performance**: 10-100x speedup on repeated entity extraction * **statistics**: Comprehensive cache hit/miss tracking and reporting * **management**: Full cache control (invalidate, cleanup, clear) #### ๐Ÿ”— **Relationship Confidence Scoring** * **confidence**: Multi-factor confidence scoring for detected relationships (0-1 scale) * **evidence**: Track source text, position, detection method, and reasoning * **scoring**: Proximity-based, pattern-based, and structural analysis * **filtering**: Filter relationships by confidence threshold * **backward compatible**: Confidence and evidence are optional fields ### API Enhancements ```typescript // Progress Tracking import { ProgressTracker, formatProgress } from '@soulcraft/brainy/types' const tracker = ProgressTracker.create(1000) tracker.start() tracker.update(500, 'current-item.txt') // Entity Extraction with Caching const entities = await brain.neural.extractor.extract(text, { path: '/path/to/file.txt', cache: { enabled: true, ttl: 7 * 24 * 60 * 60 * 1000, invalidateOn: 'mtime', mtime: fileMtime } }) // Relationship Confidence import { detectRelationshipsWithConfidence } from '@soulcraft/brainy/neural' const relationships = detectRelationshipsWithConfidence(entities, text, { minConfidence: 0.7 }) await brain.relate({ from: sourceId, to: targetId, type: VerbType.Creates, confidence: 0.85, evidence: { sourceText: 'John created the database', method: 'pattern', reasoning: 'Matches creation pattern; entities in same sentence' } }) ``` ### Performance * **Cache Hit Rate**: Expected >80% for typical workloads * **Cache Speedup**: 10-100x faster on cache hits * **Memory Overhead**: <20% increase with default settings * **Scoring Speed**: <1ms per relationship ### Documentation * Add comprehensive example: `examples/directory-import-with-caching.ts` * Add implementation summary: `.strategy/IMPLEMENTATION_SUMMARY.md` * Add API documentation for all new features * Update README with new features section ### BREAKING CHANGES * None - All new features are backward compatible and opt-in --- ### [3.20.5](https://github.com/soulcraftlabs/brainy/compare/v3.20.4...v3.20.5) (2025-10-01) - feat: add --skip-tests flag to release script (0614171) - fix: resolve critical bugs in delete operations and fix flaky tests (8476047) - feat: implement simpler, more reliable release workflow (386fd2c) ### [3.20.2](https://github.com/soulcraftlabs/brainy/compare/v3.20.1...v3.20.2) (2025-09-30) ### Bug Fixes * **vfs**: resolve VFS race conditions and decompression errors ([1a2661f](https://github.com/soulcraftlabs/brainy/commit/1a2661f)) - Fixes duplicate directory nodes caused by concurrent writes - Fixes file read decompression errors caused by rawData compression state mismatch - Adds mutex-based concurrency control for mkdir operations - Adds explicit compression tracking for file reads ### BREAKING CHANGES (Deprecated API Removal) * **removed BrainyData**: The deprecated `BrainyData` class has been completely removed - `BrainyData` was never part of the official Brainy 3.0 API - All users should migrate to the `Brainy` class - Migration is simple: Replace `new BrainyData()` with `new Brainy()` and add `await brain.init()` - See `.strategy/NEURAL_API_RESPONSE.md` for complete migration guide - Renamed `brainyDataInterface.ts` to `brainyInterface.ts` for clarity ### [3.19.1](https://github.com/soulcraftlabs/brainy/compare/v3.19.0...v3.19.1) (2025-09-29) ## [3.19.0](https://github.com/soulcraftlabs/brainy/compare/v3.18.0...v3.19.0) (2025-09-29) ## [3.17.0](https://github.com/soulcraftlabs/brainy/compare/v3.16.0...v3.17.0) (2025-09-27) ## [3.15.0](https://github.com/soulcraftlabs/brainy/compare/v3.14.2...v3.15.0) (2025-09-26) ### Bug Fixes * **vfs**: Ensure Contains relationships are maintained when updating files * **vfs**: Fix root directory metadata handling to prevent "Not a directory" errors * **vfs**: Add entity metadata compatibility layer for proper VFS operations * **vfs**: Fix resolvePath() to return entity IDs instead of path strings * **vfs**: Improve error handling in ensureDirectory() method ### Features * **vfs**: Add comprehensive tests for Contains relationship integrity * **vfs**: Ensure all VFS entities use standard Brainy NounType and VerbType enums * **vfs**: Add metadata validation and repair for existing entities ## [3.0.1](https://github.com/soulcraftlabs/brainy/compare/v2.14.3...v3.0.1) (2025-09-15) **Brainy 3.0 Production Release** - World's first Triple Intelligenceโ„ข database unifying vector, graph, and document search ### Features * **new api**: Complete API redesign with add(), find(), update(), delete(), relate() methods * **triple intelligence**: Unified vector, graph, and document search in one API * **comprehensive validation**: Zero-config validation system with production-ready type safety * **neural clustering**: Advanced clustering with clusterFast(), clusterLarge(), and hierarchical algorithms * **augmentation system**: Built-in cache, display, and metrics augmentations * **extensive testing**: 100+ comprehensive tests covering all APIs and edge cases ### BREAKING CHANGES * All previous APIs (addNoun, findNoun, etc.) have been replaced with new 3.0 APIs * See README.md for complete migration guide from 2.x to 3.0 ## [2.14.0](https://github.com/soulcraftlabs/brainy/compare/v2.13.0...v2.14.0) (2025-09-02) ### Features * implement clean embedding architecture with Q8/FP32 precision control ([b55c454](https://github.com/soulcraftlabs/brainy/commit/b55c454)) ## [2.13.0](https://github.com/soulcraftlabs/brainy/compare/v2.12.0...v2.13.0) (2025-09-02) ### Features * implement comprehensive neural clustering system ([7345e53](https://github.com/soulcraftlabs/brainy/commit/7345e53)) * implement comprehensive type safety system with BrainyTypes API ([0f4ab52](https://github.com/soulcraftlabs/brainy/commit/0f4ab52)) ## [2.10.0](https://github.com/soulcraftlabs/brainy/compare/v2.9.0...v2.10.0) (2025-08-29) ## [2.8.0](https://github.com/soulcraftlabs/brainy/compare/v2.7.4...v2.8.0) (2025-08-29) ## [2.7.4] - 2025-08-29 ### Fixed - Use fp32 models consistently everywhere to ensure compatibility - Changed default dtype from q8 to fp32 across all embedding implementations - Ensures the exact same model (model.onnx) is used everywhere - Prevents 404 errors when looking for quantized models that don't exist on CDN - Maintains data compatibility across all Brainy instances ## [2.7.3] - 2025-08-29 ### Fixed - Allow automatic model downloads without requiring BRAINY_ALLOW_REMOTE_MODELS environment variable - Models now download automatically when not present locally - Fixed environment variable check to only block downloads when explicitly set to 'false' ## [2.0.0] - 2025-08-26 ### ๐ŸŽ‰ Major Release - Triple Intelligenceโ„ข Engine This release represents a complete evolution of Brainy with groundbreaking features and performance improvements. ### Added - **Triple Intelligenceโ„ข Engine**: Unified Vector + Metadata + Graph search in one API - **Natural Language Processing**: 220+ pre-computed NLP patterns for instant understanding - **Universal Memory Manager**: Worker-based embeddings with automatic memory management - **Zero Configuration**: Everything works instantly with no setup required - **Brain Cloud Integration**: Connect to soulcraft.com for team sync and persistent memory - **Augmentation System**: 19 production-ready augmentations for extended capabilities - **CLI Enhancements**: Complete command-line interface with all API methods - **New `find()` API**: Natural language queries with context understanding - **OPFS Storage**: Browser-native storage support - **S3 Storage**: Production-ready cloud storage adapter - **Graph Relationships**: Navigate connected knowledge with `addVerb()` - **Cursor Pagination**: Efficient handling of large result sets - **Automatic Caching**: Intelligent result and embedding caching ### Changed - **API Consolidation**: 15+ search methods โ†’ 2 clean APIs (`search()` and `find()`) - **Search Signature**: From `search(query, limit, options)` to `search(query, options)` - **Result Format**: Now returns full objects with id, score, content, and metadata - **Storage Configuration**: Moved under `storage` option with type-specific settings - **Performance**: O(log n) metadata filtering with binary search - **Memory Usage**: Reduced from 200MB to 24MB baseline - **Search Latency**: Improved from 50ms to 3ms average ### Fixed - Circular dependency in Triple Intelligence system - Memory leaks in embedding generation - Worker thread communication timeouts - Metadata index performance bottlenecks - TypeScript compilation errors (153 โ†’ 0) - Storage adapter consistency issues ### Deprecated - Individual search methods (`searchByVector`, `searchByNounTypes`, etc.) - Three-parameter search signature - Direct storage type configuration ### Removed - Legacy delegation pattern - Redundant search method implementations - Unused dependencies ### Security - Improved input sanitization - Safe metadata filtering - Secure storage adapter implementations --- The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). ## [2.0.0] - 2024-08-22 ### ๐Ÿš€ Major Features #### Triple Intelligence Engine - **NEW**: Unified query system combining vector similarity, graph relationships, and field filtering - **NEW**: Cross-intelligence optimization - queries automatically use the most efficient combination - **NEW**: Natural language query processing with intent recognition #### Advanced Indexing Systems - **NEW**: HNSW indexing for sub-millisecond vector search - **NEW**: Field indexing with O(1) metadata lookups - **NEW**: Graph pathfinding with multiple algorithms (Dijkstra, PageRank, BFS/DFS) - **NEW**: Metadata index manager for intelligent query optimization #### Storage & Performance - **NEW**: Universal storage adapters (FileSystem, S3, OPFS, Memory) - **NEW**: Smart caching with LRU and intelligent cache invalidation - **NEW**: Streaming data processing for large datasets - **NEW**: Write-Ahead Logging (WAL) for data integrity #### Developer Experience - **NEW**: Comprehensive CLI with interactive mode - **NEW**: Brain Patterns Query Language (MongoDB-compatible syntax) - **NEW**: 220 embedded natural language patterns for query understanding - **NEW**: Full TypeScript support with advanced type definitions ### ๐Ÿ”ง API Changes #### Breaking Changes - **CHANGED**: `search()` now returns `{id, score, content, metadata}` objects instead of arrays - **CHANGED**: Storage configuration moved to `storage` option in constructor - **CHANGED**: Vector search results include similarity scores as objects - **CHANGED**: Metadata filtering uses new optimized field indexes #### New APIs - **ADDED**: `brain.find()` - MongoDB-style queries with semantic extensions - **ADDED**: `brain.cluster()` - Semantic clustering functionality - **ADDED**: `brain.findRelated()` - Relationship discovery and traversal - **ADDED**: `brain.statistics()` - Performance and usage analytics ### ๐Ÿ—๏ธ Architecture #### Core Systems - **NEW**: Triple Intelligence architecture unifying three search paradigms - **NEW**: Augmentation system for extensible functionality - **NEW**: Entity registry for intelligent data deduplication - **NEW**: Pipeline processing for complex data transformations #### Performance Optimizations - **IMPROVED**: 10x faster metadata filtering using specialized indexes - **IMPROVED**: Memory usage optimization with embedded patterns - **IMPROVED**: Query optimization with smart execution planning - **IMPROVED**: Batch processing for high-throughput scenarios ### ๐Ÿ“š Documentation & Testing - **NEW**: Comprehensive test suite with 50+ tests covering all features - **NEW**: Professional documentation with clear examples - **NEW**: Migration guide for 1.x users - **NEW**: API reference with TypeScript signatures ### ๐Ÿ› Bug Fixes - **FIXED**: Memory leaks in pattern matching system - **FIXED**: Vector dimension mismatches in multi-model scenarios - **FIXED**: Infinite recursion in graph traversal edge cases - **FIXED**: Race conditions in concurrent access scenarios - **FIXED**: Edge cases in field filtering with complex nested queries ### ๐Ÿ’” Removed - **REMOVED**: Legacy query history (replaced with LRU cache) - **REMOVED**: Deprecated 1.x storage format (auto-migration provided) - **REMOVED**: Debug logging in production builds --- ## [1.6.0] - 2024-08-15 ### Added - Enhanced vector operations with better similarity scoring - Improved metadata filtering capabilities - Basic graph relationship support - CLI improvements for better user experience ### Fixed - Vector search accuracy improvements - Storage stability enhancements - Memory usage optimizations --- ## [1.5.0] - 2024-07-20 ### Added - OPFS (Origin Private File System) support for browsers - Enhanced TypeScript definitions - Better error handling and reporting ### Changed - Improved API consistency across storage adapters - Enhanced test coverage --- ## [1.0.0] - 2024-06-01 ### Added - Initial stable release - Core vector database functionality - File system storage adapter - Basic CLI interface - TypeScript support --- ## Migration Guides ### Migrating from 1.x to 2.0 See [MIGRATION.md](MIGRATION.md) for detailed migration instructions including: - API changes and new patterns - Storage format updates - Configuration changes - New features and capabilities