github weaviate/weaviate v1.38.0
v1.38.0 - HFresh, Namespaces, Nested Object Filtering, Alter Schema Reindex property

latest releases: v1.36.22, v1.38.4, v1.38.3...
one month ago

Breaking Changes

none

HFresh (GA)

Extensive improvements including numerous performance optimizations reducing memory usage, disk writes, and allocations.

Namespaces (Preview)

Namespaces add control-plane and data isolation between users on a shared cluster.

Nested Object Filtering (Preview)

Adds ability to perform search within indexed JSON properties.

  • Nested object filtering — Part 1: position encoding and assignment by @aliszka in #10954
  • Nested object filtering — Part 2: write path analysis by @aliszka in #10955
  • Nested object filtering — Part 3: LSM storage, write path, and bucket management by @aliszka in #10956
  • Nested object filtering — Part 4: batched writes, delete path, and prefix-bounded reads by @aliszka in #10957
  • Nested object filtering — Part 5: filter validation, execution, and integration tests by @aliszka in #10974
  • Nested object filtering — Part 6: correlated AND resolution plan and executor by @aliszka in #10975
  • Nested object filtering — Part 7: correlated AND resolution by @aliszka in #10976
  • Nested object filtering — Part 8: IsNull support and arr[N] positional filtering by @aliszka in #11010
  • Nested object filtering — Part 9: flat execution plan and arr[N] cross-index fix by @aliszka in #11048
  • Nested object filtering — Part 10: pool-backed BitmapOps and lifecycle testing by @aliszka in #11084
  • Nested object filtering — Part 11: path consolidation, delete cleanup, UUID and IsNull support by @aliszka in #11315
  • Nested object filtering — Part 12: recursive plan/executor and same-element-at-LCA semantics by @aliszka in #11316
  • Nested object filtering — Part 13: DB-level test consolidation and same-K-different-parent fix by @aliszka in #11317
  • Nested object filtering — Part 14: regression baseline test sweep by @aliszka in #11338
  • Nested object filtering — Part 15: position-level evaluation across operator subtrees by @aliszka in #11339
  • Nested object filtering — Part 16: scope-aware NOT and IsNull by @aliszka in #11340
  • Nested object filtering — Part 17: Contains* operators as first-class on nested paths by @aliszka in #11341
  • Nested object filtering — Part 18: gRPC ingress for nested filter paths + Python e2e suite by @aliszka in #11365
  • Nested object filtering — Part 19: Python e2e coverage for single-OBJECT intermediates by @aliszka in #11369
  • Nested object filtering — Part 20: preview gate, GraphQL ingress, and pre-release correctness by @aliszka in #11387
  • Nested object filtering — Part 21: 96-bit path hash, IsNull in operator subtrees, write-path allocation cuts by @aliszka in #11448
  • chore: bumps sroar to v0.0.14 by @aliszka in #11626

Alter Schema - Reindex property (Preview)

