v0.37.1

EmilTholin/image-trace-loaderv0.37.1Aug 10, 2026by github-actions[bot]

AI Summary

This release focuses on enhancing LSM (Log-Structured Merge-tree) data management, expanding Python API capabilities, and improving remote and full-text search functionalities. It introduces new configuration options and fixes critical bugs related to async operations and connection inspection.

Key Highlights

  • Added new LSM management operations including checkpoint, flush, compact, and stats retrieval.
  • Enhanced Python API with AsyncTable.to_lance, streaming transform parallelism, and namespace/table existence checks.
  • Enabled batched and seekable blob range reads for remote tables.
  • Improved full-text search with block size configuration and custom stop-word lists.
  • Fixed critical debugger deadlocks and async work issues in Python.

Breaking Changes

  • feat(rust)!: make add_columns a builder
  • fix(python): avoid debugger deadlock during connection inspection
  • feat: infer maintained indexes when an LsmWriteSpec omits them

New Features

  • feat(fts): add block size configuration
  • feat(query): add use_lsm to read MemWAL LSM data
  • feat: support batched blob range reads
  • feat(python): expose AsyncTable.to_lance
  • feat(python): configure streaming transform parallelism
  • feat(fts): support custom stop-word lists
  • feat(remote): add RemoteTable fetch_blobs HTTP client
  • feat(python): add namespace/table exist support
  • feat: create_index returns a Job handle
  • feat: connection-level job operations
  • feat(remote): add seekable blob range reads
  • feat(table): checkpoint_lsm, flush_lsm, compact_lsm, get_lsm_stats

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