Provider status: tell rejected API keys apart from unreachable hosts

A 404/405 on the model list counts as reachable (endpoint without a list).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
Richard ZinkandClaude Opus 5.5 committed 2026-11-09 05:30:12 +01:00
1 parent 428e2df40a
commit 873447ed17
4 files changed
+17 -5

No files matched your search

+2 -2
View File
@@ -372,7 +372,7 @@ function cleanModel(m: ModelRow) {
return out;
}
type ProviderStatus = { up: boolean; error?: string; latency_ms: number; checked_at: number };
type ProviderStatus = { up: boolean; state?: "ok" | "auth" | "down"; error?: string; latency_ms: number; checked_at: number };
function ProviderEditor({ name, p, reload, status }: { name: string; p: Json; reload: () => void; status?: ProviderStatus }) {
const t = useT();
@@ -445,7 +445,7 @@ function ProviderEditor({ name, p, reload, status }: { name: string; p: Json; re
title={(status.error ?? "") + " · " + new Date(status.checked_at).toLocaleTimeString()}
>
<Icon name={status.up ? "check" : "warning"} size={12} />
{status.up ? t("settings.providerUp", { ms: status.latency_ms }) : t("settings.providerDown")}
{status.up ? t("settings.providerUp", { ms: status.latency_ms }) : status.state === "auth" ? t("settings.providerAuth") : t("settings.providerDown")}
</span>
)}
<span className="spacer" />
+1
View File
@@ -616,6 +616,7 @@ export const de: Messages = {
"settings.providerName": "Name (optional)",
"settings.providerUp": "erreichbar · {ms} ms",
"settings.providerDown": "nicht erreichbar",
"settings.providerAuth": "API-Key fehlt oder ungültig",
"settings.providerCheck": "Provider prüfen",
"settings.providerChecking": "Prüfe…",
"settings.reloadProviders": "Provider & Modelle neu laden",
+1
View File
@@ -615,6 +615,7 @@ export const en = {
"settings.providerName": "Name (optional)",
"settings.providerUp": "reachable · {ms} ms",
"settings.providerDown": "unreachable",
"settings.providerAuth": "API key missing or rejected",
"settings.providerCheck": "Check providers",
"settings.providerChecking": "Checking…",
"settings.reloadProviders": "Reload providers & models",