| Name | Modified | Size | Downloads / Week |
|---|---|---|---|
| Parent folder | |||
| weaviate-v1.40.0-linux-arm64.tar.gz.sha256 | 2026-10-07 | 65 Bytes | |
| weaviate-v1.40.0-linux-arm64.tar.gz.md5 | 2026-10-07 | 33 Bytes | |
| weaviate-v1.40.0-linux-arm64.tar.gz | 2026-10-07 | 70.1 MB | |
| weaviate-v1.40.0-linux-amd64.tar.gz.sha256 | 2026-10-07 | 65 Bytes | |
| weaviate-v1.40.0-linux-amd64.tar.gz.md5 | 2026-10-07 | 33 Bytes | |
| weaviate-v1.40.0-linux-amd64.tar.gz | 2026-10-07 | 73.9 MB | |
| weaviate-v1.40.0-darwin-all.zip.md5 | 2026-10-07 | 33 Bytes | |
| weaviate-v1.40.0-darwin-all.zip.sha256 | 2026-10-07 | 65 Bytes | |
| weaviate-v1.40.0-darwin-all.zip | 2026-10-07 | 145.7 MB | |
| README.md | 2026-10-06 | 62.4 kB | |
| v1.40.0 - Alter Schema Drop Vector Index, HFresh MUVERA, RQ-4 quantization source code.tar.gz | 2026-10-06 | 11.7 MB | |
| v1.40.0 - Alter Schema Drop Vector Index, HFresh MUVERA, RQ-4 quantization source code.zip | 2026-10-06 | 16.5 MB | |
| Totals: 12 Items | 318.0 MB | 0 | |
Breaking Changes
none
Namespaces (GA)
Namespaces add control-plane and data isolation between users on a shared cluster.
- Namespaces: Gate tenant actions by @dirkkul in https://github.com/weaviate/weaviate/pull/12513
- Namespaces: Add plumbing for namespace exister by @dirkkul in https://github.com/weaviate/weaviate/pull/12541
- Pin replacement replicas to a namespace's home node by @dirkkul in https://github.com/weaviate/weaviate/pull/12554
- Namespaces: Effective-suspended derivation + shard-materialization guards by @dirkkul in https://github.com/weaviate/weaviate/pull/12464
- Namespaces: Add support for knowing which shards should be (un)loaded on suspend/resume by @dirkkul in https://github.com/weaviate/weaviate/pull/13123
- Namespaces: Fix issues around references by @dirkkul in https://github.com/weaviate/weaviate/pull/13304
- Make namespaces a feature requiring license by @dirkkul in https://github.com/weaviate/weaviate/pull/13298
Alter Schema - Drop vector index (GA)
Support for dropping inverted indices from existing properties, allowing users to reclaim disk space by removing indices that are no longer needed, with RBAC integration and multi-tenancy support.
- feat(drop-vector-index): resume interrupted strips from the recorded pending set by @antas-marcin in https://github.com/weaviate/weaviate/pull/12442
- test(drop-vector-index): retry the write after a leader kill instead of failing on the rejoin blip by @antas-marcin in https://github.com/weaviate/weaviate/pull/12678
- fix(drop-vector-index): remove the muvera bucket of a dropped multi-vector index by @antas-marcin in https://github.com/weaviate/weaviate/pull/12718
- fix(drop-vector-index): remove hfresh directory and buckets when the index is dropped by @antas-marcin in https://github.com/weaviate/weaviate/pull/12720
- fix(drop-vector-index): clear the dynamic upgrade verdict on the cold-tenant path by @antas-marcin in https://github.com/weaviate/weaviate/pull/12754
- ci(drop-vector-index): split the cluster and async-indexing jobs in two by @antas-marcin in https://github.com/weaviate/weaviate/pull/12773
- ci(drop-vector-index): always run drop vector index e2e tests by @antas-marcin in https://github.com/weaviate/weaviate/pull/12910
- fix(drop-vector-index): clear the dropped vector's dimension rows by @antas-marcin in https://github.com/weaviate/weaviate/pull/12918
- feat(drop-vector-index): enable the drop vector index endpoint by default by @antas-marcin in https://github.com/weaviate/weaviate/pull/13071
Alter Schema - Reindex property (Preview)
Adds support for changing property's index types.
- chore(reindex): remove unreachable reindex and shard symbols by @etiennedi in https://github.com/weaviate/weaviate/pull/12708
- chore: remove the /debug/index/rebuild/inverted* routes and the machinery only they could reach by @etiennedi in https://github.com/weaviate/weaviate/pull/12706
- Delete the unreachable reindex restart-recovery path (OnBeforeLsmInit) by @etiennedi in https://github.com/weaviate/weaviate/pull/12704
- Refuse property names that collide with migration directories by @etiennedi in https://github.com/weaviate/weaviate/pull/12873
- fix(reindex): only checkpoint reindex progress once the data is durable by @etiennedi in https://github.com/weaviate/weaviate/pull/12877
- fix(reindex): RAFT-numbered directories stop a restart reporting success on an unbuilt index by @etiennedi in https://github.com/weaviate/weaviate/pull/12888
- reindex: durable migration record (part 1/2, inert) by @etiennedi in https://github.com/weaviate/weaviate/pull/12847
- feat: node-level query admission control (P1b) by @etiennedi in https://github.com/weaviate/weaviate/pull/12078
- fix(reindex): enable-rangeable becomes a semantic migration by @etiennedi in https://github.com/weaviate/weaviate/pull/12700
- fix(reindex): index writes that land in a semantic migration's swap window by @etiennedi in https://github.com/weaviate/weaviate/pull/13001
HFresh
Extensive improvements including numerous performance optimizations reducing memory usage, disk writes, and allocations.
- perf(hfresh): parallelize rescoring with budget-aware workers by @asdine in https://github.com/weaviate/weaviate/pull/12487
- perf(hfresh): read rescore vectors through one bucket view with pooled buffers by @asdine in https://github.com/weaviate/weaviate/pull/12490
- perf(hfresh): warm the version map in the background at startup by @asdine in https://github.com/weaviate/weaviate/pull/12504
- fix(hfresh): hold the posting lock during version map warmup by @asdine in https://github.com/weaviate/weaviate/pull/12612
- fix(hfresh): decode centroid codes with the right quantizer in split/merge reassignment by @asdine in https://github.com/weaviate/weaviate/pull/12795
- feat(hfresh): debug endpoint to reassign all vectors in place by @asdine in https://github.com/weaviate/weaviate/pull/12820
- feat(hfresh): cluster posting splits on full-precision vectors by @asdine in https://github.com/weaviate/weaviate/pull/12863
- perf(hfresh): fetch split vectors through a single bucket view by @asdine in https://github.com/weaviate/weaviate/pull/12875
- fix(hfresh): resolve buckets per operation instead of caching them by @antas-marcin in https://github.com/weaviate/weaviate/pull/12887
- config: remove the dead HFreshEnabled flag by @asdine in https://github.com/weaviate/weaviate/pull/12907
- feat(debug): make shard optional for HFresh reassignment by @asdine in https://github.com/weaviate/weaviate/pull/13043
- fix(hfresh): filtered search results depended on posting probe order by @abdelr in https://github.com/weaviate/weaviate/pull/13121
- hfresh: count postings and shared buckets in the usage report by @asdine in https://github.com/weaviate/weaviate/pull/13214
- debug: allow the debug vector rebuild on HFresh by @asdine in https://github.com/weaviate/weaviate/pull/13257
HFresh MUVERA
- HFresh MUVERA: Decouple Routing and Rerank Budgets by @abdelr in https://github.com/weaviate/weaviate/pull/11785
Deduplicated Backups
- Add opt-in dedupeReplicas backups: archive converged shards once, fan restore out to every replica by @jeroiraz in https://github.com/weaviate/weaviate/pull/12815
- backup: dedupe unloaded shards from their persisted hashtree root by @jeroiraz in https://github.com/weaviate/weaviate/pull/13105
- Gate deduplicated backups on a Weaviate license key by @jeroiraz in https://github.com/weaviate/weaviate/pull/13359
Search REST API
Adds dedicated REST API for performing search queries.
- feat(rest): hybrid search endpoint (REST Search API 2/4) by @g-despot in https://github.com/weaviate/weaviate/pull/12246
- feat(rest): near-object search endpoint (REST Search API 3/4) by @g-despot in https://github.com/weaviate/weaviate/pull/12248
- feat(rest): aggregate counts endpoint (REST Search API 4/4) by @g-despot in https://github.com/weaviate/weaviate/pull/12249
- feat(rest): structured reference selection (returnReferences) by @g-despot in https://github.com/weaviate/weaviate/pull/12424
- feat(rest): drop the experimental search flag, harden the family for default-on by @g-despot in https://github.com/weaviate/weaviate/pull/13067
- backport: drop the experimental search flag, harden the family for default-on (#13067) by @g-despot in https://github.com/weaviate/weaviate/pull/13233
- rest search: add the near-vector endpoint by @g-despot in https://github.com/weaviate/weaviate/pull/13265
RQ4
4Bit Rotational Quantization.
- RQ4 centered quantization by @trengrj in https://github.com/weaviate/weaviate/pull/12502
Async replication
Async replication optimizations and fixes.
- async replication: resolve replicas locally, never implicitly activate a tenant by @jeroiraz in https://github.com/weaviate/weaviate/pull/12256
- test(replication): wait for shard readiness after restart across read_repair suite by @jeroiraz in https://github.com/weaviate/weaviate/pull/12466
- perf(async-repl): size hashbeat digest buffers by set count, not leaf count by @jeroiraz in https://github.com/weaviate/weaviate/pull/12481
- perf(async-repl): carry byte-ID digests end-to-end on the compare pipeline by @jeroiraz in https://github.com/weaviate/weaviate/pull/12710
- perf(async-replication): gate hashbeat debug logging behind level check by @jeroiraz in https://github.com/weaviate/weaviate/pull/12760
- perf(async-replication): size prefilter chunk map by input, release dispatch buckets every pass by @jeroiraz in https://github.com/weaviate/weaviate/pull/12759
- perf(async-replication): batch root pre-filter across classes per target node by @jeroiraz in https://github.com/weaviate/weaviate/pull/12765
- perf(asyncrep): prune the scheduler due-count scan via the heap invariant by @jeroiraz in https://github.com/weaviate/weaviate/pull/12929
- perf(asyncrep): reuse per-worker request assembly in root-prefilter clients by @jeroiraz in https://github.com/weaviate/weaviate/pull/12939
- async replication: arm the hashtree init write gate at scan start by @jeroiraz in https://github.com/weaviate/weaviate/pull/13191
- async replication: retry a panicking hashtree init attempt and gate hashbeat on readiness by @jeroiraz in https://github.com/weaviate/weaviate/pull/13202
- hashtree: never trust a persisted snapshot with no object store behind it by @jeroiraz in https://github.com/weaviate/weaviate/pull/13164
- async replication: drain on a reuse-safe latch instead of a shared WaitGroup by @jeroiraz in https://github.com/weaviate/weaviate/pull/13201
Replica movement hardening & semi-automated namespace cluster rebalancing
- refactor(replication): pin shards through writableShard and introduce replicaPreparer interface by @moogacs in https://github.com/weaviate/weaviate/pull/12427
- feat(rplc-mvmnt): add automated cleanup of stale replica movement operations by @tsmith023 in https://github.com/weaviate/weaviate/pull/12426
- perf(replication): cap zstd encoder concurrency and window in shared encoders by @jeroiraz in https://github.com/weaviate/weaviate/pull/12761
- feat(repl): fix concurrent map write race in replicated writes by @tsmith023 in https://github.com/weaviate/weaviate/pull/12730
- Commit replicated puts on object copies to unrace the broadcast marshal by @jeroiraz in https://github.com/weaviate/weaviate/pull/12828
- Fix replica movement to be enable-able via runtime config by @tsmith023 in https://github.com/weaviate/weaviate/pull/13064
Backup reliability improvements
- Backups: never store a partially written chunk by @dirkkul in https://github.com/weaviate/weaviate/pull/12463
- feat(backups): introduce
includeRolesto backup/restore process by @tsmith023 in https://github.com/weaviate/weaviate/pull/12322 - Backup-gcs: add opt-in gRPC transport by @dirkkul in https://github.com/weaviate/weaviate/pull/12447
- fix(backup): serve a failed backup's reason from the participant status by @etiennedi in https://github.com/weaviate/weaviate/pull/12548
- Include GEO HNSW index in backups by @dirkkul in https://github.com/weaviate/weaviate/pull/12584
- Backup index.db from inactive dynamic tenants by @dirkkul in https://github.com/weaviate/weaviate/pull/12724
- fix(restore): route backup restore of RBAC roles and dynamic users through RAFT by @tsmith023 in https://github.com/weaviate/weaviate/pull/12660
- Back up collections concurrently through one shared worker pool by @dirkkul in https://github.com/weaviate/weaviate/pull/12790
- backup-gcs: default to the gRPC transport by @dirkkul in https://github.com/weaviate/weaviate/pull/12824
- fix(backup): missed include wildcards are a no-op for users/roles, an error for classes by @tsmith023 in https://github.com/weaviate/weaviate/pull/13027
- gh-12658 exclude LSM scratch files from the offload-s3 shard upload by @bharadwaj-pendyala in https://github.com/weaviate/weaviate/pull/12884
- Remove fsync from CopyFile, which only writes backup copies by @dirkkul in https://github.com/weaviate/weaviate/pull/13079
- backup: report logical PreCompressionSizeBytes for replica-deduped backups by @jeroiraz in https://github.com/weaviate/weaviate/pull/13090
- backup: publish CANCELED only after the cancel descriptor is durable by @jeroiraz in https://github.com/weaviate/weaviate/pull/13098
- fix(backup): poll participant status with exponential backoff during commit by @antas-marcin in https://github.com/weaviate/weaviate/pull/13266
- Stop backup endpoints from exposing collections the caller cannot access by @dirkkul in https://github.com/weaviate/weaviate/pull/13274
- Add a read_backups permission action by @spiros-spiros in https://github.com/weaviate/weaviate/pull/13433
Modules & Integrations
- fix(modules): skip vectorizing named vectors whose index is mid-drop by @jfrancoa in https://github.com/weaviate/weaviate/pull/12498
- fix(modules): don't panic when a batch has objects with no vectorizable properties by @antas-marcin in https://github.com/weaviate/weaviate/pull/12617
- feat(generative-digitalocean): add DigitalOcean generative module by @antas-marcin in https://github.com/weaviate/weaviate/pull/12786
- feat(generative-meta): add Meta AI generative module by @antas-marcin in https://github.com/weaviate/weaviate/pull/12839
- test(generative-aws): remove Cohere's Command-R models from tests by @antas-marcin in https://github.com/weaviate/weaviate/pull/12841
- modules(rest): remove /v1/modules endpoint and contextionary extension/concept handlers by @antas-marcin in https://github.com/weaviate/weaviate/pull/13083
- refactor(config): retire DEFAULT_VECTORIZER_MODULE, default legacy vectorizer to none by @antas-marcin in https://github.com/weaviate/weaviate/pull/13232
- fix(multi2vec-google): route gemini-embedding-2 on Vertex AI to global :embedContent by @antas-marcin in https://github.com/weaviate/weaviate/pull/13340
- fix(generative-digitalocean): add env var support and model list validation by @antas-marcin in https://github.com/weaviate/weaviate/pull/13392
- fix(modules): read a fractional json.Number in float module settings by @jfrancoa in https://github.com/weaviate/weaviate/pull/13403
- test(generative-aws): update Anthropic test models by @antas-marcin in https://github.com/weaviate/weaviate/pull/13348
- Let modules decide which settings can change on an existing collection by @byronvoorbach in https://github.com/weaviate/weaviate/pull/13346
Usage metrics improvements
- test(usage): wait for storage to settle instead of relaxing the assertions by @antas-marcin in https://github.com/weaviate/weaviate/pull/12635
- fix(usage): skip dropped named vectors when computing cold shard usage by @antas-marcin in https://github.com/weaviate/weaviate/pull/12681
- fix(usage): report legacy vector alongside named vectors in usage metrics by @antas-marcin in https://github.com/weaviate/weaviate/pull/12682
- Add MUVERA specific usage calculations by @trengrj in https://github.com/weaviate/weaviate/pull/12294
- Align returns for HOT and COLD tenants from usage module by @dirkkul in https://github.com/weaviate/weaviate/pull/12712
- test(usage): settle the reactivated shard before taking the drop-vector baseline by @antas-marcin in https://github.com/weaviate/weaviate/pull/12721
- Skip vanished files and directories instead of failing shard usage by @dirkkul in https://github.com/weaviate/weaviate/pull/12832
- Fix shard loaded and unloaded metrics by @dirkkul in https://github.com/weaviate/weaviate/pull/12827
- Cache object count for lazy shards by @dirkkul in https://github.com/weaviate/weaviate/pull/12835
- Add weaviate_shards, a shard count by state and eager or lazy loading by @dirkkul in https://github.com/weaviate/weaviate/pull/12831
Vector Index Schema Update
- chore: bake vector index identity into its logger by @asdine in https://github.com/weaviate/weaviate/pull/12919
- chore: extend vector index logger identity to hnsw's children and the queue by @asdine in https://github.com/weaviate/weaviate/pull/12922
- chore: pin the on-disk vector index layout by @asdine in https://github.com/weaviate/weaviate/pull/12923
- flat: derive flat index storage names from the physical ID by @asdine in https://github.com/weaviate/weaviate/pull/12924
- dynamic: Derive dynamic index storage names and state key from the physical ID by @asdine in https://github.com/weaviate/weaviate/pull/12925
- hnsw: derive hnsw compressed bucket names from the physical ID by @asdine in https://github.com/weaviate/weaviate/pull/12932
- hfresh: derive hfresh index storage names and centroid ID from the physical ID by @asdine in https://github.com/weaviate/weaviate/pull/12928
- hnsw: hnsw takes object-vector extraction from the shard and never prefills a centroid graph from objects by @asdine in https://github.com/weaviate/weaviate/pull/12933
- shard: vector indexes and queues live in one slots type by @asdine in https://github.com/weaviate/weaviate/pull/12965
- shard: request paths hold a lease on the vector index by @asdine in https://github.com/weaviate/weaviate/pull/12970
- shard: maintenance and debug paths hold a lease on the vector index by @asdine in https://github.com/weaviate/weaviate/pull/12975
- shard: the unleased vector index accessors go by @asdine in https://github.com/weaviate/weaviate/pull/12976
- shardmeta: add Namespace.Update and ForEach by @asdine in https://github.com/weaviate/weaviate/pull/12993
- shard: add the vectorIndexMapping type by @asdine in https://github.com/weaviate/weaviate/pull/12994
- shard: open index.db for every shard, add the vector index storage probe and sync by @asdine in https://github.com/weaviate/weaviate/pull/12998
- shard: startup reads and writes the vector index mapping by @asdine in https://github.com/weaviate/weaviate/pull/13015
- shard: rebuild a ready index whose storage is missing instead of refusing the load by @asdine in https://github.com/weaviate/weaviate/pull/13087
- shard: a vector added to a running shard is recorded, and a colliding one refused by @asdine in https://github.com/weaviate/weaviate/pull/13030
- queue: release the chunk writer buffer once a chunk is promoted by @asdine in https://github.com/weaviate/weaviate/pull/13126
- shard: a replica snapshot carries index.db by @asdine in https://github.com/weaviate/weaviate/pull/13128
- shard: a replica snapshot carries index.db, so a moved dynamic index keeps its upgrade (v1.38) by @asdine in https://github.com/weaviate/weaviate/pull/13130
- shard mapping: durable vector index deletion through the mapping record by @asdine in https://github.com/weaviate/weaviate/pull/13116
- shard: refuse a write whose vector index is missing before storing the object by @asdine in https://github.com/weaviate/weaviate/pull/13305
- shard: the drop sweep reaches a cold tenant through its lazy loader by @asdine in https://github.com/weaviate/weaviate/pull/13316
- shard: fix vectorQueueSize and cold shard loading on the shards status endpoint by @asdine in https://github.com/weaviate/weaviate/pull/13349
Performance & Optimization
- Refresh the memory monitor while shards are read-only by @dirkkul in https://github.com/weaviate/weaviate/pull/12468
- Use direct map acces for shard movement teardown by @dirkkul in https://github.com/weaviate/weaviate/pull/12467
- Remove the unused shardReindexerV3 scheduler by @etiennedi in https://github.com/weaviate/weaviate/pull/12478
- Pool zstd encoders in backups by @dirkkul in https://github.com/weaviate/weaviate/pull/12477
- lsmkv: stop CheckExpectedStrategy from heap-allocating its variadic slice by @dirkkul in https://github.com/weaviate/weaviate/pull/12494
- Read the dimensions bucket once per usage sweep by @dirkkul in https://github.com/weaviate/weaviate/pull/12503
- Report the tenant's pre-freeze status on an aborted freeze by @dirkkul in https://github.com/weaviate/weaviate/pull/12508
- Unmarshal namespace snapshot outside of lock by @dirkkul in https://github.com/weaviate/weaviate/pull/12506
- Size the roaringsetrange pread read buffer from the segment payload by @dirkkul in https://github.com/weaviate/weaviate/pull/12499
- Keep the geo vector cache across deletion cycles by @dirkkul in https://github.com/weaviate/weaviate/pull/12557
- Keep error type through the objects manager by @dirkkul in https://github.com/weaviate/weaviate/pull/12510
- Read only the geo property when resolving a coordinate by @dirkkul in https://github.com/weaviate/weaviate/pull/12564
- shard: don't mark the shard read-only during UpdateVectorIndexConfig by @amourao in https://github.com/weaviate/weaviate/pull/11788
- perf(lsmkv): targeted replace scan with newest-wins visibility by @amourao in https://github.com/weaviate/weaviate/pull/12396
- Keep the parked pread buffer on sequential replace cursor scans by @jeroiraz in https://github.com/weaviate/weaviate/pull/12571
- Complete updateIndexTenants when one tenant fails by @dirkkul in https://github.com/weaviate/weaviate/pull/12507
- Drop per-cycle allocations from the idle compaction path by @dirkkul in https://github.com/weaviate/weaviate/pull/12561
- perf(lsmkv): read targeted-scan ranges straight from the file by @amourao in https://github.com/weaviate/weaviate/pull/12592
- Parse replace nodes without allocating by @dirkkul in https://github.com/weaviate/weaviate/pull/12558
- Treat a non-positive vector cache maxSize as unbounded by @dirkkul in https://github.com/weaviate/weaviate/pull/12586
- Concurrently prefill geo caches using exinsg prefiller by @dirkkul in https://github.com/weaviate/weaviate/pull/12583
- feat(rest): bm25 keyword search endpoint (REST Search API 1/4) by @g-despot in https://github.com/weaviate/weaviate/pull/12245
- Hybrid Aggregation: Apply the filter to the BM25 search by @dirkkul in https://github.com/weaviate/weaviate/pull/12622
- Wait for the local schema before writes that resolve an index by name by @dirkkul in https://github.com/weaviate/weaviate/pull/12587
- feat(auto-schema): create a "default" named vector instead of a legacy one by @antas-marcin in https://github.com/weaviate/weaviate/pull/12620
- Report every shard failure during index reconcile by @dirkkul in https://github.com/weaviate/weaviate/pull/12639
- Usage: Make cold tenants report the same data as hot tenants by @dirkkul in https://github.com/weaviate/weaviate/pull/12628
- perf(lsmkv): bound digest-RPC memtable snapshots to the requested key range by @jeroiraz in https://github.com/weaviate/weaviate/pull/12665
- perf(async-repl): negotiate binary digest encoding on the gRPC HashTreeLevel RPC by @jeroiraz in https://github.com/weaviate/weaviate/pull/12666
- Resource scan: Dont load lazy shards and set newly loaded shards to ReadOnly too by @dirkkul in https://github.com/weaviate/weaviate/pull/12674
- perf(router): avoid full shard-list copy on single-shard routing plans by @jeroiraz in https://github.com/weaviate/weaviate/pull/12762
- Make the resource scanner's shard status check-and-set atomic by @dirkkul in https://github.com/weaviate/weaviate/pull/12703
- Put both cron jobs on one shared registration helper by @dirkkul in https://github.com/weaviate/weaviate/pull/12758
- Backport: drain in-flight references before drop tears the shard store down by @jfrancoa in https://github.com/weaviate/weaviate/pull/12797
- Stop retrying a shard unload once its collection is closing by @dirkkul in https://github.com/weaviate/weaviate/pull/12779
- feat(users): export/import endpoints for db user API-key hashes by @tsmith023 in https://github.com/weaviate/weaviate/pull/12782
- Silence expected recovered-panic noise in async replication scheduler unit tests by @jeroiraz in https://github.com/weaviate/weaviate/pull/12808
- Remove find-duplicates workflow when new issues are created. by @jfrancoa in https://github.com/weaviate/weaviate/pull/12801
- mcp: refuse GET with 405 and run the streamable server stateless by @g-despot in https://github.com/weaviate/weaviate/pull/12789
- Stop holding the collection map lock while counting objects on disk by @dirkkul in https://github.com/weaviate/weaviate/pull/12825
- Finish the startup shard warmup after a shard fails to load by @dirkkul in https://github.com/weaviate/weaviate/pull/12837
- Disable background lazy tenant loading for small tenants by @dirkkul in https://github.com/weaviate/weaviate/pull/12834
- Run every row of the object authorization tables by @dirkkul in https://github.com/weaviate/weaviate/pull/12840
- perf(inverted): cut batched Contains extraction allocations and faster segment-index reads by @aliszka in https://github.com/weaviate/weaviate/pull/12436
- lsmkv, inverted: read a batch of roaring set rows through one batch reader by @aliszka in https://github.com/weaviate/weaviate/pull/12530
- Shut down test indexes so background flush cannot race TempDir cleanup by @jeroiraz in https://github.com/weaviate/weaviate/pull/12858
- inverted: hold the batched Contains keys as a sorted slab by @aliszka in https://github.com/weaviate/weaviate/pull/12614
- lsmkv: read the batched Contains keys from a memtable a window at a time by @aliszka in https://github.com/weaviate/weaviate/pull/12701
- Move index.db ownership from the dynamic index to the shard by @asdine in https://github.com/weaviate/weaviate/pull/12881
- perf(lsmkv): read and seek segment indexes without materializing keys by @aliszka in https://github.com/weaviate/weaviate/pull/12856
- hnsw: lock each neighbor before reading its connections in ACORN search by @jfrancoa in https://github.com/weaviate/weaviate/pull/12936
- perf(aggregation-pr2): reuse one object buffer per scan worker by @aliszka in https://github.com/weaviate/weaviate/pull/12899
- perf(aggregation-pr3): scan all objects through one reader per segment by @aliszka in https://github.com/weaviate/weaviate/pull/12911
- perf(aggregation-pr4): take one consistent view for the whole scan by @aliszka in https://github.com/weaviate/weaviate/pull/12913
- perf(aggregation-pr5): read a segment node straight into the caller's buffer by @aliszka in https://github.com/weaviate/weaviate/pull/12914
- perf(aggregation-pr6): let scan workers claim doc IDs one at a time by @aliszka in https://github.com/weaviate/weaviate/pull/12940
- perf(aggregation-pr7): reuse one property map for all objects a scan worker reads by @aliszka in https://github.com/weaviate/weaviate/pull/12941
- perf(inverted): call ctx.Err() directly instead of the ctxExpired helper by @aliszka in https://github.com/weaviate/weaviate/pull/12943
- backport: stop reading memberlist node fields outside the event callbacks by @jeroiraz in https://github.com/weaviate/weaviate/pull/12947
- perf: cache node host:port resolution behind membership events by @jeroiraz in https://github.com/weaviate/weaviate/pull/12946
- Repeating startup banner by @g-despot in https://github.com/weaviate/weaviate/pull/12912
- chore(dynamic-shard): convert log to warn instead of info by @moogacs in https://github.com/weaviate/weaviate/pull/12974
- test(db): install a test's log hook before the index starts its goroutines by @asdine in https://github.com/weaviate/weaviate/pull/12978
- perf(db): skip the startup shard-size sweep when lazy loading is set explicitly by @moogacs in https://github.com/weaviate/weaviate/pull/12979
- perf(contains-pr11): fold a batched Contains filter across workers by @aliszka in https://github.com/weaviate/weaviate/pull/12901
- New feature: adaptive and efficient filtered HNSW search with PathSeer by @lizhiyuell in https://github.com/weaviate/weaviate/pull/12137
- Pre-compile regexp for role validation by @dirkkul in https://github.com/weaviate/weaviate/pull/13003
- shard: drops delete the vector index mapping record by @asdine in https://github.com/weaviate/weaviate/pull/13007
- Publish generated gRPC stubs as a standalone module by @bevzzz in https://github.com/weaviate/weaviate/pull/12747
- feat(index): report UNAVAILABLE status for shards whose status could not be retrieved by @bevzzz in https://github.com/weaviate/weaviate/pull/12757
- Return 403 from verbose /v1/nodes to callers denied minimal output by @dirkkul in https://github.com/weaviate/weaviate/pull/13050
- Optimize listing backups with many collections by @dirkkul in https://github.com/weaviate/weaviate/pull/13008
- feat(schema): stop creating a legacy vector index implicitly by @antas-marcin in https://github.com/weaviate/weaviate/pull/13012
- Couple authz/use listing bugfixes by @dirkkul in https://github.com/weaviate/weaviate/pull/13069
- Drop permanent copy of sharding state from memory by @dirkkul in https://github.com/weaviate/weaviate/pull/13078
- add Weaviate Embeddings rate limit by @augustas1 in https://github.com/weaviate/weaviate/pull/13059
- List db users and their roles from the node's local state by @dirkkul in https://github.com/weaviate/weaviate/pull/13084
- Use fewer syscalls and less memory to list an inactive shard for backup by @dirkkul in https://github.com/weaviate/weaviate/pull/13082
- perf(roaringset): stream the memtable flush and compact the bitmaps it writes by @aliszka in https://github.com/weaviate/weaviate/pull/13038
- perf(roaringset-pr3): allocate a key's additions or deletions only when written by @aliszka in https://github.com/weaviate/weaviate/pull/13040
- test(inverted): order the ContainsAll early-exit tests instead of racing them by @aliszka in https://github.com/weaviate/weaviate/pull/13042
- Retry user lists in multi-node tests until the users show up by @dirkkul in https://github.com/weaviate/weaviate/pull/13114
- mcp: validate hybrid arguments, default fusion, protocol-version check, mcp-go v1.0.0 by @g-despot in https://github.com/weaviate/weaviate/pull/12822
- feat(dtm): task termination, stale detection, retries by @tsmith023 in https://github.com/weaviate/weaviate/pull/12734
- Reduce allocations in compactor logs by @dirkkul in https://github.com/weaviate/weaviate/pull/13109
- Stop fetching bucket metadata before every chunk in backup-gcs by @dirkkul in https://github.com/weaviate/weaviate/pull/13125
- Reduce allocations in HNSW snapshots by @dirkkul in https://github.com/weaviate/weaviate/pull/13110
- perf(roaringsetrange): walk the memtable once per worker instead of once per bit by @aliszka in https://github.com/weaviate/weaviate/pull/13138
- Opt/roaringsetrange direct flush by @aliszka in https://github.com/weaviate/weaviate/pull/13139
- Close a shard's counter and version files when it shuts down or loads by @dirkkul in https://github.com/weaviate/weaviate/pull/13096
- Remove unique objects IDs from RBAC checks by @dirkkul in https://github.com/weaviate/weaviate/pull/10688
- hnsw compactor: stop logging no-op decisions every idle cycle by @asdine in https://github.com/weaviate/weaviate/pull/13156
- perf(lsmkv): skip per-segment probe timing unless debug logging is enabled by @antas-marcin in https://github.com/weaviate/weaviate/pull/13159
- hnsw: shrink vertex from 48 to 24 bytes per node by @asdine in https://github.com/weaviate/weaviate/pull/13161
- feat(config): name the properties that keep a rangeable index in memory by @aliszka in https://github.com/weaviate/weaviate/pull/13163
- backport: hnsw: shrink vertex from 48 to 24 bytes per node by @asdine in https://github.com/weaviate/weaviate/pull/13176
- perf(lsmkv): remove per-write overhead allocations from the map write path by @antas-marcin in https://github.com/weaviate/weaviate/pull/13178
- perf(lsmkv): pool segment node readers and pre-join read metric names by @antas-marcin in https://github.com/weaviate/weaviate/pull/13180
- perf(lsmkv): sort map values without reflection by @aliszka in https://github.com/weaviate/weaviate/pull/13183
- Make no usable entrypoint retryable by @trengrj in https://github.com/weaviate/weaviate/pull/13204
- Read /proc/<pid>/maps every 30 s while far below the mapping limit by @dirkkul in https://github.com/weaviate/weaviate/pull/13195
- perf(lsmkv): pointer-free keyword memtable entries, allocation-free keyword writes by @etiennedi in https://github.com/weaviate/weaviate/pull/13184
- [v1.38] hnsw: dedup ACORN entrypoint (backport [#13121], fixes [#656]) by @abdelr in https://github.com/weaviate/weaviate/pull/13211
- hnsw: one heap object per node by embedding the connections in the vertex by @asdine in https://github.com/weaviate/weaviate/pull/13179
- compactv2: merge empty .sorted files instead of leaking one per backup by @asdine in https://github.com/weaviate/weaviate/pull/13206
- Speed up the wait-group linter from ~100s to under a second by @dirkkul in https://github.com/weaviate/weaviate/pull/13236
- Stop a permission denial from rewriting the user's group names by @dirkkul in https://github.com/weaviate/weaviate/pull/13235
- Delete dead AddLinksAtLevel by @dirkkul in https://github.com/weaviate/weaviate/pull/13239
- Summarize storage lookup timings in every slow-query log line by @dirkkul in https://github.com/weaviate/weaviate/pull/13124
- perf(roaringsetrange): build compaction nodes into one reused buffer by @aliszka in https://github.com/weaviate/weaviate/pull/13154
- Expose the batch-delete cap in the gRPC BatchDeleteReply by @byronvoorbach in https://github.com/weaviate/weaviate/pull/13103
- Cap the filtered batch delete resolve at QUERY_MAXIMUM_RESULTS by @byronvoorbach in https://github.com/weaviate/weaviate/pull/13104
- Resolve filter and batch-delete doc ids in parallel by @byronvoorbach in https://github.com/weaviate/weaviate/pull/13106
- Answer 422 or 404 for an invalid class name instead of 500 or 403 by @dirkkul in https://github.com/weaviate/weaviate/pull/13260
- perf(refcache): index cacher jobs by identifier to avoid quadratic lookup by @antas-marcin in https://github.com/weaviate/weaviate/pull/13267
- debug: allow the debug vector rebuild on geo indexes by @asdine in https://github.com/weaviate/weaviate/pull/13261
- Batch delete follow-ups: rate-limit unreadable-row warning, fix limit<=0 description by @byronvoorbach in https://github.com/weaviate/weaviate/pull/13254
- Skip re-indexing unchanged text on update and keep len() filters current by @byronvoorbach in https://github.com/weaviate/weaviate/pull/13288
- Delete WAL files with less than 4 bytes by @dirkkul in https://github.com/weaviate/weaviate/pull/13297
- db: vector index queue logs under its index's identity only by @asdine in https://github.com/weaviate/weaviate/pull/13301
- hnsw: never apply garbage from a corrupt compacted commit log segment by @asdine in https://github.com/weaviate/weaviate/pull/13300
- feat: shard self-recovery (snapshot + log-replay rejoin) by @jeroiraz in https://github.com/weaviate/weaviate/pull/11768
- Validate input for authz handlers by @dirkkul in https://github.com/weaviate/weaviate/pull/13294
- perf(lsmkv): replay a large write-ahead log as a run of segments by @aliszka in https://github.com/weaviate/weaviate/pull/13198
- raft: start a single-node cluster without waiting for multi-node timeouts by @asdine in https://github.com/weaviate/weaviate/pull/13384
- hnsw: never load a node ID far beyond the shard's document-ID counter by @asdine in https://github.com/weaviate/weaviate/pull/13377
- Write export parquet blob columns without page header statistics by @dirkkul in https://github.com/weaviate/weaviate/pull/13393
- End export Parquet row groups at 32 MiB to bound writer memory by @dirkkul in https://github.com/weaviate/weaviate/pull/13423
- Leave the cluster and close the database even if HTTP shutdown times out by @dirkkul in https://github.com/weaviate/weaviate/pull/13310
- Add a config-bound built-in metadata reader role by @spiros-spiros in https://github.com/weaviate/weaviate/pull/13432
- queue(geo): 24KB chunks bound geo batches to ~1000 points by @abdelr in https://github.com/weaviate/weaviate/pull/13394
- queue: remove ASYNC_INDEXING_BATCH_SIZE by @asdine in https://github.com/weaviate/weaviate/pull/13459
- Start a new export Parquet file once the open one reaches 1 GiB by @dirkkul in https://github.com/weaviate/weaviate/pull/13441
Bug Fixes
- 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
- fix: return the gRPC query profile when a query matches no objects by @etiennedi in https://github.com/weaviate/weaviate/pull/12381
- 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
- fix(schema): return explicit bm25 b/k1 values of 0 in schema responses by @amourao in https://github.com/weaviate/weaviate/pull/12489
- hotfix: RUNTIME_REINDEX_ENABLED kill switch (off by default) by @etiennedi in https://github.com/weaviate/weaviate/pull/12491
- fix flaky teardown in async replication acceptance suites by @jeroiraz in https://github.com/weaviate/weaviate/pull/12520
- fix(batch): report one error per object when a shard refuses a batch by @g-despot in https://github.com/weaviate/weaviate/pull/12519
- fix(db): move
st.trackDBLoadProgressinsidest.reloadDBFromSchemaby @tsmith023 in https://github.com/weaviate/weaviate/pull/12524 - fix(async-repl): backport [#12079] and [#12127] to stable/v1.37 by @jfrancoa in https://github.com/weaviate/weaviate/pull/12547
- fix(db): snapshot vector index configs under the config lock during shard init by @moogacs in https://github.com/weaviate/weaviate/pull/12560
- Fix non-compiling test by @dirkkul in https://github.com/weaviate/weaviate/pull/12562
- fix(grpc): don't dereference nil target combination in parseNearVec by @tsmith023 in https://github.com/weaviate/weaviate/pull/12567
- fix(async-repl): surface root-prefilter skips in asyncReplicationStatus by @jeroiraz in https://github.com/weaviate/weaviate/pull/12566
- fix(db): drain in-flight references before drop tears the shard store down by @moogacs in https://github.com/weaviate/weaviate/pull/12555
- Fixes bugs segment group tmp file recovery by @dirkkul in https://github.com/weaviate/weaviate/pull/12458
- fix(cache): count occupied slots, and add PreloadIfAbsent by @amourao in https://github.com/weaviate/weaviate/pull/12593
- fix(dtm): treat an unrecognized task status as in-flight by @etiennedi in https://github.com/weaviate/weaviate/pull/12549
- fix(storobj): bound vector reads by their declared segment by @amourao in https://github.com/weaviate/weaviate/pull/12594
- Fix Geo property bugs by @dirkkul in https://github.com/weaviate/weaviate/pull/12616
- fix(db): pin shards against teardown during class-wide schema work by @moogacs in https://github.com/weaviate/weaviate/pull/12618
- fix(db): drop the class lock from shard-scoped schema work by @moogacs in https://github.com/weaviate/weaviate/pull/12525
- fix(tools): don't let SIGPIPE break the gh escape-sequence feature check by @antas-marcin in https://github.com/weaviate/weaviate/pull/12625
- Fix three crashes and data corruptions in cluster state handling by @dirkkul in https://github.com/weaviate/weaviate/pull/12626
- fix(lsmkv): remove the partial segment a failed edit-op rewrite leaves behind by @antas-marcin in https://github.com/weaviate/weaviate/pull/12633
- fix(async-repl): never publish or load a stale hashtree snapshot by @jeroiraz in https://github.com/weaviate/weaviate/pull/12195
- fix(schema): reject invalid async replication config before RAFT commit by @jeroiraz in https://github.com/weaviate/weaviate/pull/12261
- fix(db): stop the reindex cleanup sweep from hydrating every unhydrated tenant shard by @etiennedi in https://github.com/weaviate/weaviate/pull/12551
- fix(hybrid): fetch Boost.Depth-deep candidates in hybrid sub-searches by @hamodywe in https://github.com/weaviate/weaviate/pull/12537
- [v1.38] fix(hnsw): drain commit-log maintenance before locking in Drop() (#12100) by @jfrancoa in https://github.com/weaviate/weaviate/pull/12699
- fix(index): return statuses of all shard's replicas by @bevzzz in https://github.com/weaviate/weaviate/pull/12518
- fix(schema): read sharding state under the class lock in CopyShardingState by @antas-marcin in https://github.com/weaviate/weaviate/pull/12723
- fix(test): give node readiness 120s instead of the 60s testcontainers default by @antas-marcin in https://github.com/weaviate/weaviate/pull/12729
- fix(runtime-config): register disable_dimension_metrics as a runtime override by @amourao in https://github.com/weaviate/weaviate/pull/12733
- fix(config): name 1.39.0 in the HNSW snapshot deprecation warning by @g-despot in https://github.com/weaviate/weaviate/pull/12737
- fix(hnsw): restore cache reads for uncompressed non-MUVERA late-interaction rescore by @trengrj in https://github.com/weaviate/weaviate/pull/12731
- fix(lsmkv): write WAL tombstone pair before publishing inverted doc tombstone by @amourao in https://github.com/weaviate/weaviate/pull/12741
- fix(rest): index status reads the local FSM, not the leader by @etiennedi in https://github.com/weaviate/weaviate/pull/12697
- fix(distributedtask):
FinishedAtmeans finished by @etiennedi in https://github.com/weaviate/weaviate/pull/12696 - Fix all linter issues coming form golangci-list v2.13.1 by @dirkkul in https://github.com/weaviate/weaviate/pull/12752
- fix(drop-vector-index): remove everything a dropped vector owns, and nothing else by @antas-marcin in https://github.com/weaviate/weaviate/pull/12722
- fix(drop-vector-index): remove the flat metadata file on the files-only path, add an async-indexing CI run by @antas-marcin in https://github.com/weaviate/weaviate/pull/12726
- fix(batch):
BatchStreamresult attribution, goroutine leaks, and shutdown races by @tsmith023 in https://github.com/weaviate/weaviate/pull/12627 - fix(aggregator): merge remote shard aggregations after JSON round trip (mean/median/mode panic on multi-node) by @amourao in https://github.com/weaviate/weaviate/pull/12746
- fix: respect named-vector source_properties when re-vectorizing on update by @g-despot in https://github.com/weaviate/weaviate/pull/11789
- fix(kmeans): compute FitBalanced centers from the balanced membership by @abdelr in https://github.com/weaviate/weaviate/pull/12804
- Fix count aggregation over shards, and resolve its routing plan once by @dirkkul in https://github.com/weaviate/weaviate/pull/12791
- fix(lsmkv): give test SegmentGroups a logger to stop slow-read nil panic by @antas-marcin in https://github.com/weaviate/weaviate/pull/12843
- fix(kmeans): replace FitBalanced's post-hoc balancing with in-loop size-constrained assignment by @asdine in https://github.com/weaviate/weaviate/pull/12854
- test(cluster): fix snapshot-restore flake racing the cluster-ID commit by @moogacs in https://github.com/weaviate/weaviate/pull/12902
- fix(db): fail queries on a deregistered bucket instead of dereferencing nil by @antas-marcin in https://github.com/weaviate/weaviate/pull/12870
- fix: stop reading memberlist node fields outside the event callbacks by @jeroiraz in https://github.com/weaviate/weaviate/pull/12861
- fix: nearObject beacon consistency by @trengrj in https://github.com/weaviate/weaviate/pull/12930
- fix(aggregation-pr1): return scan errors rather than partial results or panics by @aliszka in https://github.com/weaviate/weaviate/pull/12883
- fix(replica): bounds-check read repair, guard group-by objects bucket by @moogacs in https://github.com/weaviate/weaviate/pull/12876
- fix(reindex): rename a rebuilt index into place only once the schema lists it by @etiennedi in https://github.com/weaviate/weaviate/pull/12949
- queue: remove obsolete vector index queue checkpoint migration by @asdine in https://github.com/weaviate/weaviate/pull/12990
- fix(raft-cluster): barrier a new leader's FSM before it judges proposes by @moogacs in https://github.com/weaviate/weaviate/pull/12915
- fix(nodes): authz logic on
v1/nodes?output=minimalwhen caller hasverboseperms by @tsmith023 in https://github.com/weaviate/weaviate/pull/12981 - fix(queue): create chunk files with O_EXCL to prevent same-microsecond name collision by @abdelr in https://github.com/weaviate/weaviate/pull/12880
- fix(hnsw): preserve isolated nodes during compaction by @asdine in https://github.com/weaviate/weaviate/pull/13033
- fix(hfresh): recover orphaned postings through reassign-all by @asdine in https://github.com/weaviate/weaviate/pull/13035
- fix(lsmkv): remove symlink tracing when listing backup files by @tsmith023 in https://github.com/weaviate/weaviate/pull/13032
- Fix shifted weaviate_module_error_total labels and qna-openai nil-response panic by @jeroiraz in https://github.com/weaviate/weaviate/pull/13048
- fix(hnsw): tolerate a tombstoned entrypoint whose node slot is nil by @rlmanrique in https://github.com/weaviate/weaviate/pull/13031
- Fix auto schema with refs on namespaced cluster by @dirkkul in https://github.com/weaviate/weaviate/pull/13037
- fix(schema): drop class data the schema no longer names and handle orphans by @moogacs in https://github.com/weaviate/weaviate/pull/13017
- fix(objects): stop re-call the class the reference write already read by @moogacs in https://github.com/weaviate/weaviate/pull/13068
- backport: fix(db): locks usage (#12525)(#12082) by @moogacs in https://github.com/weaviate/weaviate/pull/13100
- fix(roaringset-pr2): measure a memtable's size as the heap its tree holds by @aliszka in https://github.com/weaviate/weaviate/pull/13039
- fix(queryadmission): deflake TestFIFOWakeOnRelease by @asdine in https://github.com/weaviate/weaviate/pull/13147
- fix(schema): apply the merged property to the DB, not the proposer's copy by @moogacs in https://github.com/weaviate/weaviate/pull/13185
- hnsw: fix ACORN seed-loop vs delete/reset tombstone deadlock (v1.38) by @abdelr in https://github.com/weaviate/weaviate/pull/13193
- fix(batch): introduce semaphore on
Service.BatchObjectsby @tsmith023 in https://github.com/weaviate/weaviate/pull/13192 - backport: try to safe cast array values by @DanielJanicek in https://github.com/weaviate/weaviate/pull/13223
- fix(raft): guard the bootstrap candidates map against concurrent notifies by @jeroiraz in https://github.com/weaviate/weaviate/pull/12533
- fix: publish the raft node atomically to close a boot-time data race by @jeroiraz in https://github.com/weaviate/weaviate/pull/12623
- fix(raft): load the atomic raft node at the FSM barrier call sites by @jeroiraz in https://github.com/weaviate/weaviate/pull/13225
- fix(stream): soft memory backpressure for
BatchStreamby @tsmith023 in https://github.com/weaviate/weaviate/pull/13028 - test(grpc): fix TestBatchObjectsSemaphore deadlock by @byronvoorbach in https://github.com/weaviate/weaviate/pull/13228
- fix: MMR normalize query vector by @trengrj in https://github.com/weaviate/weaviate/pull/13227
- fix(auth): clear db user login cache on snapshot restore by @antas-marcin in https://github.com/weaviate/weaviate/pull/13278
- hnsw: fix commit log crash loop after a kill during heavy writes by @asdine in https://github.com/weaviate/weaviate/pull/13295
- fix: named vector tombstone interval by @trengrj in https://github.com/weaviate/weaviate/pull/13203
- fix(dynamic): recover shared compressed bucket after an interrupted quantized upgrade (#451) by @abdelr in https://github.com/weaviate/weaviate/pull/13220
- fix(rbac): skip & log instead of erroring in
PoliciesToPermissionsandCasbinPoliciesby @tsmith023 in https://github.com/weaviate/weaviate/pull/13281 - fix(cluster/rpc): don't abort in-flight RPCs on leader change by @moogacs in https://github.com/weaviate/weaviate/pull/13354
- fix(objects): pass the tenant to the re-vectorize check on PATCH by @ColtonRobak in https://github.com/weaviate/weaviate/pull/13345
- Fix two db user bugs by @dirkkul in https://github.com/weaviate/weaviate/pull/13356
- fix(backups): allow backups without collections by @tsmith023 in https://github.com/weaviate/weaviate/pull/13250
- fix(errors): recover a panic from every way an error group runs a callback by @aliszka in https://github.com/weaviate/weaviate/pull/13016
- fix(object-ttl): stop delete goroutines from reading a map the sweep still writes by @aliszka in https://github.com/weaviate/weaviate/pull/13279
- fix(object-ttl): keep an aborted deletion's slot reserved until it finishes by @aliszka in https://github.com/weaviate/weaviate/pull/13282
- fix(lsmkv): read active memtable under flush lock in flush cycle by @antas-marcin in https://github.com/weaviate/weaviate/pull/13374
- hotfix: skip reindex recovery scan at startup when RUNTIME_REINDEX_ENABLED is off by @etiennedi in https://github.com/weaviate/weaviate/pull/13390
- fix(object-ttl): report a recovered panic in a delete or abort goroutine by @aliszka in https://github.com/weaviate/weaviate/pull/13307
- fix(aggregator): stop a scan whose caller has gone by @moogacs in https://github.com/weaviate/weaviate/pull/13401
- fix(object-ttl): stop a panicking shard delete from ending a collection's sweep by @aliszka in https://github.com/weaviate/weaviate/pull/13308
- Authz bugfix sweep by @dirkkul in https://github.com/weaviate/weaviate/pull/13324
- fix(object-ttl): stop sweeping a shard or tenant whose delete makes no progress by @aliszka in https://github.com/weaviate/weaviate/pull/13381
- Fix flaky namespace test by @dirkkul in https://github.com/weaviate/weaviate/pull/13436
- fix(hnsw): O(M) fast path for backlinks into all-zero-distance neighbor lists (v1.38) by @abdelr in https://github.com/weaviate/weaviate/pull/13395
- fix(lsmkv): move bucket registration along on replace and rename by @antas-marcin in https://github.com/weaviate/weaviate/pull/13375
- fix(db): delete only the dropped shard's index checkpoints by @antas-marcin in https://github.com/weaviate/weaviate/pull/13388
- fix(lsmkv): keep bucket unchanged when RenameBucket fails on disk by @antas-marcin in https://github.com/weaviate/weaviate/pull/13453
Observability
- Keep a per-namespace collection count and report it as a metric by @dirkkul in https://github.com/weaviate/weaviate/pull/12772
- feat(metrics): tracking of requested consistency level in all API requests by @tsmith023 in https://github.com/weaviate/weaviate/pull/13338
- feat(monitoring): add
collection_namespacelabel to usage metrics by @tsmith023 in https://github.com/weaviate/weaviate/pull/12833 - metric(cluster): label leader-query failures by @moogacs in https://github.com/weaviate/weaviate/pull/13353
Refactoring & Code Quality
- docs(backup): mark the non-hardlink backup fallback as deprecated (removed in v1.40) by @etiennedi in https://github.com/weaviate/weaviate/pull/12469
- Remove TestReadSnapshotBufferAllocation which was flaky by @dirkkul in https://github.com/weaviate/weaviate/pull/12493
- refactor(db): pin change capture through withShardForChangeLog and introduce shardChangeLogger interface by @moogacs in https://github.com/weaviate/weaviate/pull/12496
- refactor(db): pin object writes through withShardForWrite and introduce shardWriter interface by @moogacs in https://github.com/weaviate/weaviate/pull/12495
- Testcontainer endpoint + docstring fixes by @dirkkul in https://github.com/weaviate/weaviate/pull/12540
- Update CONTRIBUTING.md with new guidelines and links by @spiros-spiros in https://github.com/weaviate/weaviate/pull/12568
- refact(schema): introduce DeleteClassFromDB & HasFrozenTenants encapsulation by @moogacs in https://github.com/weaviate/weaviate/pull/12596
- Add Weaviate license and license switch by @etiennedi in https://github.com/weaviate/weaviate/pull/12796
- refactor(schema): read shard status from the indexer, not the RAFT schema by @moogacs in https://github.com/weaviate/weaviate/pull/13004
- refactor(schema): drop the mirror schemaReader interfaces by @moogacs in https://github.com/weaviate/weaviate/pull/13006
- refact(modules): use SchemaGetter and remove interface duplicate by @moogacs in https://github.com/weaviate/weaviate/pull/13018
- Trim claude.md to save context by @dirkkul in https://github.com/weaviate/weaviate/pull/13057
- Docs links on out-of-memory-mappings errors (logs and API) by @g-despot in https://github.com/weaviate/weaviate/pull/12738
- Replace WEAVIATE_LICENSE env toggle with LICENSE_KEY form check by @etiennedi in https://github.com/weaviate/weaviate/pull/13081
- Add LICENSE_KEY_FILE as an alternative to LICENSE_KEY by @etiennedi in https://github.com/weaviate/weaviate/pull/13089
- refactor(test): start the shared acceptance server by default and skip it only for own-cluster suites by @antas-marcin in https://github.com/weaviate/weaviate/pull/13251
- Trim whitespace around LICENSE_KEY before checking the key by @dirkkul in https://github.com/weaviate/weaviate/pull/13258
- Expose license state via /v1/meta, metrics, and startup log by @etiennedi in https://github.com/weaviate/weaviate/pull/13092
- Update wl license text per legal (M3.5) by @etiennedi in https://github.com/weaviate/weaviate/pull/13360
- refactor(errors): make the error group wrapper's errgroup a private field by @aliszka in https://github.com/weaviate/weaviate/pull/13386
- Gate wl/ code behind a license decision made outside wl/ by @jeroiraz in https://github.com/weaviate/weaviate/pull/13434
- license: guard wl types and hard-coded licensed mode outside gates by @jeroiraz in https://github.com/weaviate/weaviate/pull/13435
Testing
- 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
- test(python): pin weaviate-client python dependency to 4.23 version by @antas-marcin in https://github.com/weaviate/weaviate/pull/12908
- test: switch minio/minio image to cgr.dev/chainguard/minio by @antas-marcin in https://github.com/weaviate/weaviate/pull/13052
- test: release the queue lease before dropping the vector index by @asdine in https://github.com/weaviate/weaviate/pull/13085
- test(db): move hybrid offsets and vector index queue tests to integrationslowtest, cut drop-vector tests to 50 objects by @antas-marcin in https://github.com/weaviate/weaviate/pull/13134
- test(go-client): replace text2vec-contextionary with text2vec-model2vec by @antas-marcin in https://github.com/weaviate/weaviate/pull/13155
- test(acceptance): replace text2vec-contextionary with text2vec-model2vec in docker-compose tests by @antas-marcin in https://github.com/weaviate/weaviate/pull/13167
- test(acceptance): replace text2vec-contextionary with text2vec-model2vec in testcontainers tests by @antas-marcin in https://github.com/weaviate/weaviate/pull/13199
- test(lsmkv): stop the flush cycle before Shutdown in the threshold tests by @aliszka in https://github.com/weaviate/weaviate/pull/13332
- test: retry class node status and replication READY polls in replica movement happy paths by @jeroiraz in https://github.com/weaviate/weaviate/pull/13463
CI/CD & Infrastructure
- chore: update Weaviate version to v1.40.0-dev by @antas-marcin in https://github.com/weaviate/weaviate/pull/12483
- ci: upgrade modules light and modules api runners to ubicloud-standard-4 by @antas-marcin in https://github.com/weaviate/weaviate/pull/12776
- chore(Dockerfile): remove unnecessary comments by @antas-marcin in https://github.com/weaviate/weaviate/pull/12803
- chore(gen-code-from-swagger.sh): add code formatting step by @antas-marcin in https://github.com/weaviate/weaviate/pull/12814
- ci: remove multinode-restart-a reindex pipeline by @antas-marcin in https://github.com/weaviate/weaviate/pull/12895
- ci: remove the windows acceptance job and stop building windows binaries by @asdine in https://github.com/weaviate/weaviate/pull/13066
- ci: run adapters/repos/db/integrationslowtest as its own integration job by @antas-marcin in https://github.com/weaviate/weaviate/pull/13065
- ci(workflows): run only docker build, unit, integration and codecov jobs on branch pushes by @antas-marcin in https://github.com/weaviate/weaviate/pull/13111
- ci(acceptance): split fast-group-3 into grpc-only and new fast-group-6 by @antas-marcin in https://github.com/weaviate/weaviate/pull/13120
- test(replication): split async replication acceptance tests into two CI groups by @antas-marcin in https://github.com/weaviate/weaviate/pull/13234
- test(replication): reduce replica-slow acceptance test suite time by @antas-marcin in https://github.com/weaviate/weaviate/pull/13245
- test(acceptance): start the shared server only for suites that use it and reuse it for single-node tests by @antas-marcin in https://github.com/weaviate/weaviate/pull/13244
- test(db): speed up the slowest integration tests by @antas-marcin in https://github.com/weaviate/weaviate/pull/13263
- test(acceptance): cut fast-group-3 test time by half by @antas-marcin in https://github.com/weaviate/weaviate/pull/13264
- fix(ci): reduce number of articles ingested in
TestGRPC_Batchingby @tsmith023 in https://github.com/weaviate/weaviate/pull/13259 - test(acceptance): cut fast-group-5 test time by over a third by @antas-marcin in https://github.com/weaviate/weaviate/pull/13268
Security
- security(docker): pin minimum openssl version so cached builds pull CVE fixes by @antas-marcin in https://github.com/weaviate/weaviate/pull/12799
- security: restrict Google module apiEndpoint, region and location to Google API hosts by @antas-marcin in https://github.com/weaviate/weaviate/pull/12961
Dependencies
- chore(deps): bump orcasecurity/shiftleft-sast-action from 1.0.11 to 1.0.12 by @dependabot[bot] in https://github.com/weaviate/weaviate/pull/12543
- chore(deps): bump github/codeql-action/upload-sarif from 4.37.4 to 4.37.6 by @dependabot[bot] in https://github.com/weaviate/weaviate/pull/12542
- chore(deps): bump github/codeql-action/upload-sarif from 4.37.6 to 4.37.7 by @dependabot[bot] in https://github.com/weaviate/weaviate/pull/12695
- Bump github/codeql-action/upload-sarif from 4.37.7 to 4.37.8 by @dependabot[bot] in https://github.com/weaviate/weaviate/pull/12769
- Bump docker/setup-buildx-action from 4.2.0 to 4.3.0 by @dependabot[bot] in https://github.com/weaviate/weaviate/pull/12768
- security(deps): bump golang.org/x/crypto dependency to 0.55.0 by @antas-marcin in https://github.com/weaviate/weaviate/pull/12851
- build(deps): bump github/codeql-action/upload-sarif from 4.37.8 to 4.37.9 by @dependabot[bot] in https://github.com/weaviate/weaviate/pull/12850
- dependencies(update): bump github.com/moby/go-archive from 0.2.0 to 0.3.0 by @dependabot[bot] in https://github.com/weaviate/weaviate/pull/12770
- chore(deps): adjust dependant projects after go-archive bump to 0.3.0 by @antas-marcin in https://github.com/weaviate/weaviate/pull/12857
- security: bump google gRPC dependencies by @antas-marcin in https://github.com/weaviate/weaviate/pull/12897
- security(deps): bump golang.org/x/crypto to v0.56.0 by @antas-marcin in https://github.com/weaviate/weaviate/pull/12963
- dependencies(update): bump github.com/tphakala/simd from 1.6.0 to 1.10.0 by @dependabot[bot] in https://github.com/weaviate/weaviate/pull/13023
- build(deps): bump github/codeql-action/upload-sarif from 4.37.9 to 4.38.0 by @dependabot[bot] in https://github.com/weaviate/weaviate/pull/13051
- dependencies(update): bump github.com/aws/aws-sdk-go-v2/service/bedrockruntime from 1.56.1 to 1.62.0 by @dependabot[bot] in https://github.com/weaviate/weaviate/pull/13021
- dependencies(update): bump github.com/buger/jsonparser from 1.2.0 to 1.6.1 by @dependabot[bot] in https://github.com/weaviate/weaviate/pull/13022
- dependencies(update): bump github.com/go-openapi/errors from 0.22.4 to 0.22.8 by @dependabot[bot] in https://github.com/weaviate/weaviate/pull/13019
- chore(deps): bump aws-actions/configure-aws-credentials from 6.2.3 to 6.2.4 by @dependabot[bot] in https://github.com/weaviate/weaviate/pull/12962
- chore(deps): bump orcasecurity/shiftleft-sast-action from 1.0.12 to 1.0.13 by @dependabot[bot] in https://github.com/weaviate/weaviate/pull/12964
- dependencies(update): bump go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp from 1.43.0 to 1.45.0 by @dependabot[bot] in https://github.com/weaviate/weaviate/pull/13140
- deps: bump github.com/aws/aws-sdk-go-v2/service/sagemakerruntime from 1.39.6 to 1.46.1 by @antas-marcin in https://github.com/weaviate/weaviate/pull/13137
- dependencies(update): bump go.opentelemetry.io/otel/exporters/otlp/otlptrace in sub projects by @antas-marcin in https://github.com/weaviate/weaviate/pull/13145
- build(deps): bump github/codeql-action/upload-sarif from 4.38.0 to 4.38.1 by @dependabot[bot] in https://github.com/weaviate/weaviate/pull/13173
- build(deps): bump aws-actions/configure-aws-credentials from 6.2.4 to 6.3.0 by @dependabot[bot] in https://github.com/weaviate/weaviate/pull/13172
- build(deps): bump docker/build-push-action from 7.3.0 to 7.4.0 by @dependabot[bot] in https://github.com/weaviate/weaviate/pull/13171
- build(deps): bump docker/setup-buildx-action from 4.3.0 to 4.4.1 by @dependabot[bot] in https://github.com/weaviate/weaviate/pull/13170
- build(deps): bump codecov/codecov-action from 7.0.0 to 7.1.1 by @dependabot[bot] in https://github.com/weaviate/weaviate/pull/13169
- dependencies(update): bump go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc from 1.44.0 to 1.45.0 by @dependabot[bot] in https://github.com/weaviate/weaviate/pull/13182
New Contributors
- @hamodywe made their first contribution in https://github.com/weaviate/weaviate/pull/12537
- @lizhiyuell made their first contribution in https://github.com/weaviate/weaviate/pull/12137
- @bharadwaj-pendyala made their first contribution in https://github.com/weaviate/weaviate/pull/12884
- @ColtonRobak made their first contribution in https://github.com/weaviate/weaviate/pull/13345
Full Changelog: https://github.com/weaviate/weaviate/compare/v1.39.0...v1.40.0