gsxdsm
5ce3a973e6
FN-8902: bound and cache model registry refreshes
Bound model-catalog refreshes so requests retain available models when providers stall.
- Add timeout-bounded, single-flight engine registry refreshes with fallback model retention.
- Cache refresh outcomes per registry and invalidate them after all credential mutations, including default-instance changes.
- Cover refresh cache and route behavior, and document the resilience contract.
Files changed:
.changeset/fn-8902-models-refresh-bounding.md | 7 +
docs/dashboard-guide.md | 6 +
.../__tests__/model-registry-refresh-cache.test.ts | 77 +++++++
.../register-model-routes-refresh-bounding.test.ts | 246 +++++++++++++++++++++
.../dashboard/src/model-registry-refresh-cache.ts | 153 +++++++++++++
packages/dashboard/src/routes.ts | 5 +
.../dashboard/src/routes/register-auth-routes.ts | 24 +-
.../dashboard/src/routes/register-model-routes.ts | 12 +-
.../src/__tests__/model-registry-refresh.test.ts | 33 +++
packages/engine/src/auth/model-registry-refresh.ts | 125 +++++++----
packages/engine/src/index.ts | 3 +
11 files changed, 642 insertions(+), 49 deletions(-)
Fusion-Task-Id: FN-8902
Fusion-Task-Lineage: 9f0eaf34-6d28-49aa-b065-274be14ea500
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai>
2026-08-11 19:00:44 -07:00
..
2026-08-11 19:00:44 -07:00
2026-08-11 05:45:36 -07:00
2026-08-11 19:00:44 -07:00
2026-08-03 00:20:53 -07:00
2026-08-03 00:20:53 -07:00
2026-08-03 00:20:53 -07:00
2026-08-07 21:43:28 -07:00
2026-08-10 12:01:25 -07:00
2026-08-03 00:20:53 -07:00
2026-08-11 15:01:52 -07:00
2026-08-11 17:53:40 -07:00
2026-08-03 00:20:53 -07:00
2026-08-03 00:20:53 -07:00
2026-08-10 03:31:50 -07:00
2026-08-03 00:20:53 -07:00
2026-08-10 17:50:27 -07:00
2026-08-11 05:45:36 -07:00
2026-08-11 15:20:19 -07:00
2026-08-11 17:53:40 -07:00
2026-08-11 12:34:47 -07:00
2026-08-03 00:20:53 -07:00
2026-08-03 00:20:53 -07:00
2026-08-09 04:50:30 -07:00
2026-08-03 00:20:53 -07:00
2026-08-03 00:20:53 -07:00
2026-08-09 15:23:59 -10:00
2026-08-11 05:45:36 -07:00
2026-07-20 10:13:57 -07:00
2026-08-10 15:19:43 -10:00
2026-08-11 10:36:26 -07:00
2026-08-03 00:20:53 -07:00
2026-08-03 00:20:53 -07:00
2026-08-11 11:29:30 -10:00
2026-08-03 00:20:53 -07:00
2026-08-03 00:20:53 -07:00
2026-08-11 05:45:36 -07:00
2026-08-07 20:27:04 -07:00
2026-08-11 13:34:27 -07:00
2026-08-09 19:39:39 -10:00
2026-08-03 00:20:53 -07:00
2026-08-11 05:45:36 -07:00
2026-08-11 05:45:36 -07:00
2026-07-30 21:50:37 -07:00
2026-08-01 08:20:29 -07:00
2026-08-04 10:52:12 -07:00
2026-08-02 17:06:38 -07:00
2026-08-09 15:46:09 -10:00
2026-08-11 19:00:44 -07:00
2026-07-23 10:31:22 -07:00
2026-08-11 04:57:14 -07:00
2026-08-07 01:36:34 -07:00
2026-07-25 20:46:07 -07:00
2026-08-04 19:31:06 -07:00
2026-08-04 00:20:08 -07:00
2026-07-30 00:00:46 -07:00
2026-08-04 00:20:08 -07:00
2026-08-09 04:50:30 -07:00
2026-08-11 05:45:36 -07:00
2026-07-27 17:37:20 -07:00
2026-07-24 23:57:49 -07:00
2026-08-10 20:32:26 -07:00
2026-08-03 00:20:53 -07:00
2026-08-11 11:29:30 -10:00
2026-08-10 16:44:19 -07:00
2026-07-30 23:13:34 -07:00
2026-08-11 04:57:14 -07:00
2026-08-03 00:20:53 -07:00
2026-07-27 13:30:13 -07:00
2026-08-09 17:04:55 -07:00