v2.2.1
Add:
- Added
src/test.shhelper script to run the solution tests with XPlat code coverage and generate HTML, Markdown, and text coverage reports. - Added regression tests in
BugDiscoveryTestsandDiskVectorDatabaseTeststo cover paging metadata, empty database stream round-tripping, disk persistence reload behavior, immediate visibility of disk-backed writes, and immediate reopen-after-delete persistence. - Added
CoverageExpansionTeststo extend coverage across model types, exception hierarchy, ID generators,VectorTextResult,TextDataLoader,DatabaseFile, memory store branches, and obsolete serialization wrappers. - Added
DiskStoreRegressionTeststo validate disk-backed vocabulary and vector store serialization, deserialization, enumeration, and persistence behavior.
Fixed:
- Fixed
.Search()/.SearchAsync()result paging metadata soTotalPagesis calculated from the total result count instead of echoing the requested page size. - Fixed
MemoryVectorDatabase<TMetadata>deserialization from an empty binary stream so ID generation resets correctly instead of failing when no items exist. - Fixed
BasicDiskVectorStoreread-after-write behavior so added items are immediately visible toCount,GetIds(),ContainsKey(), enumeration, and search before the background disk flush completes. - Fixed
BasicDiskVectorStoredelete persistence to avoid WAL truncation races when a database is reopened immediately after delete operations. - Fixed reopened disk-backed databases to correctly expose persisted IDs and search results after checkpoint recovery.
- Fixed
BasicDiskVocabularyStore.DeserializeFromJsonStreamAsyncso deserialized vocabularies restore the in-memory lookup cache as well as the persisted vocabulary map. - Fixed
BasicDiskVectorStore.SerializeToJsonStreamAsyncto flush pending operations before serialization and persist actual vector items rather than only index offsets. - Fixed
BasicDiskVectorStore.DeserializeFromJsonStreamAsyncto rebuild item storage, index, visible IDs, and cache from serialized vector items. - Updated the package version to
2.2.1and refreshed the copyright year range to2024-2026.
Notes:
- Added
coveragereportto.gitignoreto keep generated coverage artifacts out of source control.