SIGN IN SIGN UP

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