Adds support for changing property's index types.

  • Runtime property reindex (v1.38 Preview) by @etiennedi in #11326
  • chore(reindex): post-merge cleanups — CI matrix split, configure_api helper extract, docs by @etiennedi in #11350
  • [Reindex v1.38 Preview] Two-phase RAFT swap barrier for semantic reindex migrations by @etiennedi in #11328
  • fix(reindex): compose multi-task progress into per-unit envelope by @etiennedi in #11346
  • fix(cluster): cascade-delete DTM task records on collection drop (closes weaviate/0-weaviate-issues#231) by @etiennedi in #11345
  • fix(reindex): graceful-restart resilience for in-flight units by @etiennedi in #11370
  • test+fix(reindex/distributedtask): recovery-convergence matrices + #244/#246 fixes by @etiennedi in #11415
  • fix(distributedtask): close #240 orphaned-unit class (throttler retry + RecordUnitCompletion NodeID) by @etiennedi in #11428
  • [Reindex v1.38 Preview] Backup × runtime-reindex fixes by @etiennedi in #11327
  • chore(reindex): fix linter errors for reindex handler by @antas-marcin in #11490
  • fix(reindex): promote MapToBlockmax to a semantic migration (closes weaviate/0-weaviate-issues#254 finding 3) by @etiennedi in #11500
  • test(reindex-multinode): use atomic Container.Restart for rolling-restart cycles by @etiennedi in #11506
  • fix(reindex-tests): plant torn sentinels across restart boundary by @etiennedi in #11507
  • test(reindex-backup): poll for orphan sidecar dir removal (Mode B flake) by @etiennedi in #11514
  • test(reindex-backup): fix BackupRefusedDuringInFlightMigration flake by @etiennedi in #11512
  • fix(reindex): atomic tokenization overlay swap by @etiennedi in #11513
  • test(distributedtask): fix two reactive-firing test-harness flakes by @etiennedi in #11518
  • test(reindex-singlenode): poll DeleteClass past the in-flight migration guard (APIValidation flake) by @etiennedi in #11515
  • test(reindex): replace time.Sleep with dynamic polling, cap poll intervals at 50ms by @etiennedi in #11495

Secure MCP Server (Preview)

Secure Built-In Model Context Protocol (MCP) server interface. This allows AI agents (such as Claude, IDEs, etc.) to natively read and write to Weaviate without requiring custom code. The implementation shifts Weaviate from a passive retrieval engine to an active "long-term memory" for agentic workflows, supporting hybrid search, RAG, and multi-tenancy out of the box.

Async Replication Prod Readiness

Async replication optimizations and fixes.

  • fix: optimize zstd encoder usage in replication client by @jeroiraz in #11078
  • test: set timeout unit for replication client in HashTreeLevel tests by @jeroiraz in #11158
  • feat: per-level discriminants for hashtree peer comparison by @jeroiraz in #11204
  • feat: async replication scheduler by @jeroiraz in #11155
  • fix: prevent race condition in async replication scheduler's dispatch logic by @jeroiraz in #11266
  • feat: async replication using CompareDigests by @jeroiraz in #11223
  • fix: update async replication frequency handling by @jeroiraz in #11297
  • feat: Implement async checkpoint functionality by @jeroiraz in #10926
  • feat: async replication enabled by default by @jeroiraz in #11214
  • feat: add async replication compatibility layer by @jeroiraz in #11502
  • chore: lower async replication scheduler defaults by @jeroiraz in #11630

Boost API

Soft-ranking support.

Backup reliability improvements

Improves backup reliability for large collections, includes inactive tenants, avoids halting compactions and introduces incremental backups.

Production-ready Replica Movement

  • fix(replication): use writable shards in OverwriteObjects() by @moogacs in #11002
  • refact(replication): introduce replication error pkg and unify erroring by @moogacs in #10026
  • [feat] Introduce change capture log in replica movement by @tsmith023 in #11201
  • Remove additionalWriteReplicas from routing behaviour by @tsmith023 in #11590
  • Harden replica movement gating before CCL sealing by @tsmith023 in #11631
  • Ensure that CCL is started when local schema is up-to-date with leader by @tsmith023 in #11640

Modules & Integrations

Performance & Optimization

  • startup: speedup startup by checking db status more often by @asdine in #11064
  • Improve compressed vector index cache by @trengrj in #11059
  • Fix startup race in object TTL by @dirkkul in #11095
  • Switch ObjectTTL log level to debug by @dirkkul in #11096
  • Reorder timeout checks for raft ready and leadership elections in attempt to avoid flaking in ci by @tsmith023 in #11105
  • Collection export: Speed up snapshotting with concurrent tenant de-activation by @dirkkul in #11031
  • compactv2: migrate all compactv2 files during startup by @asdine in #11150
  • Add default vector index setting by @trengrj in #11042
  • async indexing: retry forever when disk is full by @asdine in #11168
  • Ignore none for default quantization by @trengrj in #11175
  • queue: promote partial chunk in PrepareForBackup to prevent S3 BadDigest by @rlmanrique in #11211
  • feat: dont read class name from objects bucket by @amourao in #11199
  • feat: add support for skipping class name in object storage by @amourao in #11240
  • fix(lsmkv): remove flakiness in bucket threshold tests via synctest by @aliszka in #11343
  • Support named vectors in default vector index by @trengrj in #11364
  • queue: fix trigger behavior by @asdine in #11379
  • feat(restrictions): split searchable.rebuild from algorithm switch (closes weaviate/0-weaviate-issues#227) by @etiennedi in #11383
  • Increase SSB memlimit threshold from 80% to 90% by @tsmith023 in #10660
  • gh-11440 parse BM25 property boosts as floats by @msnandhis in #11471
  • Restrict user assignment permissions to roles the user has permission to by @dirkkul in #11493
  • Add deterministic tie-breaking for equal-distance vector search results by @abdelr in #11632
  • Use local HuggingFace cache for ann-datasets to avoid 429 by @asdine in #11649

Bug Fixes

  • Fix access-check race in multi-node Azure backup Initialize by @jfrancoa in #11026
  • fix: handle secondary index size accumulation for varying key counts by @amourao in #11060
  • fix: refactor bucket creation to use options for sec indices by @amourao in #11067
  • Set export default path to empty by default by @dirkkul in #11068
  • fix(ttl): guarantee tenant re-deactivation when TTL context is canceled mid-deletion by @jfrancoa in #11063
  • Fix 'succesfully' typo in benchmark/remote/run.sh by @MukundaKatta in #11046
  • fix: support old stopword index config on endpoint by @amourao in #11079
  • fix: flush memtables after queue drain in HaltForTransfer by @rlmanrique in #10991
  • fix(cluster): prevent shutdown hangs by buffering close signal channels by @moogacs in #11114
  • fix: normalize negative zero in LexicographicallySortableFloat64 to fix inverted index filters by @anishesg in #11120
  • docs: fix TextAnalyzerConfig descriptions for immutabiity by @amourao in #11127
  • MMR Fix for Multi-Node by @trengrj in #11041
  • hnsw: fix snapshotFileName for compactv2 .sorted commit logs by @asdine in #11147
  • Fix concurrent sends and dropped reports in SSB by @tsmith023 in #11145
  • Fix recursive RAFT commands in func (s *SchemaManager) UpdateShardStatus path by @tsmith023 in #11186
  • chore(test_usage): relax vector storage bytes check to reduce flakiness by @antas-marcin in #11270
  • fix: drain dispatcher workCh correctly by @jeroiraz in #11293
  • fix(offload-s3): build per-call cli.App to avoid concurrent freeze panic by @moogacs in #11289
  • Fix flaky TestMakeUnboundedChannel_CapShrink by @asdine in #11380
  • fix: duplicated words in commit_log_combiner, queue.go, and path.go comments by @oab24413gmai in #11299
  • fix: initialize dateAggregator max sentinel to MinInt64 to handle pre-1970 dates by @anishesg in #11130
  • fix: skip stale doc IDs in HFRESH rescore and flat search after deletion by @anishesg in #11132
  • [FIX] - Check DB user identifier collisions in auth index by @kedar49 in #11381
  • fix(inverted): wrap child error in sequential nested AND/OR by @SAY-5 in #11363
  • Reject duplicate static API keys by @3em0 in #11393
  • fix: deflake TestReplicationAbort/Error and /DecodeResponse by @moogacs in #11419
  • fix: deflake TestReplicationAbort/Error and /DecodeResponse by @moogacs in #11421
  • fix(test): bump CancelClearsAcrossReplicas backup deadline 60s → 120s by @etiennedi in #11453
  • Fix/hnsw findnewentrypoint panic by @abdelr in #11151
  • fix(compression): skip readonly bucket write-back in recoverCompresse… by @trengrj in #11458
  • fix(lsmkv): make compaction abort immediately on cancel by @etiennedi in #11461
  • fix(db): sync-rename + async RemoveAll on collection / shard delete by @etiennedi in #11462
  • fix(db): make async-delete drop idempotent for a missing source by @etiennedi in #11477
  • Fix dangling-alias batch insert silently re-creating the deleted target by @jfrancoa in #11489
  • fix(lsmkv): avoid recursive bucketAccessLock.RLock and harden Pause/ResumeObjectBucketCompaction concurrency by @etiennedi in #11486
  • Improve assertions and log verbosity in TestReplicationReplicateWithLazyShardLoading by @tsmith023 in #11481
  • fix(rbac): pass principal to prettyPermissionsResources (main is red) by @etiennedi in #11524
  • test: deflake TestReplicationDigestObjectsInRange/TruncatedBinaryRecord by @jeroiraz in #11511
  • test: drop flaky RegisterAssignsMonotoneSeq subtest by @jeroiraz in #11532
  • test: update tests to ensure input beacons are echoed on failed rows by @amourao in #11531
  • use the same update time for batch references everywhere by @dirkkul in #11553
  • refactor(schema): extract tokenize logic into shared usecase by @mpartipilo in #11180
  • Revert "refactor(schema): extract tokenize logic into shared usecase" by @antas-marcin in #11558
  • fix: add support for strfmt.URI in reference aggregation and strip NS by @amourao in #11526
  • fix(inverted): index references provided as untyped JSON beacons by @moogacs in #11551
  • Fix race in dynamic users with concurrent pointer access by @dirkkul in #11573
  • Fix failing linter + tests due to merge forward divergence by @tsmith023 in #11591
  • Interpret empty string as empty for slices in dynamic runtime config by @dirkkul in #11589
  • Remove target from additionalWriteReplicas to avoid races between the CCL catch-up and hot-path writes by @tsmith023 in #11588
  • fix(resource): don't auto-recover shards read-only for a non-resource reason by @amourao in #11581
  • test: fix data race in TestAsyncRepairMultiTenancyColdTenantConfigUpdate by @jeroiraz in #11594
  • test: deflake TestReplicationDigestObjectsInRange/TruncatedBinaryRecord (backport #11511 to v1.36) by @jeroiraz in #11595
  • test: deflake replication client tests via generous default timeoutUnit by @jeroiraz in #11601
  • Fix flaky HNSW search test by @dirkkul in #11579
  • Fix flaky usage test by @dirkkul in #11617
  • Remove flaky dynamic index latency assertion by @asdine in #11623

Observability

Refactoring & Code Quality

Testing

  • test(acceptance): make Weaviate host/port configurable via env vars by @mpartipilo in #11153
  • test/docker: per-network subnet with retry to fix concurrent network overlap by @etiennedi in #11520

CI/CD & Infrastructure

Security

Dependencies

  • dependencies(update): bump github.com/buger/jsonparser from 1.1.2 to 1.2.0 by @dependabot[bot] in #11184
  • dependencies(update): bump github.com/Azure/azure-sdk-for-go/sdk/storage/azblob from 1.6.3 to 1.6.4 by @dependabot[bot] in #11183
  • Bump github/codeql-action from 4.35.1 to 4.35.3 by @dependabot[bot] in #11187
  • dependencies(update): bump golang.org/x/net from 0.52.0 to 0.53.0 by @dependabot[bot] in #11181
  • build(deps): bump goreleaser/goreleaser-action from 7.0.0 to 7.2.1 by @dependabot[bot] in #11138
  • chore(deps): bump actions/cache from 5.0.4 to 5.0.5 by @dependabot[bot] in #11090
  • dependencies(update): adjust dependencies is Go sub projects by @antas-marcin in #11189
  • chore(deps): bump aws-actions/configure-aws-credentials from 6.1.0 to 6.1.1 by @dependabot[bot] in #11252
  • chore(deps): bump github/codeql-action from 4.35.3 to 4.35.4 by @dependabot[bot] in #11251
  • Bump docker/setup-buildx-action from 4.0.0 to 4.1.0 by @dependabot[bot] in #11441
  • Bump psf/black from 26.3.1 to 26.5.1 by @dependabot[bot] in #11445
  • Bump github/codeql-action from 4.35.4 to 4.36.0 by @dependabot[bot] in #11444
  • Bump codecov/codecov-action from 6.0.0 to 6.0.1 by @dependabot[bot] in #11443
  • Bump goreleaser/goreleaser-action from 7.2.1 to 7.2.2 by @dependabot[bot] in #11442
  • chore(deps): adjust go.sum by @antas-marcin in #11483

New Contributors

Full Changelog: v1.37.0...v1.38.0

Don't miss a new weaviate release

NewReleases is sending notifications on new releases.