ask-never-raises-on-llm-failure

IN premise

`ask()` catches `TimeoutExpired` and `RuntimeError` from `_invoke_claude()` and returns raw FTS5 search results instead of propagating the exception — the function guarantees a string return.

Summary

When the LLM call fails during a search query, the system silently falls back to raw database search results rather than crashing. This means callers never need to handle exceptions from ask() — they always get a usable string back, though the quality of that string may be lower when the LLM is unavailable.

Dependents

These beliefs depend on this one:

Details

Sourceentries/2026/04/29/tests-test_ask.md