v0.37.1

lumina-ai-inc/chunkrv0.37.1Aug 10, 2026by github-actions[bot]

AI Summary

This release introduces significant updates to Rust and Python APIs, including a new builder pattern for `add_columns` and improved debugger deadlock handling. It enhances Full Text Search capabilities with custom stop-words and block size configuration, alongside new remote operations for blob range reads and job management.

Key Highlights

  • make add_columns a builder
  • FTS block size configuration
  • Batched blob range reads
  • Job handles and connection-level operations
  • Custom stop-word lists for FTS

Breaking Changes

  • make add_columns a builder
  • avoid debugger deadlock during connection inspection

New Features

  • FTS block size configuration
  • use_lsm to read MemWAL LSM data
  • Batched blob range reads
  • Custom stop-word lists for FTS
  • Connection-level job operations

Full Release Notes

## 🛠 Breaking Changes

- feat(rust)!: make add_columns a builder by @wkalt in https://github.com/lancedb/lancedb/pull/3778
- fix(python): avoid debugger deadlock during connection inspection by @lancedb-gatefixer[bot] in https://github.com/lancedb/lancedb/pull/3788
- feat: infer maintained indexes when an LsmWriteSpec omits them by @hamersaw in https://github.com/lancedb/lancedb/pull/3748

## 🎉 New Features

- feat(fts): add block size configuration by @BubbleCal in https://github.com/lancedb/lancedb/pull/3691
- feat(query): add use_lsm to read MemWAL LSM data by @touch-of-grey in https://github.com/lancedb/lancedb/pull/3489
- feat: support batched blob range reads by @Xuanwo in https://github.com/lancedb/lancedb/pull/3703
- feat(python): expose AsyncTable.to_lance by @u70b3 in https://github.com/lancedb/lancedb/pull/3730
- feat(python): configure streaming transform parallelism by @yaodong-shen in https://github.com/lancedb/lancedb/pull/3699
- feat(fts): support custom stop-word lists by @BubbleCal in https://github.com/lancedb/lancedb/pull/3734
- feat(remote): add RemoteTable fetch_blobs HTTP client by @geruh in https://github.com/lancedb/lancedb/pull/3684
- feat(python): add namespace/table exist support by @FarmerChillax in https://github.com/lancedb/lancedb/pull/3460
- feat: create_index returns a Job handle by @wkalt in https://github.com/lancedb/lancedb/pull/3742
- feat: connection-level job operations by @wkalt in https://github.com/lancedb/lancedb/pull/3755
- feat(remote): add seekable blob range reads by @geruh in https://github.com/lancedb/lancedb/pull/3750
- feat(rust)!: make add_columns a builder by @wkalt in https://github.com/lancedb/lancedb/pull/3778
- feat(table): checkpoint_lsm, flush_lsm, compact_lsm, get_lsm_stats by @hamersaw in https://github.com/lancedb/lancedb/pull/3736
- feat: infer maintained indexes when an LsmWriteSpec omits them by @hamersaw in https://github.com/lancedb/lancedb/pull/3748

## 🐛 Bug Fixes

