Commit Graph

2 Commits

Author SHA1 Message Date
Fusion Agent
b17c6de32b FN-019: recognize custom providers and refresh model catalogs
Add support for custom AI providers and refresh the built-in model catalog from settings.

- Recognize custom provider configuration in provider status and onboarding readiness.
- Add bounded model-catalog refresh endpoints and settings controls with localized copy.
- Cover provider discovery, cache refresh, routes, and authentication UI behavior with tests.

Files changed:
 .changeset/fn-019-provider-catalog.md              |  7 ++
 docs/dashboard-guide.md                            |  6 ++
 .../dashboard/app/__tests__/api-models.test.ts     | 29 +++++++++
 .../dashboard/app/api/settings/provider-status.ts  | 15 +++++
 ...thenticationSection.modelsCacheRefresh.test.tsx | 46 +++++++++++++-
 .../__tests__/AuthenticationSection.test.tsx       | 10 +++
 .../settings/sections/AuthenticationSection.css    | 20 ++++++
 .../settings/sections/AuthenticationSection.tsx    | 37 ++++++++++-
 .../app/hooks/__tests__/useAuthOnboarding.test.ts  | 29 +++++++++
 .../app/hooks/__tests__/useSetupReadiness.test.ts  | 14 ++++
 packages/dashboard/app/hooks/useAuthOnboarding.ts  |  9 +--
 packages/dashboard/app/hooks/useSetupReadiness.ts  |  8 ++-
 .../register-model-routes-refresh-bounding.test.ts | 74 ++++++++++++++++++++++
 .../dashboard/src/__tests__/routes-auth.test.ts    | 18 ++++++
 .../dashboard/src/routes/register-auth-routes.ts   | 17 ++++-
 .../dashboard/src/routes/register-model-routes.ts  | 22 ++++++-
 packages/i18n/locales/en/app.json                  |  6 ++
 packages/i18n/locales/es/app.json                  |  6 ++
 packages/i18n/locales/fr/app.json                  |  6 ++
 packages/i18n/locales/ko/app.json                  |  6 ++
 packages/i18n/locales/pt-BR/app.json               |  6 ++
 packages/i18n/locales/zh-CN/app.json               |  6 ++
 packages/i18n/locales/zh-TW/app.json               |  6 ++
 packages/i18n/src/resources.d.ts                   |  6 ++
 24 files changed, 397 insertions(+), 12 deletions(-)

Fusion-Task-Id: FN-019

Fusion-Task-Lineage: 1e9daf0e-8aa8-4205-9fc7-686fbdd5bd35

Co-authored-by: Fusion <noreply@runfusion.ai>
2026-08-20 03:55:38 +00:00
gsxdsm
6cff782308 FN-7710: refresh model caches so Grok/Cursor CLI models appear without reopening Settings
Adds a shared single-flight cache refresh so newly enabled Grok/Cursor CLI providers show their models in pickers immediately, instead of requiring a Settings reopen.

- useModelsCache now exposes a shared refreshModelsCache() that clears the SWR MODELS cache key and notifies subscribers
- AuthenticationSection calls refreshModelsCache() after toggling cursor-cli/grok-cli/claude-cli/llama-cpp providers
- Server-side cursor/grok model-cache lookups use a short negative-TTL so transient cold-start empty results self-heal instead of sticking
- Adds regression tests covering the cache refresh flow, hook behavior, and cursor/grok cache TTL self-healing
- Adds changeset (patch) documenting the fix

Files changed:
 .../fn-7710-cli-provider-model-cache-refresh.md    |   7 +
 ...thenticationSection.modelsCacheRefresh.test.tsx | 137 ++++++++++++++++++
 .../settings/sections/AuthenticationSection.tsx    |  32 +++--
 .../app/hooks/__tests__/useModelsCache.test.ts     | 159 ++++++++++++++++++++-
 packages/dashboard/app/hooks/useModelsCache.ts     |  72 +++++++++-
 .../src/__tests__/cursor-model-cache.test.ts       |  34 +++++
 .../src/__tests__/grok-model-cache.test.ts         |  33 +++++
 packages/dashboard/src/cursor-model-cache.ts       |  23 ++-
 packages/dashboard/src/grok-model-cache.ts         |  23 ++-
 9 files changed, 500 insertions(+), 20 deletions(-)

Fusion-Task-Id: FN-7710

Fusion-Task-Lineage: ebac46ba-5b3e-41f2-acc4-26f9139c0f71

Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai>
2026-07-09 19:58:03 -07:00