- Adds abstract aclose() and shared load_prompt() helper to BaseVLMClient.
- OllamaClient now logs latency, tokens, and prompt hash per call.
- Retries cover HTTP 429 and 5xx in addition to network/timeout errors.
- Cache key now includes response_format and max_tokens.
- Warns when JSON schema generation falls back to plain 'json' format.
- Adds FakeVLMClient.aclose() and cache unit tests.