Commit graph

34 commits

Author SHA1 Message Date
Yiorgis Gozadinos
dc16f74b58
add picture_data column to document_items 2026-04-30 11:23:29 +03:00
Tres Seaver
0d70f4aec6
fix: pass absolute 'db_path' to 'lancedb.connect_async'
Closes #354.
2026-04-24 17:59:01 -04:00
Yiorgis Gozadinos
31fc22ce9d
List tables consistently 2026-04-24 15:57:07 +03:00
Yiorgis Gozadinos
cd4224a727
drop private title/embedding forwarders from HaikuRAG 2026-04-24 15:52:50 +03:00
Yiorgis Gozadinos
b23bad32c3
Check table_names() before dropping chunks in recreate_embeddings_table 2026-04-24 15:32:06 +03:00
Yiorgis Gozadinos
aca3ccc29f
Close connections if __aenter__ fails mid-initialization 2026-04-24 14:43:59 +03:00
Yiorgis Gozadinos
a74c3a6f9e
Satisfy ty by adding a typed to_pydantic helper 2026-04-24 14:42:53 +03:00
Yiorgis Gozadinos
57385506c1
Fix is_new_db detection when create=True is passed on an existing DB 2026-04-24 14:42:53 +03:00
Yiorgis Gozadinos
82fd10e0ee
Migrate LanceDB to native async API
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.
2026-04-24 14:42:52 +03:00
Yiorgis Gozadinos
a1181ff52d
extract get_database_stats and share it across info, inspector, and backend 2026-04-17 15:33:30 +03:00
Yiorgis Gozadinos
364b1bc509
add document_items table for fast context expansion 2026-04-16 12:11:53 +03:00
Yiorgis Gozadinos
a118ee7aaa
Cleanup 2026-04-08 14:19:33 +03:00
Yiorgis Gozadinos
8e876ef28d
For remote stores, detect new db by checking if tables exist 2026-04-08 14:19:10 +03:00
Yiorgis Gozadinos
110accb8e7
Add ConnectionMode enum (LOCAL/CLOUD/OBJECT_STORAGE) and connect_lancedb() utility to support S3, GCS, Azure, and HDFS backends via storage_options. 2026-04-08 14:19:09 +03:00
Yiorgis Gozadinos
53445b8722
Add docling_pages column to DocumentRecord/Document for separate page image storage. 2026-04-08 14:04:32 +03:00
Tres Seaver
53481a7d7a
chore: suppress deprecation wwarning from 'lancedb' 2026-03-12 17:11:58 -04:00
Yiorgis Gozadinos
b8c377da1e
Prevent read-only mode from creating tables in empty directories 2026-03-12 11:42:04 +02:00
Yiorgis Gozadinos
5e55c0df54
replace pyright with ty type checker 2026-01-19 15:50:14 +02:00
Yiorgis Gozadinos
5464d24483
require explicit migrate command for database migrations 2026-01-19 13:22:09 +02:00
Yiorgis Gozadinos
8bdfbe526c
Fix embed-only rebuild with changed vector dimensions
When a database was created with one embedding model and rebuild
--embed-only was run with a different model, it failed with a
vector dimension validation error.

- Store reads stored vector_dim when opening existing databases
- _rebuild_embed_only recreates chunks table to handle dimension changes
- Add test for rebuild with changed vector dimensions
2026-01-14 17:42:28 +02:00
Yiorgis Gozadinos
afc5b02285
Update schema to store docling_document as compressed bytes
- Change DocumentRecord.docling_document_json (str) to docling_document (bytes)
- Use large_binary Arrow type (64-bit offsets) to avoid 2GB column limit
- Decompress in Document.get_docling_document() using gzip
- Update DocumentRepository field mappings
2026-01-10 15:17:27 +02:00
Yiorgis Gozadinos
c9cb005d07
Use FTS on contextualized text 2025-12-29 14:50:07 +02:00
Yiorgis Gozadinos
1e5eebfbf0
Checkout version logic and datetime utils 2025-12-19 12:03:16 +02:00
Yiorgis Gozadinos
1a8f72f99a
Add is_read_only property to Store. Guard all write operations in repositories 2025-12-18 15:55:24 +02:00
Yiorgis Gozadinos
44e8d7b340
Update Document & Chunk schemas to include DoclingDocument references. 2025-12-08 15:54:30 +02:00
Yiorgis Gozadinos
78f1d0cef5
No warnings, just info on db upgrade 2025-12-03 08:51:25 +02:00
Yiorgis Gozadinos
33b254ae3d
Always upgrade database on access. Explicitly create db by running init or HaikuRAG(path, create=True) 2025-12-02 16:49:55 +02:00
Yiorgis Gozadinos
2f54ee7d59
Replace allow_create with cleaner read_only. Elaborate on the test_info tests 2025-11-21 14:37:33 +02:00
Yiorgis Gozadinos
fdcf9a1a12
Show index stats in cli info command 2025-11-21 13:54:04 +02:00
Yiorgis Gozadinos
6a2f33b464
Create vector index from CLI, use configurable refine_factor 2025-11-21 13:54:01 +02:00
Yiorgis Gozadinos
4599dd1481
Drop disable_auto_create flag, simply create only on write operations 2025-11-13 13:53:11 +02:00
Yiorgis Gozadinos
b8bc6d9b68
Let ruff know about our package structure 2025-11-05 17:47:27 +02:00
Yiorgis Gozadinos
5cd951a5f3
When checking for updates, use haiku.rag-slim as the package, since it is always installed 2025-11-05 10:30:59 +02:00
Yiorgis Gozadinos
2f9c907031
Restructure into uv workspace to support minimal and full installations 2025-11-04 17:59:12 +02:00
Renamed from src/haiku/rag/store/engine.py (Browse further)