# Weaviate changelog > An open-source vector database with built-in vectorization and hybrid search. - Vendor: Weaviate - Category: AI - Official site: https://weaviate.io - Tracked by: What's New (https://whatsnew.fyi/product/weaviate) - Harvested from: GitHub (weaviate/weaviate) - Entries below: 10 (newest first) What's New is an index, not a publisher: every entry below links to the vendor's own release notes, which are the authoritative source. Entries are labelled where they are hand-curated sample data, pre-releases, or drawn from a secondary source such as a developer blog. Reuse: the summaries, labels and curation here are © What's New. Quote freely with attribution and a link back; wholesale republication of the corpus is not permitted — terms: https://whatsnew.fyi/terms. The vendors' own release notes remain their publishers'. ## Releases ### v1.38.9 — v1.38.9 - Backup chunk integrity, usage module and async replication fixes - Date: 2026-08-06 - Version: v1.38.9 - Original notes: https://github.com/weaviate/weaviate/releases/tag/v1.38.9 - Permalink: https://whatsnew.fyi/product/weaviate/releases/v1.38.9 - **fixed** — Skip collection tick while previous report is still running in usage module - **changed** — Don't read file sizes in usage module when not needed - **fixed** — Cancel and drain the cache prefill before HNSW teardown - **fixed** — Fix 'quantizer not initialized' search error during RQ lazy initialization in flat index - **changed** — Parallelize Muvera late-interaction rescoring in HNSW - **changed** — Don't hold the DB index lock across a verbose node-status scan - **changed** — Reduce allocations in tenant activity tracking - **changed** — Don't allocate a mutex on every key-locker call - **added** — Add TwelveLabs Marengo multimodal vectorizer - **changed** — Parallelize block term creation across properties in BM25 - **changed** — Slab-allocate visited sparse-set segments in HNSW - **added** — Respect per-query concurrency budget in compressed rescore for HNSW - **fixed** — Fix usage module with named vectors where one is a prefix of another - **fixed** — Handle ECONNRESET errors in handlePanics function - **fixed** — Handle context cancellation in cursor operations to prevent incorrect nil returns - **fixed** — Remove temporary files in compaction/cleanup on failure - **fixed** — Switch off bloom filters for collection export - **fixed** — Resolve replicas locally in async replication and never implicitly activate a tenant - **fixed** — Refresh the memory monitor while shards are read-only - **deprecated** — The non-hardlink backup fallback is deprecated and will be removed in v1.40 ##### Breaking Changes *none* ##### New Features *none* ##### Fixes * fix(usage): skip collection tick while previous report is still running by @antas-marcin in https://github.com/weaviate/weaviate/pull/12139 * Dont read file sizes in usage module when not needed by @dirkkul in https://github.com/weaviate/weaviate/pull/12418 * fix(hnsw): cancel and drain the cache prefill before teardown by @moogacs in https://github.com/weaviate/weaviate/pull/12408 * flat: fix 'quantizer not initialized' search error during RQ lazy initialization by @asdine in https://github.com/weaviate/weaviate/pull/12419 * perf(hnsw): parallelize Muvera late-interaction rescoring by @etiennedi in https://github.com/weaviate/weaviate/pull/10536 * Don't hold the DB index lock across a verbose node-status scan by @dirkkul in https://github.com/weaviate/weaviate/pull/12375 * Reduce allocations in tenant activity tracking by @dirkkul in https://github.com/weaviate/weaviate/pull/12425 * Don't allocate a mutex on every key-locker call by @dirkkul in https://github.com/weaviate/weaviate/pull/12430 * feat(multi2vec-twelvelabs): add TwelveLabs Marengo multimodal vectorizer by @antas-marcin in https://github.com/weaviate/weaviate/pull/12431 * perf(bm25): parallelize block term creation across properties by @amourao in https://github.com/weaviate/weaviate/pull/12020 * perf(hnsw): slab-allocate visited sparse-set segments by @abdelr in https://github.com/weaviate/weaviate/pull/12374 * feat(hnsw): respect per-query concurrency budget in compressed rescore by @asdine in https://github.com/weaviate/weaviate/pull/12421 * Fix usage module with named vectors where one is a prefix of another by @dirkkul in https://github.com/weaviate/weaviate/pull/12428 * fix(panics): handle ECONNRESET errors in handlePanics function by @amourao in https://github.com/weaviate/weaviate/pull/12449 * fix: handle context cancellation in cursor operations to prevent incorrect nil returns by @amourao in https://github.com/weaviate/weaviate/pull/12448 * Remove tmp files in compaction/cleanup on failure by @dirkkul in https://github.com/weaviate/weaviate/pull/12452 * Switch off bloom filters for collection export by @dirkkul in https://github.com/weaviate/weaviate/pull/12455 * async replication: resolve replicas locally, never implicitly activate a tenant by @jeroiraz in https://github.com/weaviate/weaviate/pull/12256 * Refresh the memory monitor while shards are read-only by @dirkkul in https://github.com/weaviate/weaviate/pull/12468 * docs(backup): mark the non-hardlink backup fallback as deprecated (removed in v1.40) by @etiennedi in https://github.com/weaviate/weaviate/pull/12469 * fix: return the gRPC query profile when a query matches no objects by @etiennedi in https://github.com/weaviate/weaviate/pull/12381 * Use direct map acces for shard movement teardown by @dirkkul in https://github.com/weaviate/weaviate/pull/12467 * fix(tools): adapt qa_pr.sh log fetch to gh >= 2.97 escape-sequence guard by @antas-marcin in https://github.com/weaviate/weaviate/pull/12462 * fix(async-repl): stop worker-pool grow path leaking goroutines by @jeroiraz in https://github.com/weaviate/weaviate/pull/12107 * fix(async-repl): restore shard after a failed tenant freeze by @jeroiraz in https://github.com/weaviate/weaviate/pull/12108 * Merge stable/v1.37 into stable/v1.38 by @antas-marcin in https://github.com/weaviate/weaviate/pull/12472 * test(replication): wait for shard readiness after restart across read_repair suite by @jeroiraz in https://github.com/weaviate/weaviate/pull/12466 * Remove the unused shardReindexerV3 scheduler by @etiennedi in https://github.com/weaviate/weaviate/pull/12478 * fix(dynamic): clean up partial HNSW commit log on aborted flat->HNSW upgrade (v1.37) by @asdine in https://github.com/weaviate/weaviate/pull/12420 * Pool zstd encoders in backups by @dirkkul in https://github.com/weaviate/weaviate/pull/12477 * Backups: never store a partially written _[Truncated at 4000 characters — full notes: https://github.com/weaviate/weaviate/releases/tag/v1.38.9]_ ### v1.39.0 — v1.39.0 - Namespaces, RQ4, Hybrid MMR, Alter Schema, gRPC web, Search REST API - Date: 2026-08-04 - Version: v1.39.0 - Original notes: https://github.com/weaviate/weaviate/releases/tag/v1.39.0 - Permalink: https://whatsnew.fyi/product/weaviate/releases/v1.39.0 - **added** — Add counter for blocked namespace requests - **fixed** — Fix flaky namespace test due to eventual consistency - **changed** — Match colon-containing user/group ids literally for global callers in namespaces - **changed** — Gate to disallow global non-operator users in namespaces - **changed** — Deny operator only surface to namespaced users - **added** — Add namespace local roles - **added** — Add namespace graduation using backup/restore - **added** — Add namespace suspend scaffolding - **added** — Add namespace suspend RAFT states - **changed** — Check namespace status for DB Users in namespace suspend - **fixed** — Fix namespace regexp - **added** — Add endpoints for namespace suspend - **changed** — Return first letters of API keys for admins on namespaced clusters - **fixed** — Record max-impact pair on memtable BlockEntry in BM25 - **changed** — Faster varint decoding with reservoir and 64-bit reads in BM25 - **changed** — Optimize Tier-1 allocation in BlockMax WAND hot path - **changed** — Optimize WAND scoring-loop and data-structures in BM25 - **changed** — Defer tombstone checks from advance-time to scoring in BM25 - **added** — Add support for cross-property AND matching in BM25 search - **changed** — Parallelize block term creation across properties in BM25 ##### Breaking Changes *none* ##### Namespaces *Namespaces add control-plane and data isolation between users on a shared cluster.* * Add counter for blocked namespace requests by @dirkkul in https://github.com/weaviate/weaviate/pull/11721 * Fix namespace test that is flaky due to EC by @dirkkul in https://github.com/weaviate/weaviate/pull/11806 * Namespaces: Match colon-containing user/group ids literally for global callers by @dirkkul in https://github.com/weaviate/weaviate/pull/11868 * Add gate to disallow global non-operator users by @dirkkul in https://github.com/weaviate/weaviate/pull/11908 * Deny operator only surface to namespaced users by @dirkkul in https://github.com/weaviate/weaviate/pull/11922 * Namespace local roles by @dirkkul in https://github.com/weaviate/weaviate/pull/11873 * feat: namespace graduation using backup/restore by @tsmith023 in https://github.com/weaviate/weaviate/pull/11924 * Namespace suspend scaffolding (errors etc) by @dirkkul in https://github.com/weaviate/weaviate/pull/12204 * Namespace suspend RAFT states by @dirkkul in https://github.com/weaviate/weaviate/pull/12239 * Namespace suspend: Check namespace status for DB Users by @dirkkul in https://github.com/weaviate/weaviate/pull/12266 * Fix namespace regexp by @dirkkul in https://github.com/weaviate/weaviate/pull/12292 * Namespace: Add endpoints for suspend by @dirkkul in https://github.com/weaviate/weaviate/pull/12291 * Return first letters of API keys for admins on namespaced clusters by @dirkkul in https://github.com/weaviate/weaviate/pull/12316 ##### BM25 / BlockMax (BMW) rework * fix(bm25): record max-impact pair on memtable BlockEntry by @amourao in https://github.com/weaviate/weaviate/pull/11780 * perf(bm25): faster varint decoding (reservoir + 64-bit reads) by @amourao in https://github.com/weaviate/weaviate/pull/11770 * perf(bm25): Tier-1 allocation cuts in the BlockMax WAND hot path by @amourao in https://github.com/weaviate/weaviate/pull/11772 * perf(bm25): WAND scoring-loop & data-structure optimizations by @amourao in https://github.com/weaviate/weaviate/pull/11773 * perf(bm25): defer tombstone checks from advance-time to scoring by @amourao in https://github.com/weaviate/weaviate/pull/11774 * perf(bm25): tighten block-entry scanning in the WAND loop by @amourao in https://github.com/weaviate/weaviate/pull/11775 * perf(bm25): round-6 query-setup path optimization by @amourao in https://github.com/weaviate/weaviate/pull/11776 * perf(bm25): round-7 matched-branch sort elision by @amourao in https://github.com/weaviate/weaviate/pull/11777 * perf(bm25): gate DoBlockMaxWand prune-branch repair on needFullSort by @amourao in https://github.com/weaviate/weaviate/pull/11915 * fix(bm25): dedup duplicate properties (last boost wins) by @etiennedi in https://github.com/weaviate/weaviate/pull/12004 * fix(bm25): propagate combineResults error (was silent empty results) by @etiennedi in https://github.com/weaviate/weaviate/pull/12007 * perf(bm25): approximate object count for IDF, reuse query stats on blockmax fallback by @amourao in https://github.com/weaviate/weaviate/pull/12017 * fix(bm25): apply propertyBoost to WAND pivot and block-impact bounds by @amourao in https://github.com/weaviate/weaviate/pull/12018 * perf(bm25): cursor tombstone and filter probes in block-max WAND by @amourao in https://github.com/weaviate/weaviate/pull/12046 * perf(bm25): tiered merged filter for block-max WAND by @amourao in https://github.com/weaviate/weaviate/pull/12047 * feat: add support for cross-property AND matching in BM25 search by @amourao in https://github.com/weaviate/weaviate/pull/11929 * perf(bm25): parallelize block term creation across properties by @amourao in https://github.com/weaviate/weaviate/pull/12020 ##### Alter Schema - Reindex property (Preview) *Adds support for changing property's index types.* * [Reindex Fixes A] fix: idempotent recovery-swap marking after mid-FINALIZING restart b _[Truncated at 4000 characters — full notes: https://github.com/weaviate/weaviate/releases/tag/v1.39.0]_ ### v1.38.8 — v1.38.8 - Batch flat ContainsAny/ContainsAll/ContainsNone - Date: 2026-07-29 - Version: v1.38.8 - Original notes: https://github.com/weaviate/weaviate/releases/tag/v1.38.8 - Permalink: https://whatsnew.fyi/product/weaviate/releases/v1.38.8 - **removed** — Remove support for restoring old backup formats - **fixed** — Fix KagomeJa custom-dict throttle release without acquire - **fixed** — Route shard access through Index.withShardOrRemote - **fixed** — Allocate per-tenant vector cache memory lazily and proportionally to tenant size - **fixed** — Unify the loading-shard readiness check and fix FetchObjects in replication - **added** — Add retry to module base client - **fixed** — Fix data race in TestPartialChunkRecovery - **changed** — Return first letters of API keys for admins on namespaced clusters - **added** — Add support for cross-property AND matching in BM25 search - **added** — Add AnalyzeBatch with resolve-once dispatch and metrics at dispatch to tokenizer - **fixed** — Cut per-read allocations on the roaringset read path - **security** — Bump x/net and x/text to address CVE-2026-46600 and CVE-2026-56852 - **fixed** — Stop truncating UUIDs in id_as_bytes and batch-delete uuid in gRPC - **changed** — Put actionable error text in msg on the boot and exit paths - **added** — Add storage-side support for batched Contains resolution in lsmkv/roaringset - **fixed** — Reduce HNSW snapshot allocations - **fixed** — Batch flat ContainsAny/ContainsAll/ContainsNone under one consistent view in inverted index - **fixed** — Require every Bucket to carry a logger - **fixed** — Reset the inactivity deadline on a successful halt in backup - **added** — Introduce new auth broker credentials for backup-s3 ##### Breaking Changes *none* ##### New Features *none* ##### Fixes * Remove support for restoring old backup formats by @dirkkul in https://github.com/weaviate/weaviate/pull/12338 * tokenizer: fix KagomeJa custom-dict throttle release without acquire by @aliszka in https://github.com/weaviate/weaviate/pull/12341 * Route shard access through Index.withShardOrRemote by @dirkkul in https://github.com/weaviate/weaviate/pull/12366 * Allocate per-tenant vector cache memory lazily and proportionally to tenant size by @asdine in https://github.com/weaviate/weaviate/pull/12116 * fix(replication): unify the loading-shard readiness check and fix FetchObjects by @moogacs in https://github.com/weaviate/weaviate/pull/12370 * Add retry to module base client by @dirkkul in https://github.com/weaviate/weaviate/pull/12377 * fix(queue): fix data race in TestPartialChunkRecovery by @asdine in https://github.com/weaviate/weaviate/pull/12383 * Return first letters of API keys for admins on namespaced clusters by @dirkkul in https://github.com/weaviate/weaviate/pull/12316 * feat: add support for cross-property AND matching in BM25 search by @amourao in https://github.com/weaviate/weaviate/pull/11929 * tokenizer: add AnalyzeBatch with resolve-once dispatch and metrics at dispatch by @aliszka in https://github.com/weaviate/weaviate/pull/12342 * lsmkv/roaringset: cut per-read allocations on the roaringset read path by @aliszka in https://github.com/weaviate/weaviate/pull/12343 * test: pin the nearObject anchor in the unlimited vector search tests by @etiennedi in https://github.com/weaviate/weaviate/pull/12376 * chore(deps): bump x/net and x/text in all three modules (CVE-2026-46600, CVE-2026-56852) by @etiennedi in https://github.com/weaviate/weaviate/pull/12371 * fix(grpc): stop truncating UUIDs in id_as_bytes and batch-delete uuid by @etiennedi in https://github.com/weaviate/weaviate/pull/12348 * log: put actionable error text in msg on the boot and exit paths by @etiennedi in https://github.com/weaviate/weaviate/pull/12354 * lsmkv/roaringset: storage-side support for batched Contains resolution by @aliszka in https://github.com/weaviate/weaviate/pull/12388 * Reduce HNSW snapshot allocations by @dirkkul in https://github.com/weaviate/weaviate/pull/12387 * inverted: batch flat ContainsAny/ContainsAll/ContainsNone under one consistent view by @aliszka in https://github.com/weaviate/weaviate/pull/12395 * fix(lsmkv): require every Bucket to carry a logger by @etiennedi in https://github.com/weaviate/weaviate/pull/12404 * fix(backup): reset the inactivity deadline on a successful halt by @etiennedi in https://github.com/weaviate/weaviate/pull/12403 * fix disposable_created size label off-by-one by @etiennedi in https://github.com/weaviate/weaviate/pull/12373 * feat(backup-s3): introduce new auth broker credentials by @gkampitakis in https://github.com/weaviate/weaviate/pull/11880 * fix(cyclemanager): roll back shouldAbort when ctx expires while callback runs by @etiennedi in https://github.com/weaviate/weaviate/pull/12265 * config, inverted: make batched Contains opt-in via runtime-overridable gate by @aliszka in https://github.com/weaviate/weaviate/pull/12410 * fix(cyclemanager): roll back abort when ctx expires while callback runs by @aliszka in https://github.com/weaviate/weaviate/pull/12411 * Add nested object filtering support to usage module by @dirkkul in https://github.com/weaviate/weaviate/pull/12409 **Full Changelog**: https://github.com/weaviate/weaviate/compare/v1.38.7...v1.38.8 ### v1.39.0-rc.1 — v1.39.0-rc.1 - Namespaces, Alter Schema, gRPC web, Search REST API - Date: 2026-07-29 - Version: v1.39.0-rc.1 - Original notes: https://github.com/weaviate/weaviate/releases/tag/v1.39.0-rc.1 - Permalink: https://whatsnew.fyi/product/weaviate/releases/v1.39.0-rc.1 - Labels: Pre-release - **added** — Namespaces feature is now generally available - **added** — Alter Schema - Reindex property feature in preview - **added** — Alter Schema - Drop vector index feature in preview - **added** — gRPC web is now generally available - **added** — Search REST API is now generally available This is a release candidate for the upcoming v1.39.0 release. A release candidate (RC) means the release is considered feature complete and has finished beta-testing. Any issues discovered during the RC phase will lead to new rc releases. The final rc release becomes the stable release. We're happy for your feedback about this pre-release. This pre-release contains: - Namespaces (GA) - Alter Schema - Reindex property (Preview) - Alter Schema - Drop vector index (Preview) - gRPC web (GA) - Search REST API (GA) ### v1.38.7 — v1.38.7 - Never use a search result as a read-repair payload - Date: 2026-07-27 - Version: v1.38.7 - Original notes: https://github.com/weaviate/weaviate/releases/tag/v1.38.7 - Permalink: https://whatsnew.fyi/product/weaviate/releases/v1.38.7 - **fixed** — Fix empty range results served after enable-rangeable reindex with INDEX_RANGEABLE_IN_MEMORY=true - **changed** — Remove SyncShards in favour of node local Shard.drop - **fixed** — Fix namespace regexp - **changed** — Make number of files that are deduplicated in incremental backups configurable - **fixed** — Shut down vector index when its queue creation fails to avoid orphaning it - **added** — Add endpoints for namespace suspend - **changed** — Replace per-tick due-scan with a due-heap scheduler in cyclemanager - **fixed** — Avoid nil-deref panics in filepath.WalkDir callbacks - **changed** — Update GRPC dependency - **added** — Persistent cluster and node identity for correlatable telemetry - **changed** — Reduce heap usage in HNSW condensor - **fixed** — AddMultiVector idempotence fix - **changed** — Drop fmt.Sprintf from commit-log path builders to save allocations - **changed** — Use a view instead of copy in hnsw packed connection - **changed** — Reduce allocations for auto schema time/uuid parsing - **fixed** — Purge stale GlobalBucketRegistry entries on every teardown path - **fixed** — Reject non-object variables in GraphQL instead of panicking - **changed** — Do not discard teardown work when one shutdown step fails - **changed** — Improve segment index performance by using van Emde Boas layout - **fixed** — Fix bugs in index shutdown ##### Breaking Changes *none* ##### New Features *none* ##### Fixes * Fix empty range results served after enable-rangeable reindex with INDEX_RANGEABLE_IN_MEMORY=true by @byronvoorbach in https://github.com/weaviate/weaviate/pull/12215 * chore(rplc-mvmnt): remove `SyncShards` in favour of node local `Shard.drop` by @tsmith023 in https://github.com/weaviate/weaviate/pull/12217 * Fix namespace regexp by @dirkkul in https://github.com/weaviate/weaviate/pull/12292 * Make number of files that are deduplicated in incremental backups configurable by @dirkkul in https://github.com/weaviate/weaviate/pull/12234 * fix(db): shut down vector index when its queue creation fails to avoid orphaning it by @antas-marcin in https://github.com/weaviate/weaviate/pull/12192 * Namespace: Add endpoints for suspend by @dirkkul in https://github.com/weaviate/weaviate/pull/12291 * cyclemanager: replace per-tick due-scan with a due-heap scheduler by @aliszka in https://github.com/weaviate/weaviate/pull/12099 * fix(replica-fast): avoid `nil`-deref panics in `filepath.WalkDir` callbacks by @tsmith023 in https://github.com/weaviate/weaviate/pull/12300 * Update GRPC dependency by @dirkkul in https://github.com/weaviate/weaviate/pull/12311 * feat(telemetry): persistent cluster and node identity for correlatable telemetry by @moogacs in https://github.com/weaviate/weaviate/pull/12296 * Reduce heap usage in HNSW condensor by @dirkkul in https://github.com/weaviate/weaviate/pull/12306 * AddMultiVector idempotence fix by @trengrj in https://github.com/weaviate/weaviate/pull/12170 * Drop fmt.Sprintf from commit-log path builders to save allocations by @dirkkul in https://github.com/weaviate/weaviate/pull/12310 * Use a view instead of copy in hnsw packed connection by @dirkkul in https://github.com/weaviate/weaviate/pull/12309 * Reduce allocations for auto schema time/uuid parsing by @dirkkul in https://github.com/weaviate/weaviate/pull/12301 * refact(telemetry) gate cluster-id commit on telemetry being enabled by @moogacs in https://github.com/weaviate/weaviate/pull/12326 * fix(lsmkv): purge stale GlobalBucketRegistry entries on every teardown path by @tsmith023 in https://github.com/weaviate/weaviate/pull/12188 * fix(graphql): reject non-object variables instead of panicking by @moogacs in https://github.com/weaviate/weaviate/pull/12332 * Don't discard teardown work when one shutdown step fails by @dirkkul in https://github.com/weaviate/weaviate/pull/12333 * Improve segment index performance by using van Emde Boas layout by @dirkkul in https://github.com/weaviate/weaviate/pull/12327 * Fix bugs in index shutdown by @dirkkul in https://github.com/weaviate/weaviate/pull/12331 * Drop derived file names when recovering an aborted compaction by @dirkkul in https://github.com/weaviate/weaviate/pull/12336 * Fix shard shutdown backup and wrong error return by @dirkkul in https://github.com/weaviate/weaviate/pull/12337 * chore(deps): bump golang.org/x/net to v0.56.0 and golang.org/x/text to v0.39.0 (CVE-2026-46600, CVE-2026-56852) by @etiennedi in https://github.com/weaviate/weaviate/pull/12347 * deps: adjust go dependencies in sub projects by @antas-marcin in https://github.com/weaviate/weaviate/pull/12362 * Release shard references exactly once per acquire by @dirkkul in https://github.com/weaviate/weaviate/pull/12363 * fix(replica): never use a search result as a read-repair payload by @etiennedi in https://github.com/weaviate/weaviate/pull/12355 **Full Changelog**: https://github.com/weaviate/weaviate/compare/v1.38.6...v1.38.7 ### v1.37.14 — v1.37.14 - Never use a search result as a read-repair payload - Date: 2026-07-27 - Version: v1.37.14 - Original notes: https://github.com/weaviate/weaviate/releases/tag/v1.37.14 - Permalink: https://whatsnew.fyi/product/weaviate/releases/v1.37.14 - **fixed** — Do not load all lazy shards for property add - **fixed** — Abort in-flight usage scan when its collection is dropped - **fixed** — Do not load lazy loaded shards on backup restore - **fixed** — Stop commit log churn flaking vector storage size test - **fixed** — Fix flaky TestMakeUnboundedChannel_CapShrink - **fixed** — Retry on join with deadline in memberlist - **changed** — Add EncodeInto for BlockEntry and BlockData in inverted index - **changed** — Pass data start offset to MarshalSortedKeys in lsmkv - **fixed** — Capture values in keyOnly map cursor so keys aren't dropped - **changed** — Add reusable decode helpers for inverted node data in lsmkv - **changed** — Add EncodeAppend arena-append primitive to varenc in lsmkv - **changed** — Add reusable encode pipeline for inverted compaction in lsmkv - **fixed** — Don't fail startup when a single node can't join - **fixed** — Join usage poll goroutines so they cannot assert after test completion - **fixed** — ABBA deadlock between updateReplicationConfig and lazy shard load wedges RAFT FSM - **fixed** — Key the auth singleflight on the key, not just the user - **fixed** — Fix RBAC regexp - **added** — Unified background-process activity and duration metrics - **changed** — Make number of files that are deduplicated in incremental backups configurable - **fixed** — Shut down vector index when its queue creation fails to avoid orphaning it ##### Breaking Changes *none* ##### New Features *none* ##### Fixes * Do not load all lazy shards for property add by @dirkkul in https://github.com/weaviate/weaviate/pull/12184 * fix(usage): abort in-flight usage scan when its collection is dropped by @antas-marcin in https://github.com/weaviate/weaviate/pull/12187 * Do not load lazy loaded shards on backup restore by @dirkkul in https://github.com/weaviate/weaviate/pull/12186 * Stop commit log churn flaking vector storage size test by @dirkkul in https://github.com/weaviate/weaviate/pull/12231 * Backport to v1.36: fix flaky TestMakeUnboundedChannel_CapShrink by @asdine in https://github.com/weaviate/weaviate/pull/12236 * backport: fix(memberlist): retry on join with deadline by @moogacs in https://github.com/weaviate/weaviate/pull/12241 * perf(inverted): add EncodeInto for BlockEntry and BlockData by @amourao in https://github.com/weaviate/weaviate/pull/12150 * perf(lsmkv): pass data start offset to MarshalSortedKeys by @amourao in https://github.com/weaviate/weaviate/pull/12151 * fix(lsmkv): capture values in keyOnly map cursor so keys aren't dropped by @amourao in https://github.com/weaviate/weaviate/pull/12152 * perf(lsmkv): add reusable decode helpers for inverted node data by @amourao in https://github.com/weaviate/weaviate/pull/12154 * perf(lsmkv): add EncodeAppend arena-append primitive to varenc by @amourao in https://github.com/weaviate/weaviate/pull/12149 * perf(lsmkv): add reusable encode pipeline for inverted compaction by @amourao in https://github.com/weaviate/weaviate/pull/12160 * fix(memberlist): don't fail startup when a single node can't join (self-heal) by @moogacs in https://github.com/weaviate/weaviate/pull/12243 * fix(test): join usage poll goroutines so they cannot assert after test completion by @antas-marcin in https://github.com/weaviate/weaviate/pull/12237 * test(async-repl): gate scheduler close tests on dispatch round-trips, not channel-buffer sampling by @jeroiraz in https://github.com/weaviate/weaviate/pull/12250 * fix(db): ABBA deadlock between updateReplicationConfig and lazy shard load wedges RAFT FSM by @jfrancoa in https://github.com/weaviate/weaviate/pull/12238 * perf(lsmkv): wire inverted compaction through the reusable encode pipeline by @amourao in https://github.com/weaviate/weaviate/pull/12161 * perf(lsmkv): reuse decode buffers in the inverted cursor by @amourao in https://github.com/weaviate/weaviate/pull/12163 * perf(lsmkv): reuse the propLengthsView across inverted compaction nodes by @amourao in https://github.com/weaviate/weaviate/pull/12233 * refactor(lsmkv): extract inverted block codec into inverted/blockenc by @amourao in https://github.com/weaviate/weaviate/pull/12244 * fix(lsmkv): repair stable/v1.37 build broken by the v1.36 merge (blockenc.PackedDecode) by @jeroiraz in https://github.com/weaviate/weaviate/pull/12257 * Key the auth singleflight on the key, not just the user by @dirkkul in https://github.com/weaviate/weaviate/pull/12270 * Fix RBAC regexp by @dirkkul in https://github.com/weaviate/weaviate/pull/12251 * feat(monitoring): unified background-process activity + duration metrics by @moogacs in https://github.com/weaviate/weaviate/pull/12275 * Make number of files that are deduplicated in incremental backups configurable by @dirkkul in https://github.com/weaviate/weaviate/pull/12234 * fix(db): shut down vector index when its queue creation fails to avoid orphaning it by @antas-marcin in https://github.com/weaviate/weaviate/pull/12192 * cyclemanager: replace per-tick due-scan with a due-heap scheduler by @aliszka in https://github.com/weaviate/weaviate/pull/12099 * Update GRPC dependency by @dirkkul in https://github.com/weaviate/weaviate/pull/12311 * feat(telemetry): persistent cluster and node identity for correlatable telemetry by @moogacs in https://github.com/weaviate/weaviate/pull/12296 * Reduce heap usage in HNSW condensor by @dirkkul in https://github.com/weaviate/we _[Truncated at 4000 characters — full notes: https://github.com/weaviate/weaviate/releases/tag/v1.37.14]_ ### v1.39.0-rc.0 — v1.39.0-rc.0 - Namespaces, Alter Schema, gRPC web, Search REST API - Date: 2026-07-23 - Version: v1.39.0-rc.0 - Original notes: https://github.com/weaviate/weaviate/releases/tag/v1.39.0-rc.0 - Permalink: https://whatsnew.fyi/product/weaviate/releases/v1.39.0-rc.0 - Labels: Pre-release - **added** — Namespaces is now generally available - **added** — Alter Schema - Reindex property in preview - **added** — Alter Schema - Drop vector index in preview - **added** — gRPC web is now generally available - **added** — Search REST API is now generally available This is a release candidate for the upcoming v1.39.0 release. A release candidate (RC) means the release is considered feature complete and has finished beta-testing. Any issues discovered during the RC phase will lead to new rc releases. The final rc release becomes the stable release. We're happy for your feedback about this pre-release. This pre-release contains: - Namespaces (GA) - Alter Schema - Reindex property (Preview) - Alter Schema - Drop vector index (Preview) - gRPC web (GA) - Search REST API (GA) ### v1.38.6 — v1.38.6 - Hybrid Diversity & MMR Improvements, LSM store inverted compaction improvements, Raft communication Fixes - Date: 2026-07-21 - Version: v1.38.6 - Original notes: https://github.com/weaviate/weaviate/releases/tag/v1.38.6 - Permalink: https://whatsnew.fyi/product/weaviate/releases/v1.38.6 - **added** — Envelope search response with id, properties, references, and metadata fields - **added** — POST /v1/search/{collection}/near-text REST near-text search endpoint - **added** — Hybrid Diversity & MMR search capabilities - **added** — Unified background-process activity and duration metrics for monitoring - **fixed** — Fold changes less than or equal to cutoff into the async-checkpoint bounded hashtree - **fixed** — Concurrent writes during migration converge into the new bucket - **fixed** — Abort in-flight usage scan when its collection is dropped - **fixed** — Reindex task fails and retries on OnTaskCompleted schema-flip failure - **fixed** — Mirror co-located properties on batch-ref and delta writes during reindex - **fixed** — Capture values in keyOnly map cursor so keys are not dropped in lsmkv - **fixed** — Memberlist retries on join with deadline - **fixed** — Memberlist does not fail startup when a single node cannot join - **fixed** — ABBA deadlock between updateReplicationConfig and lazy shard load that wedges RAFT FSM - **fixed** — REST search response camelCase payload fields with nested reserved rerank object - **fixed** — Key authentication singleflight on the key, not just the user - **fixed** — RBAC regexp - **fixed** — Namespace suspend checks namespace status for DB users - **fixed** — HaltForTransfer overlap during concurrent COPY operations - **changed** — Do not load all lazy shards for property add - **changed** — Do not load lazy loaded shards on backup restore - **changed** — Make hashbeat FSM target gate allocation-free for replication performance - **changed** — Add EncodeInto for BlockEntry and BlockData in inverted index ##### Breaking Changes *none* ##### New Features *none* ##### Fixes * feat(rest): envelope search response {id, properties, references, metadata} by @g-despot in https://github.com/weaviate/weaviate/pull/12133 * fix(async-repl): fold ≤cutoff changes into the async-checkpoint bounded hashtree by @jeroiraz in https://github.com/weaviate/weaviate/pull/12128 * feat(rest): POST /v1/search/{collection}/near-text — REST near-text search endpoint by @g-despot in https://github.com/weaviate/weaviate/pull/12077 * perf(replication): make hashbeat FSM target gate allocation-free by @jeroiraz in https://github.com/weaviate/weaviate/pull/12222 * Do not load all lazy shards for property add by @dirkkul in https://github.com/weaviate/weaviate/pull/12184 * fix(reindex): concurrent writes during migration converge into the new bucket (#11688, #298) by @etiennedi in https://github.com/weaviate/weaviate/pull/11985 * fix(usage): abort in-flight usage scan when its collection is dropped by @antas-marcin in https://github.com/weaviate/weaviate/pull/12187 * Do not load lazy loaded shards on backup restore by @dirkkul in https://github.com/weaviate/weaviate/pull/12186 * fix(dtm): fail/retry reindex task on OnTaskCompleted schema-flip failure (#297) by @etiennedi in https://github.com/weaviate/weaviate/pull/11986 * fix(reindex): mirror co-located props on batch-ref and delta writes by @etiennedi in https://github.com/weaviate/weaviate/pull/12210 * Stop commit log churn flaking vector storage size test by @dirkkul in https://github.com/weaviate/weaviate/pull/12231 * Backport to v1.36: fix flaky TestMakeUnboundedChannel_CapShrink by @asdine in https://github.com/weaviate/weaviate/pull/12236 * rest search: camelCase payload fields; nested reserved rerank object by @g-despot in https://github.com/weaviate/weaviate/pull/12227 * backport: fix(memberlist): retry on join with deadline by @moogacs in https://github.com/weaviate/weaviate/pull/12241 * perf(inverted): add EncodeInto for BlockEntry and BlockData by @amourao in https://github.com/weaviate/weaviate/pull/12150 * perf(lsmkv): pass data start offset to MarshalSortedKeys by @amourao in https://github.com/weaviate/weaviate/pull/12151 * fix(lsmkv): capture values in keyOnly map cursor so keys aren't dropped by @amourao in https://github.com/weaviate/weaviate/pull/12152 * perf(lsmkv): add reusable decode helpers for inverted node data by @amourao in https://github.com/weaviate/weaviate/pull/12154 * perf(lsmkv): add EncodeAppend arena-append primitive to varenc by @amourao in https://github.com/weaviate/weaviate/pull/12149 * perf(lsmkv): add reusable encode pipeline for inverted compaction by @amourao in https://github.com/weaviate/weaviate/pull/12160 * fix(memberlist): don't fail startup when a single node can't join (self-heal) by @moogacs in https://github.com/weaviate/weaviate/pull/12243 * Fix race in backup namespace test by @dirkkul in https://github.com/weaviate/weaviate/pull/12247 * fix(test): join usage poll goroutines so they cannot assert after test completion by @antas-marcin in https://github.com/weaviate/weaviate/pull/12237 * test(async-repl): gate scheduler close tests on dispatch round-trips, not channel-buffer sampling by @jeroiraz in https://github.com/weaviate/weaviate/pull/12250 * fix(db): ABBA deadlock between updateReplicationConfig and lazy shard load wedges RAFT FSM by @jfrancoa in https://github.com/weaviate/weaviate/pull/12238 * perf(lsmkv): wire inverted compaction through the reusable encode pipeline by @amourao in https://github.com/weaviate/weaviate/pull/12161 * Namespace suspend RAFT states by @dirkkul in https://github.com/weaviate/weaviate/pull/12239 * perf(lsmkv): reuse decode buffers in the inverted cursor by @amourao in https://github.com/weaviate/weaviate/pull/12163 * perf(lsmkv): reuse the propLengthsView across inverted compaction nodes by @amourao in https://github.com/weaviate/weaviate/pull/12233 * refactor(lsmkv): extract invert _[Truncated at 4000 characters — full notes: https://github.com/weaviate/weaviate/releases/tag/v1.38.6]_ ### v1.36.23 — v1.36.23 - Cluster communication related Fixes - Date: 2026-07-20 - Version: v1.36.23 - Original notes: https://github.com/weaviate/weaviate/releases/tag/v1.36.23 - Permalink: https://whatsnew.fyi/product/weaviate/releases/v1.36.23 - **fixed** — Eliminate per-call allocations in SelectProperties lookups - **fixed** — Widen flaky RansomNote aggregate count assertion - **fixed** — Fix entrypoint repair test flake - **fixed** — Error on unknown command version instead of looping forever during migration - **fixed** — Propagate usage-file removal error in NewShard instead of discarding it - **fixed** — Fix flaky TestMakeUnboundedChannel_CapShrink - **fixed** — Retry on join with deadline in memberlist - **fixed** — Don't fail startup when a single node can't join ##### Breaking Changes *none* ##### New Features *none* ##### Fixes * perf(search): eliminate per-call allocations in SelectProperties lookups by @etiennedi in https://github.com/weaviate/weaviate/pull/12134 * fix(test): widen flaky RansomNote aggregate count assertion by @etiennedi in https://github.com/weaviate/weaviate/pull/12194 * fix(hnsw): entrypoint repair test flake by @trengrj in https://github.com/weaviate/weaviate/pull/12205 * fix(rbac): error on unknown command version instead of looping forever during migration by @antas-marcin in https://github.com/weaviate/weaviate/pull/12196 * fix(db): propagate usage-file removal error in NewShard instead of discarding it by @antas-marcin in https://github.com/weaviate/weaviate/pull/12191 * Backport to v1.36: fix flaky TestMakeUnboundedChannel_CapShrink by @asdine in https://github.com/weaviate/weaviate/pull/12236 * backport: fix(memberlist): retry on join with deadline by @moogacs in https://github.com/weaviate/weaviate/pull/12241 * fix(memberlist): don't fail startup when a single node can't join (self-heal) by @moogacs in https://github.com/weaviate/weaviate/pull/12243 **Full Changelog**: https://github.com/weaviate/weaviate/compare/v1.36.22...v1.36.23 ### v1.38.5 — v1.38.5 - LSM store performance improvements, Batch vectorization potencial deadlocks Fix, Allocation free reference cacher improvement - Date: 2026-07-16 - Version: v1.38.5 - Original notes: https://github.com/weaviate/weaviate/releases/tag/v1.38.5 - Permalink: https://whatsnew.fyi/product/weaviate/releases/v1.38.5 - **fixed** — Never hold version-map locks across LSM operations - **fixed** — Repair search time entrypoint - **fixed** — Fix batch vectorization deadlocks - **fixed** — Fix vectors invisible to flat cached search after restart with unflushed data - **changed** — Open dimensions bucket once per shard with sequential-access hint - **fixed** — Ensure tombstone metric is cleared when resetting the HNSW graph - **fixed** — Thread per-query budget into sroar merge fan-out - **fixed** — Sort WALs before recovery so the newest stays the active memtable - **changed** — Reuse read buffer in objectsByDocID - **changed** — Reuse read buffer in docID resolution loops - **changed** — Cache immutable memtable tombstone snapshot for queries - **changed** — Enable lock-free tombstone reads and write-side lock split - **changed** — Make in-place segment cleanup switch crash-atomic - **fixed** — Make class settings optional in generative-google to avoid sending defaults to Gemini - **changed** — Warn when collection cycles overlap the collection interval - **fixed** — Skip lazy-unloaded tenant shards in TTL sweep - **fixed** — Fix HTTP client concurrency in acceptance tests - **fixed** — Retry memberlist join with deadline - **fixed** — Expose structured where-filter on the MCP hybrid search tool ##### Breaking Changes *none* ##### New Features *none* ##### Fixes * fix(hfresh): never hold version-map locks across LSM operations by @asdine in https://github.com/weaviate/weaviate/pull/12119 * Search time entrypoint repair by @trengrj in https://github.com/weaviate/weaviate/pull/11956 * Fix batch vectorization deadlocks by @dirkkul in https://github.com/weaviate/weaviate/pull/12070 * flat: fix vectors invisible to flat cached search after restart with unflushed data by @asdine in https://github.com/weaviate/weaviate/pull/12132 * perf(usage): open dimensions bucket once per shard with sequential-access hint by @antas-marcin in https://github.com/weaviate/weaviate/pull/12106 * When resetting the HNSW graph, ensure tombstone metric is cleared by @trengrj in https://github.com/weaviate/weaviate/pull/12131 * Fix flaky GQL accptance test with EC issues by @dirkkul in https://github.com/weaviate/weaviate/pull/12140 * fix(concurrency): thread per-query budget into sroar merge fan-out (P1a) by @etiennedi in https://github.com/weaviate/weaviate/pull/12076 * ci: switch acceptance tests to use ubicloud-standard-4 runner by @antas-marcin in https://github.com/weaviate/weaviate/pull/12148 * fix(lsmkv): sort WALs before recovery so the newest stays the active memtable by @antas-marcin in https://github.com/weaviate/weaviate/pull/12138 * ci: switch integration and module tests to ubicloud runners by @antas-marcin in https://github.com/weaviate/weaviate/pull/12153 * perf(inverted): reuse read buffer in objectsByDocID by @amourao in https://github.com/weaviate/weaviate/pull/12142 * perf(sorter,group-by): reuse read buffer in docID resolution loops by @amourao in https://github.com/weaviate/weaviate/pull/12143 * perf(lsmkv): cache immutable memtable tombstone snapshot for queries by @amourao in https://github.com/weaviate/weaviate/pull/12051 * perf(lsmkv): lock-free tombstone reads + write-side lock split by @amourao in https://github.com/weaviate/weaviate/pull/12052 * feat(lsmkv): make in-place segment cleanup switch crash-atomic by @antas-marcin in https://github.com/weaviate/weaviate/pull/12156 * fix(generative-google): make class settings optional to avoid sending defaults to Gemini by @antas-marcin in https://github.com/weaviate/weaviate/pull/12123 * feat(usage): warn when collection cycles overlap the collection interval by @antas-marcin in https://github.com/weaviate/weaviate/pull/12174 * Skip lazy-unloaded tenant shards in TTL sweep by @dirkkul in https://github.com/weaviate/weaviate/pull/12178 * refatc(diagnostic): add slow raft apply log gate by @moogacs in https://github.com/weaviate/weaviate/pull/12180 * backport: fix(acceptance-test): handle http client concurrency by @moogacs in https://github.com/weaviate/weaviate/pull/12182 * backport: fix(memberlist): retry on join with deadline by @moogacs in https://github.com/weaviate/weaviate/pull/12183 * chore(rplc-mvmnt): remove `consumer.sync` from happy path due to redundancy by @tsmith023 in https://github.com/weaviate/weaviate/pull/12179 * perf(search): eliminate per-call allocations in SelectProperties lookups by @etiennedi in https://github.com/weaviate/weaviate/pull/12134 * perf(internode): exact-size single-alloc marshalling for fan-out payloads (slice 1/3) by @etiennedi in https://github.com/weaviate/weaviate/pull/12135 * fix(test): widen flaky RansomNote aggregate count assertion by @etiennedi in https://github.com/weaviate/weaviate/pull/12194 * fix(hnsw): entrypoint repair test flake by @trengrj in https://github.com/weaviate/weaviate/pull/12205 * fix(replica-movement): atomic LWW on change-log replay by @moogacs in https://github.com/weaviate/weaviate/pull/12190 * fix(lsmkv): reclaim deleted docs' property lengths at compaction by @amourao in https://github.com/weaviate/weaviate/pull/12147 * fix(lsmkv): track live-set avgdl at compaction so BM25 scores don't drift with deletes (#311) by @amourao in https://github.com/weaviate/weaviate _[Truncated at 4000 characters — full notes: https://github.com/weaviate/weaviate/releases/tag/v1.38.5]_