v0.2.0
[v0.2.0] - 2026-08-15
⚠️ Breaking Changes
- Storage Interface Consolidation: Merged 8 fragmented storage interfaces (
IVectorMemoryStore,IBulkMemoryStore,IBatchMemoryStore,IAtomicMemoryStore,IBatchVectorMemoryStore,IMemoryHistoryStore,IResettableMemoryStore) into a single cohesiveIMemoryStore. - Embedding Generator Consolidation: Merged
IBatchEmbeddingGeneratorintoIEmbeddingGeneratorwith default interface fallback. - Memory Extractor Consolidation: Merged
IBehaviorAwareMemoryExtractorintoIMemoryExtractorwithExtractAsync(messages, options, ct). - Canonical Service Signatures: Standardized
IMemoryServiceandMemoryServicearound canonical options records (MemoryAddOptions,MemorySearchOptions,MemoryPageOptions,MemoryUpdate).
Added
-
SIMD Hardware Acceleration: Integrated
System.Numerics.Tensorsacross vector cosine similarity (TensorPrimitives.CosineSimilarity), vector normalization (TensorPrimitives.Norm), and vector scaling (TensorPrimitives.Divide). -
Native Qdrant REST Search: Implemented native REST vector search via
POST collections/{name}/points/searchandPOST collections/{name}/points/search/batchwith payload filter translation. -
SQLite SQL Pushdown: Pushed down
user_id,agent_id,run_id,scope,behavior,memory_type, andexpires_atfilters directly into parameterized SQLWHEREclauses, streaming records viaIAsyncEnumerable<Memory>. -
PostgreSQL Graph Store Query Pushdown: Term pattern matching for graph boost calculations pushed down to database index scans with
ILIKE ANY($1)instead of full table scans. -
Concurrent LLM Reranking: Added bounded concurrent scoring with
Parallel.ForEachAsync(MaxDegreeOfParallelism = 8) inLlmReranker. -
Reverse Index in In-Memory Entity Store: Added reverse lookup index (
memoryId -> HashSet<string>) to achieve$O(1)$ memory deletions. -
Resilient JSON Parsing: Added markdown fence stripping (
```json) and JSON array slice extractors inLlmMemoryExtractorandLlmGraphMemoryExtractor. -
Strongly-Typed API DTOs: Migrated
OpenAiCompatibleClient,AnthropicClient, andOllamaClientfrom genericJsonNodeheap allocations to strongly-typed DTO records and safe base URI combining.
Optimized
-
BM25 Hybrid Search Complexity: Precomputed document frequencies reduced BM25 search complexity from
$O(D^2 \cdot T)$ to$O(D \cdot T)$ with zero-allocation span tokenization. -
In-Memory Streaming: Removed unnecessary
Task.Yield()state machine overhead inInMemoryStore.GetAllAsync.
Full Changelog: v0.1.7...v0.2.0