- fix: crash in AnswerdotaiRerankers/ColbertReranker for return_score="all" by @chuenchen309 in https://github.com/lancedb/lancedb/pull/3671
- fix: preserve row count in MetadataEraserExec for zero-column batches by @vivek-bharathan in https://github.com/lancedb/lancedb/pull/3717
- fix: accept either timestamp or timestamp_millis for versions by @dantasse in https://github.com/lancedb/lancedb/pull/3733
- fix(node): reject non-string Arrow metadata by @u70b3 in https://github.com/lancedb/lancedb/pull/3728
- fix: deflake test_read_consistency_interval by @wjones127 in https://github.com/lancedb/lancedb/pull/3713
- fix(python): avoid async work in sync reprs by @ssrheart425 in https://github.com/lancedb/lancedb/pull/3620
- fix(remote): surface masked merge_insert stream errors under HTTP2 (#2339) by @sanskar-singh-2403 in https://github.com/lancedb/lancedb/pull/3711
- fix: distinguish corrupt table from missing in open_table by @joaquinhuigomez in https://github.com/lancedb/lancedb/pull/3731
- fix(python): log when storage_options is ignored in RemoteDBConnection.open_table by @ckarnell in https://github.com/lancedb/lancedb/pull/3743
- fix: hybrid search minimum_nprobes(0) silently no-ops instead of raising by @Adityaj0 in https://github.com/lancedb/lancedb/pull/3770
- fix: when_not_matched_by_source_delete() doesn't reset a previously-set condition by @Adityaj0 in https://github.com/lancedb/lancedb/pull/3771
- fix(python): avoid debugger deadlock during connection inspection by @lancedb-gatefixer[bot] in https://github.com/lancedb/lancedb/pull/3788
- fix(python): guard concurrent table deletes by @lancedb-gatefixer[bot] in https://github.com/lancedb/lancedb/pull/3787
- fix(python): report unsplittable IVF partition errors by @lancedb-gatefixer[bot] in https://github.com/lancedb/lancedb/pull/3846
- fix(python): align wheel ABI with supported versions by @lancedb-gatefixer[bot] in https://github.com/lancedb/lancedb/pull/3884
- fix(python): prevent OpenSSL linkage in Linux wheels by @lancedb-gatefixer[bot] in https://github.com/lancedb/lancedb/pull/3877
- fix(python): instruct dimension probe for instructor embeddings by @lancedb-gatefixer[bot] in https://github.com/lancedb/lancedb/pull/3874
- fix(python): support nullable pandas merge input by @lancedb-gatefixer[bot] in https://github.com/lancedb/lancedb/pull/3864
- fix(python): cover nullable list v2.2 decoding by @lancedb-gatefixer[bot] in https://github.com/lancedb/lancedb/pull/3853
- fix(python): preserve repeated indexed merge inserts by @lancedb-gatefixer[bot] in https://github.com/lancedb/lancedb/pull/3850
- fix(rust): prevent vector optimize regression after deletes by @lancedb-gatefixer[bot] in https://github.com/lancedb/lancedb/pull/3848
- fix(remote): validate cloud DNS hostnames by @lancedb-gatefixer[bot] in https://github.com/lancedb/lancedb/pull/3845
- fix(rust): handle missing mirrored copy sources by @lancedb-gatefixer[bot] in https://github.com/lancedb/lancedb/pull/3843
- fix: percent-encode index names in per-index remote REST paths by @wkalt in https://github.com/lancedb/lancedb/pull/3840
- fix(python): accept Arrow scalars in table updates by @lancedb-gatefixer[bot] in https://github.com/lancedb/lancedb/pull/3838
- fix(python): clarify bare Vector annotations by @lancedb-gatefixer[bot] in https://github.com/lancedb/lancedb/pull/3809
- fix(python): expose inline types to downstream checkers by @lancedb-gatefixer[bot] in https://github.com/lancedb/lancedb/pull/3817
- fix(node): require compatible Node.js types by @lancedb-gatefixer[bot] in https://github.com/lancedb/lancedb/pull/3829
- fix(python): support Polars 1.32 table scans by @lancedb-gatefixer[bot] in https://github.com/lancedb/lancedb/pull/3801
- fix(node): cover non-nullable embedding schema append by @lancedb-gatefixer[bot] in https://github.com/lancedb/lancedb/pull/3835
- fix: explain unsupported object storage mounts by @lancedb-gatefixer[bot] in https://github.com/lancedb/lancedb/pull/3823
- fix(node): cover offset pagination in search by @lancedb-gatefixer[bot] in https://github.com/lancedb/lancedb/pull/3814
- fix: avoid AttributeError in JinaEmbeddings image input for str/Path by @chuenchen309 in https://github.com/lancedb/lancedb/pull/3670
- fix: get table size from metadata, not files by @dantasse in https://github.com/lancedb/lancedb/pull/3790
- fix(node): preserve nested Arrow data across versions by @lancedb-gatefixer[bot] in https://github.com/lancedb/lancedb/pull/3900

## 📚 Documentation

- docs(python): fill gaps in the Python API reference by @wjones127 in https://github.com/lancedb/lancedb/pull/3746

## 🔧 Build and CI

- ci: cut Actions cost by moving builds to free runners and fixing caches by @wjones127 in https://github.com/lancedb/lancedb/pull/3735
- ci(docs): add scheduled doc link check by @Xuanwo in https://github.com/lancedb/lancedb/pull/3888