Convert all LanceDB operations from sync calls wrapped in async
functions to the native async API (connect_async, AsyncConnection,
AsyncTable, AsyncQuery). Database I/O no longer blocks the event loop.
- Store and HaikuRAG use async context managers (async with). Store
initialization is deferred to __aenter__; direct construction
without async with is no longer supported.
- Index creation uses config objects (FTS, BTree, IvfPq) instead of
string-based index_type parameter.
- Upgrade callbacks are async.
- HaikuRAG tracks background vacuum tasks and awaits them in __aexit__
and before destructive rebuild operations to avoid races with
concurrent table mutations.
- temp_db_path fixture uses pytest's tmp_path for reliable async
cleanup.
- Strengthen test_search_returns_search_result with chunk_id, document_id, and
non-empty labels assertions
- Remove test_chunks_include_document_title (subsumed by strengthened test) and
its cassette
- Rename test_chunks_include_document_info to
test_search_chunk_includes_document_provenance; add document_title is None
assertion for untitled documents
- Move test_search_result_get_primary_label from test_context_enhancement.py to
test_search.py; rename, remove unnecessary @pytest.mark.vcr() decorator
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>