ask-degrades-across-all-external-dependencies

OUT derived (depth 2)

The ask module degrades gracefully across all three external dependencies: LLM binary (catches TimeoutExpired/RuntimeError, falls back to raw search), FTS5 index (self-healing derived index with substring fallback), and source chunks database (catches OperationalError/DatabaseError and returns empty results) — no single external system failure prevents useful query responses.

Summary

The ask module is designed so that if any of its three external dependencies fails — the LLM, the full-text search index, or the source chunks database — it catches the error and falls back to a reduced but still functional mode rather than crashing. This means a user always gets some kind of answer, even if parts of the system are broken. However, this belief is currently marked OUT, meaning the evidence chain supporting it has been undermined — one or more of the underlying claims it depends on may no longer hold.

Justifications

SL — Extends existing LLM fault tolerance to cover all external dependency failure modes including source chunk database

Antecedents (all must be IN):

  • ask-is-fault-tolerant-and-bounded — The ask module is fault-tolerant (always returns a string, catches LLM failures, falls back to raw FTS5 search) and execution-bounded (tool loop capped at 3 iterations), ensuring reliable bounded knowledge retrieval regardless of LLM availability.
  • ask-sources-db-failure-silently-degrades — If the `sources_db` SQLite file is missing or corrupt, `_search_source_chunks` catches `OperationalError`/`DatabaseError` and returns empty string, degrading to belief-only mode without user-visible errors.

Details