feat(models): active model health probe (on-demand reachability test)
Author: lfnovoCreated Jul 21, 2026Updated Sep 5, 2026
Labelsenhancementtracked-in-umbrella
Part of the Model & Provider Configuration umbrella #947 (Phase 1 — health primitive).
Goal
An active model health probe: let a user test whether a configured model/credential is reachable and usable, on demand.
Design (from #947 §5)
This is the probe primitive only. Two things it is explicitly not:
- Not the passive error taxonomy — that (
unreachable/unauthorized/rate_limited/context_exceeded/…) is blocked on esperanto#227 (normalized exception hierarchy). We consume that upstream hierarchy when it lands rather than hand-rolling a string-matching classifier. - Not the resilience behaviors — fallback (#1156), picker prune (#1157), threshold warning (#1155) consume the probe/taxonomy but live in their own cards.
Implementation pointers
- Reuse the existing connection-test path (
connection_tester) that already backsModelTestResultDialog.tsx. - Surface an on-demand "Test" affordance per model (the credential-level test already exists; extend/confirm it covers a chosen model).
- Classify only what esperanto already types today:
EsperantoError,ProviderCapabilityError. Leave richer categories for the #227 follow-up.
Acceptance
- A user can run an on-demand health/reachability test for a model and see a clear pass/fail result.
- Failures surface a clean message (using the currently-typed esperanto errors), not a raw stacktrace.
- Follow-up noted: richer passive classification tracked against esperanto#227.
Source: lfnovo/open-notebook