v1.38.5
📦 weaviateView on GitHub →
✨ 3 features🐛 29 fixes🔧 21 symbols
Summary
This release focuses on numerous bug fixes and performance improvements across various modules, including LSMKV, HNSW, and search functionalities. It also introduces new features like structured where-filter for hybrid search and warnings for overlapping collection cycles.
Migration Steps
- Update CI runners for acceptance, integration, and module tests to use ubicloud runners.
- Split unit tests into adapters and non-adapters parts.
✨ New Features
- Expose structured where-filter on the MCP hybrid search tool.
- Warn when collection cycles overlap the collection interval.
- Make in-place segment cleanup switch crash-atomic.
🐛 Bug Fixes
- Fix batch vectorization deadlocks.
- Fix flat vectors invisible to flat cached search after restart with unflushed data.
- Clear tombstone metric when resetting the HNSW graph.
- Fix flaky GQL acceptance test with EC issues.
- Thread per-query budget into sroar merge fan-out.
- Sort WALs before recovery so the newest stays the active memtable.
- Reuse read buffer in objectsByDocID.
- Reuse read buffer in docID resolution loops for sorter and group-by.
- Skip lazy-unloaded tenant shards in TTL sweep.
- Handle http client concurrency in acceptance tests.
- Retry on memberlist join with deadline.
- Widen flaky RansomNote aggregate count assertion.
- Fix HNSW entrypoint repair test flake.
- Atomic LWW on change-log replay for replica movement.
- Reclaim deleted docs' property lengths at compaction.
- Track live-set avgdl at compaction so BM25 scores don't drift with deletes.
- Atomic tokenization+bucket snapshot per BM25 query (LiveQueries flake).
- Partial-state cleanup deleted live class-level deferred-finalize dirs.
- Error on unknown command version instead of looping forever during migration.
- Propagate usage-file removal error in NewShard instead of discarding it.
- Never hold version-map locks across LSM operations.
- Repair search time entrypoint.
- Make class settings optional for generative-google to avoid sending defaults to Gemini.
- Add slow raft apply log gate.
- Remove `consumer.sync` from happy path due to redundancy.
- Eliminate per-call allocations in SelectProperties lookups.
- Exact-size single-alloc marshalling for fan-out payloads (slice 1/3).
- Add more debug logging to ccl usage.
- Namespace suspend scaffolding (errors etc).