LlamaCppProvider.list_models() caught every exception and returned [], indistinguishable from "no models installed". Fixed _get_json to raise on HTTP error status (matching _post_json's existing behavior — its docstring already claimed this), and list_models() to distinguish OSError (genuinely unreachable, degrades to []) from RuntimeError (server responded with an error — surfaced with a router-mode hint). Found by beacon-reviewer ahead of PR open. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_0132ojafeazQ3ephcBejEWFj