-
Stefy Lanza (nextime / spora ) authored
Two independent fixes surfaced while diagnosing kilo-spora vision requests returning 503 and (once enabled) risking stale image answers. handlers.py: _raise_if_provider_unavailable no longer rejects a direct, provider-named request just because the provider is manually disabled. The dashboard disable toggle is meant to remove a provider from rotation/autoselect (those scans use is_provider_disabled_cheap) — it must not take the provider offline across the whole API. Direct calls still 503 on genuine unavailability (failure cooldown or usage-limit cooldown). cache.py: _generate_cache_key hashed only the text parts of multimodal messages, dropping image_url/video_url/audio_url. A caller that sends a fixed prompt with a varying image (e.g. the real-estate OUTDOOR/INDOOR classifier) collapsed every image to one cache key, so the first image's answer was served for all subsequent images. Fold each media reference into the message hash so different attachments produce different keys. Co-Authored-By:Claude Opus 4.8 (1M context) <noreply@anthropic.com>
e6616376