Fix OpenRouter models hidden when direct profile owns shared slot (#292)
When a direct OpenAI-compatible profile (e.g. NVIDIA NIM) is the startup default, it occupies the single shared OpenRouter/OpenAI-compatible runtime slot. Standard OpenRouter is then never the active provider, so its 'openrouter' namespace model catalog was never fetched and models like openrouter/owl-alpha never appeared in /model. Add maybe_schedule_standard_openrouter_catalog_refresh, invoked from the model picker when a direct profile owns the slot. It refreshes the standard OpenRouter catalog into the 'openrouter' cache namespace when that cache is missing or stale (24h TTL), so models self-heal on the next picker render and after upgrades. Internally rate-limited and a no-op when fresh. Adds regression tests for the freshness gate and missing-key skip.
J
jeremy committed
62bb1dee93fbc149076fba1252ffe47742026e7c
Parent: 983fda3