rowboat/apps/x/apps
Ramnique Singh 3b447d07b9 refactor(x): models.dev — single startup writer, cache-only consumers
Previously catalog readers (listOnboardingModels, getChatModelIds)
fetched models.dev inline on a 24h TTL, while the reasoning-capability
paths read the cache only — so a signed-in install could run forever
with no cache and the effort chip never appeared, and catalog calls
could stall on a slow third-party fetch.

Now main calls startModelsDevRefresh() once at boot: refresh if the
cache is missing or older than 24h, then every 24h while running, with
a 10s fetch timeout, errors logged and swallowed (existing cache stays
in use). Every consumer reads the on-disk cache only. Catalog-shaped
readers (models:list, gateway annotation) await the warm-up's first
attempt so a fresh install's first list sees the fetched data; the
turn-start capability gate never waits. A missing cache is an empty
catalog, not an error — chat is unaffected either way.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-10 10:38:33 +05:30
..
main refactor(x): models.dev — single startup writer, cache-only consumers 2026-07-10 10:38:33 +05:30
preload Browser2 (#495) 2026-04-15 13:21:09 +05:30
renderer feat(x): reasoning-effort control in the chat composer 2026-07-10 10:11:25 +05:30