🛠 Breaking Changes
- refactor!: drop unused loss field from IndexStatistics by @wjones127 in #3496
🎉 New Features
- feat(remote): implement set/unset_lsm_write_spec REST variant by @hamersaw in #3501
- feat: add table branch support by @brendanclement in #3490
- feat: support checking out a version on a branch by @brendanclement in #3504
- feat: support FM-Index scalar index for substring search by @jackye1995 in #3532
- feat: adds isin support to the 'Expr' builder by @stumpylog in #3523
- feat: expand IndexConfig with rich per-index metadata by @wjones127 in #3497
- feat(python): accept Expr in Table.delete and merge when_not_matched_by_source_delete by @stumpylog in #3524
- feat: support rename_table on LanceNamespaceDatabase by @nuthalapativarun in #3520
- feat(bindings): expose new IndexConfig fields in Python and Node.js by @wjones127 in #3534
- feat: skills to connect and update column metadata by @dantasse in #3541
- feat: add table branch support to remote tables and Python/TS bindings by @brendanclement in #3540
- feat(query): add approx mode to vector queries by @BubbleCal in #3549
- feat: send read-freshness signal on the lance-namespace path by @brendanclement in #3551
🐛 Bug Fixes
- fix(python): make LanceDBClientError pickleable by @hashwnath in #3470
- fix(python): run AsyncTable.search embeddings on a dedicated executor by @Ar-maan05 in #3459
- fix(python): push down namespace full reads by @BubbleCal in #3516
- fix(util): convert numpy scalars in value_to_sql by @devteamaegis in #3522
- fix(nodejs): treat NAPI_RS_FORCE_WASI as truthy only when set to 'true' by @nuthalapativarun in #3519
- fix: support LargeList label list indexes by @Xuanwo in #3529
- fix(python): raise clear TypeError for bare List/Tuple in pydantic schema conversion by @Ar-maan05 in #3511
- fix(rust): report local write progress bytes from Lance by @GHX5T-SOL in #3422
- fix(util): escape single quotes in struct field names in value_to_sql by @JSap0914 in #3548
- fix(python): clarify single dictionary input error by @whitewooood in #3537
- fix(rust): return typed errors instead of panicking in Bedrock embedding path by @Ar-maan05 in #3512
- fix(ci): allow shell pre-commit hooks in bumpversion configs by @wjones127 in #3554
🚀 Performance Improvements
- perf: drop N+1 in RemoteTable::list_indices by @wjones127 in #3535
Other Changes
- refactor: extract create_index module from table.rs by @wirybeaver in #3521