haiku.rag/haiku_rag_slim/haiku/rag
Yiorgis Gozadinos bb92ccf67e
Cover the configured set in the chat TUI
Chat answers with the same capabilities `ask` does, so it federates as
naturally as `ask` and `analyze` — but it went through the one-database
guard and refused a configured set outright, which left no way to chat
across several databases.

The guard was the visible half. `run_chat` also defaulted `db_path` to the
single default path whenever it was None, so lifting the refusal alone
would still have opened one database. It now leaves the path unresolved
when `lancedb.databases` names the set, and the client resolves it.

Listing and counting documents fan out over the set, which is what the
document filter reads, and visual grounding resolves the database holding
the cited chunk through the citation's source: chunks, pages and bounding
boxes all come from that one database. A limit on a listing means that
many documents in total, not that many per database.

The info modal reports every database it covers, each under its
configured name and without its location, since names are the only
identity that leaves the configuration. `database_lines` is what one
database reports about itself, shared by both paths, and it reports a
failure as a line so one unreachable database does not cost the report on
the others.

`inspect` stays a one-database command. It browses one database's
documents and chunks, so a set has nothing to show it.
2026-08-24 10:03:46 +03:00
..
capabilities Ask and analyze across several databases 2026-08-24 10:03:46 +03:00
chat Cover the configured set in the chat TUI 2026-08-24 10:03:46 +03:00
chunkers Delete comments that restate the line below them 2026-08-20 15:22:33 +03:00
client Cover the configured set in the chat TUI 2026-08-24 10:03:46 +03:00
config Search several configured databases and fuse the results 2026-08-24 10:03:45 +03:00
converters Add per-endpoint api_key to model and embedding config 2026-08-23 23:54:40 +03:00
embeddings Add per-endpoint api_key to model and embedding config 2026-08-23 23:54:40 +03:00
ingester Split the store module by responsibility 2026-08-20 12:13:51 +03:00
inspector Cover the configured set in the chat TUI 2026-08-24 10:03:46 +03:00
providers Wire providers.docling_serve.timeout through to the client 2026-08-19 13:30:45 +03:00
reranking Add per-endpoint api_key to model and embedding config 2026-08-23 23:54:40 +03:00
sandbox Ask and analyze across several databases 2026-08-24 10:03:46 +03:00
sources Resolve file:// URIs to paths through url2pathname 2026-08-21 10:22:26 +03:00
store Move ConfigMismatchError to the store exceptions module 2026-08-24 10:03:46 +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 Ask and analyze across several databases 2026-08-24 10:03:46 +03:00
circuit_breaker.py Move CircuitBreaker to a shared module 2026-07-08 11:03:30 +03:00
cli.py Cover the configured set in the chat TUI 2026-08-24 10:03:46 +03:00
context.py Ask and analyze across several databases 2026-08-24 10:03:46 +03:00
doctor.py Add per-endpoint api_key to model and embedding config 2026-08-23 23:54:40 +03:00
logging.py Delete comments that restate the line below them 2026-08-20 15:22:33 +03:00
mcp.py Make get_config the only configuration lookup 2026-08-19 14:43:40 +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
uri.py Resolve file:// URIs to paths through url2pathname 2026-08-21 10:22:26 +03:00
utils.py Ask and analyze across several databases 2026-08-24 10:03:46 +03:00