v0.31.0-beta.0

VoiceBlender/voiceblenderv0.31.0-beta.0Jun 18, 2026by github-actions[bot]

AI Summary

This major beta release adds significant new capabilities to LanceDB, including table branch support, FM-Index scalar indexing, and extended expression builders. It also includes performance optimizations and bug fixes for Python and Node.js bindings.

Key Highlights

  • Added table branch support for version control
  • Implemented FM-Index scalar index for substring search
  • Added `isin` support to the Expr builder
  • Performance improvement: dropped N+1 queries in RemoteTable::list_indices
  • Added approx mode to vector queries

Breaking Changes

  • Dropped unused `loss` field from IndexStatistics

New Features

  • Table branch support
  • FM-Index scalar index for substring search
  • LSM write spec REST variant
  • Approx mode for vector queries
  • Rename table support on LanceNamespaceDatabase
  • Expanded IndexConfig with rich metadata

Full Release Notes

## 🛠 Breaking Changes

- refactor!: drop unused loss field from IndexStatistics by @wjones127 in https://github.com/lancedb/lancedb/pull/3496

## 🎉 New Features

- feat(remote): implement set/unset_lsm_write_spec REST variant by @hamersaw in https://github.com/lancedb/lancedb/pull/3501
- feat: add table branch support by @brendanclement in https://github.com/lancedb/lancedb/pull/3490
- feat: support checking out a version on a branch by @brendanclement in https://github.com/lancedb/lancedb/pull/3504
- feat: support FM-Index scalar index for substring search by @jackye1995 in https://github.com/lancedb/lancedb/pull/3532
- feat: adds isin support to the 'Expr' builder by @stumpylog in https://github.com/lancedb/lancedb/pull/3523
- feat: expand IndexConfig with rich per-index metadata by @wjones127 in https://github.com/lancedb/lancedb/pull/3497
- feat(python): accept Expr in Table.delete and merge when_not_matched_by_source_delete by @stumpylog in https://github.com/lancedb/lancedb/pull/3524
- feat: support rename_table on LanceNamespaceDatabase by @nuthalapativarun in https://github.com/lancedb/lancedb/pull/3520
- feat(bindings): expose new IndexConfig fields in Python and Node.js by @wjones127 in https://github.com/lancedb/lancedb/pull/3534
- feat: skills to connect and update column metadata by @dantasse in https://github.com/lancedb/lancedb/pull/3541
- feat: add table branch support to remote tables and Python/TS bindings by @brendanclement in https://github.com/lancedb/lancedb/pull/3540
- feat(query): add approx mode to vector queries by @BubbleCal in https://github.com/lancedb/lancedb/pull/3549
- feat: send read-freshness signal on the lance-namespace path by @brendanclement in https://github.com/lancedb/lancedb/pull/3551

## 🐛 Bug Fixes

- fix(python): make LanceDBClientError pickleable by @hashwnath in https://github.com/lancedb/lancedb/pull/3470
- fix(python): run AsyncTable.search embeddings on a dedicated executor by @Ar-maan05 in https://github.com/lancedb/lancedb/pull/3459
- fix(python): push down namespace full reads by @BubbleCal in https://github.com/lancedb/lancedb/pull/3516
- fix(util): convert numpy scalars in value_to_sql by @devteamaegis in https://github.com/lancedb/lancedb/pull/3522
- fix(nodejs): treat NAPI_RS_FORCE_WASI as truthy only when set to 'true' by @nuthalapativarun in https://github.com/lancedb/lancedb/pull/3519
- fix: support LargeList label list indexes by @Xuanwo in https://github.com/lancedb/lancedb/pull/3529
- fix(python): raise clear TypeError for bare List/Tuple in pydantic schema conversion by @Ar-maan05 in https://github.com/lancedb/lancedb/pull/3511
- fix(rust): report local write progress bytes from Lance by @GHX5T-SOL in https://github.com/lancedb/lancedb/pull/3422
- fix(util): escape single quotes in struct field names in value_to_sql by @JSap0914 in https://github.com/lancedb/lancedb/pull/3548
- fix(python): clarify single dictionary input error by @whitewooood in https://github.com/lancedb/lancedb/pull/3537
- fix(rust): return typed errors instead of panicking in Bedrock embedding path by @Ar-maan05 in https://github.com/lancedb/lancedb/pull/3512
- fix(ci): allow shell pre-commit hooks in bumpversion configs by @wjones127 in https://github.com/lancedb/lancedb/pull/3554

## 🚀 Performance Improvements

- perf: drop N+1 in RemoteTable::list_indices by @wjones127 in https://github.com/lancedb/lancedb/pull/3535

## Other Changes

- refactor: extract create_index module from table.rs by @wirybeaver in https://github.com/lancedb/lancedb/pull/3521