v1.37.15
Breaking Changes📦 weaviateView on GitHub →
⚠ 1 breaking✨ 3 features🐛 53 fixes⚡ 1 deprecations🔧 14 symbols
Summary
This release includes performance improvements across various modules like HNSW and BM25, adds new features such as cross-property AND matching and new generative modules, and fixes numerous bugs related to replication, caching, and data handling.
⚠️ Breaking Changes
- Removed support for restoring old backup formats. Users should ensure backups are in the current format before upgrading.
✨ New Features
- Added support for cross-property AND matching in BM25 search.
- Added TwelveLabs Marengo multimodal vectorizer to the multi2vec-twelvelabs module.
- Added DigitalOcean generative module.
🐛 Bug Fixes
- Route shard access through Index.withShardOrRemote.
- Allocate per-tenant vector cache memory lazily and proportionally to tenant size.
- Unify the loading-shard readiness check and fix FetchObjects.
- Add retry to module base client.
- Fix data race in TestPartialChunkRecovery.
- Pin the nearObject anchor in the unlimited vector search tests.
- Stop truncating UUIDs in id_as_bytes and batch-delete uuid.
- Put actionable error text in msg on the boot and exit paths.
- Reduce HNSW snapshot allocations.
- Require every Bucket to carry a logger.
- Fix disposable_created size label off-by-one.
- Roll back shouldAbort when ctx expires while callback runs.
- Roll back abort when ctx expires while callback runs.
- Skip collection tick while previous report is still running.
- Cancel and drain the cache prefill before teardown.
- Fix 'quantizer not initialized' search error during RQ lazy initialization.
- Don't hold the DB index lock across a verbose node-status scan.
- Reduce allocations in tenant activity tracking.
- Don't allocate a mutex on every key-locker call.
- Parallelize BM25 block term creation across properties.
- Slab-allocate visited sparse-set segments.
- Respect per-query concurrency budget in compressed rescore.
- Fix usage module with named vectors where one is a prefix of another.
- Handle ECONNRESET errors in handlePanics function.
- Handle context cancellation in cursor operations to prevent incorrect nil returns.
- Remove tmp files in compaction/cleanup on failure.
- Resolve replicas locally, never implicitly activate a tenant in async replication.
- Return the gRPC query profile when a query matches no objects.
- Adapt qa_pr.sh log fetch to gh >= 2.97 escape-sequence guard.
- Clean up partial HNSW commit log on aborted flat->HNSW upgrade (v1.37).
- Parallelize rescoring with budget-aware workers.
- Read rescore vectors through one bucket view with pooled buffers.
- Return explicit bm25 b/k1 values of 0 in schema responses.
- Remove TestReadSnapshotBufferAllocation which was flaky.
- Warm the version map in the background at startup.
- Backport #12079 and #12127 to stable/v1.37.
- Targeted replace scan with newest-wins visibility.
- Read targeted-scan ranges straight from the file.
- Fixes bugs segment group tmp file recovery.
- Hold the posting lock during version map warmup.
- Count occupied slots, and add PreloadIfAbsent.
- Bound vector reads by their declared segment.
- Don't let SIGPIPE break the gh escape-sequence feature check.
- Wait for storage to settle instead of relaxing the assertions.
- Don't panic when a batch has objects with no vectorizable properties.
- Add MUVERA specific usage calculations.
- Register disable_dimension_metrics as a runtime override.
- Restore cache reads for uncompressed non-MUVERA late-interaction rescore.
- Write WAL tombstone pair before publishing inverted doc tombstone.
- Fix all linter issues coming form golangci-list v2.13.1.
- Upgrade modules light and modules api runners to ubicloud-standard-4.
- Merge remote shard aggregations after JSON round trip (mean/median/mode panic on multi-node).
- Pin minimum openssl version so cached builds pull CVE fixes.
Affected Symbols
⚡ Deprecations
- The non-hardlink backup fallback is deprecated and will be removed in v1.40.