haiku.rag/haiku_rag_slim/haiku/rag
Yiorgis Gozadinos e1dd8517f9
Refuse to compact evidence the host kept no record of
Both optional capabilities read what earlier questions retrieved and cited from
the capability's state, so a host that carries only the message history hands
every run an empty record. Compaction then replaced the earlier evidence with
receipts and retained nothing, and the loss was invisible: the citations the host
already displayed were still there. It now refuses when it finds evidence from an
earlier question and no record of what that question cited.

`state_carried` reaches the optional capabilities through discovery, so the
refusal distinguishes a host that never carries state from a question that simply
cited nothing.

The documentation taught the pattern that breaks: the compose example is now
stateful and the requirement is stated where each capability is introduced.

The app's browser storage was doing exactly this, keeping only the fields the UI
reads. It now persists the whole namespace map, so the citation policy's
violations survive a reload as well as the evidence record.
2026-08-13 15:46:23 +03:00
..
capabilities Refuse to compact evidence the host kept no record of 2026-08-13 15:46:23 +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 Stop loading page rasters on the title and update paths 2026-08-06 13:04:51 +03:00
config replace haiku.skills with native Pydantic AI capabilities 2026-07-24 15:26: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 Name the search result each page image belongs to 2026-08-13 13:00:01 +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