haiku.rag/haiku_rag_slim/haiku/rag
Yiorgis Gozadinos d1691d3942
Share document preparation and HTTP acquisition
Five call sites repeated the same post-conversion preparation: store the
Docling representation and resolve a title when none was supplied.
_prepare_and_title now owns that sequence. update_document continues to
call _prepare_document_from_docling directly because an explicit update
must preserve an existing empty title.

create_document, both content-replacement branches of update_document,
and source ingestion embedded eagerly before passing chunks to a
persistence funnel that checked them again. The funnels now own
embedding, including the checks required by import_document and
import_documents for caller-supplied chunks.

Move the document.embed span into ensure_chunks_embedded after its early
return. Every path that performs embedding is now instrumented, while
operations whose chunks are already embedded emit no span.

convert() previously used its own HTTP client and temporary-file path.
Route URL conversion through HTTPSource, matching source ingestion, and
move _write_fetch_body to processing.py so both paths share temporary
file handling without an import cycle.

Add walk_files for filesystem enumeration and use it from both
FSSource.discover and one-shot directory ingestion. Symlink escape
filtering now has one implementation.
2026-08-20 10:50:33 +03:00
..
capabilities Give the evidence capabilities one typed state 2026-08-19 17:08:44 +03:00
chat Give the evidence capabilities one typed state 2026-08-19 17:08:44 +03:00
chunkers Make get_config the only configuration lookup 2026-08-19 14:43:40 +03:00
client Share document preparation and HTTP acquisition 2026-08-20 10:50:33 +03:00
config Make the documented configuration match the code 2026-08-19 15:52:50 +03:00
converters Make get_config the only configuration lookup 2026-08-19 14:43:40 +03:00
embeddings Make get_config the only configuration lookup 2026-08-19 14:43:40 +03:00
ingester Share document preparation and HTTP acquisition 2026-08-20 10:50:33 +03:00
inspector Do not duplicate metadata items in inspector 2026-08-18 12:30:13 +02:00
providers Wire providers.docling_serve.timeout through to the client 2026-08-19 13:30:45 +03:00
reranking Reject unknown and out-of-range configuration values 2026-08-19 15:32:51 +03:00
sandbox Point the limit comments at the right limits 2026-07-28 19:11:37 +03:00
store Make get_config the only configuration lookup 2026-08-19 14:43:40 +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 Make get_config the only configuration lookup 2026-08-19 14:43:40 +03:00
circuit_breaker.py Move CircuitBreaker to a shared module 2026-07-08 11:03:30 +03:00
cli.py Make the documented configuration match the code 2026-08-19 15:52:50 +03:00
context.py Batch context expansion across documents 2026-08-18 16:35:17 +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 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
utils.py Reject unknown and out-of-range configuration values 2026-08-19 15:32:51 +03:00