haiku.rag/haiku_rag_slim/haiku/rag
Yiorgis Gozadinos da207da106
Read the table list and settings once per open
Opening a database ran `list_tables` three times, opened the settings table
twice, and read and parsed the same settings row three times: once for the stored
vector dimension, once for the version behind the migration check, and once for
config validation. On object storage each of those is a round trip.

`_initialize` now reads both once and threads them down. `_init_tables` and
`_check_migrations` take what it read instead of fetching their own copy, and
`validate_config_compatibility` accepts the settings it should compare against,
still reading for itself when called directly.

Passing the pre-init read to validation is equivalent: nothing between the read
and the validation rewrites `embeddings`, which is all it compares.

The settings read no longer swallows every exception. It did before, when the
only consequence was falling back to the configured vector dimension; now the
same empty result feeds the migration check, where it would read as version
0.0.0 and declare every migration pending. Only decode failures are tolerated,
and a decoded non-object normalizes to {} rather than reaching callers that
expect a mapping.
2026-08-18 14:58:17 +03:00
..
capabilities Judge each capability's evidence by its own record 2026-08-13 15:57:33 +03:00
chat Give the capsule to one return, and the run its own copy of state 2026-08-13 13:00:02 +03:00
chunkers Fail docling-serve requests over to another instance with per-instance breaking 2026-07-08 11:03:44 +03:00
client Simplify the eval harness and share the embed-fill path. 2026-08-17 10:56:26 +03:00
config Share the LanceDB session across connections 2026-08-18 14:58:17 +03:00
converters Reuse the local docling converter across documents 2026-08-13 11:39:01 +03:00
embeddings Pool HTTP clients for vLLM embedding and vLLM/Jina reranking 2026-07-09 10:32:44 +03:00
ingester Move ingester telemetry setup behind argument parsing 2026-08-13 11:37:36 +03:00
inspector Surface database-open errors in the TUIs 2026-07-25 11:27:29 +03:00
providers Emit a docling_serve.request span per instance attempt 2026-07-10 11:16:27 +03:00
reranking Keep cross-encoder rerank scores apart when they saturate 2026-08-07 14:07:53 +03:00
sandbox Point the limit comments at the right limits 2026-07-28 19:11:37 +03:00
store Read the table list and settings once per open 2026-08-18 14:58:17 +03:00
tools Move the wire rewrite into the compaction capability 2026-08-13 13:00:02 +03:00
__init__.py Restructure into uv workspace to support minimal and full installations 2025-11-04 17:59:12 +02:00
app.py Accept images on CLI ask/analyze and MCP tools 2026-07-25 10:35:25 +03:00
circuit_breaker.py Move CircuitBreaker to a shared module 2026-07-08 11:03:30 +03:00
cli.py Stop eagerly importing Store from haiku.rag.store 2026-08-11 17:26:51 +01:00
context.py Remove unreachable code and fix two defects it surfaced 2026-07-26 18:45:48 +03:00
doctor.py Fix defects found reviewing the coverage work 2026-07-27 10:44:32 +03:00
logging.py Restructure into uv workspace to support minimal and full installations 2025-11-04 17:59:12 +02:00
mcp.py Cover MCP, ingester and converter error paths 2026-07-26 19:14:26 +03:00
s3.py swap aioboto3 for obstore in the S3 client path 2026-05-11 11:29:42 +03:00
telemetry.py Route eval scripts through the shared telemetry configure 2026-07-10 11:38:33 +03:00
utils.py Map thinking onto Pydantic AI's unified setting 2026-07-27 18:26:42 +03:00