Change8

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

  1. Update CI runners for acceptance, integration, and module tests to use ubicloud runners.
  2. 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).

Affected Symbols