From 13d1804e66a80f62b94cca84a8ced8e0c62e9610 Mon Sep 17 00:00:00 2001 From: Supra4E8C Date: Sat, 13 Dec 2025 16:30:20 +0800 Subject: [PATCH] feat: improve Settings page retry config UI and enhance excludedModels API support - Reorganize retry settings into separate Card for better visual hierarchy - Move retry update button inline with input field via rightElement - Add excluded-models serialization in provider key configuration - Add excluded-models normalization support in API transformers with fallback parsing --- src/pages/SettingsPage.tsx | 11 ++++++++--- src/services/api/providers.ts | 3 +++ src/services/api/transformers.ts | 4 ++++ 3 files changed, 15 insertions(+), 3 deletions(-) diff --git a/src/pages/SettingsPage.tsx b/src/pages/SettingsPage.tsx index c2a5460..606e8d1 100644 --- a/src/pages/SettingsPage.tsx +++ b/src/pages/SettingsPage.tsx @@ -259,16 +259,21 @@ export function SettingsPage() { {t('basic_settings.proxy_update')} + + + setRetryValue(Number(e.target.value))} disabled={disableControls || loading} + rightElement={ + + } /> - diff --git a/src/services/api/providers.ts b/src/services/api/providers.ts index 4a66753..f2c11b4 100644 --- a/src/services/api/providers.ts +++ b/src/services/api/providers.ts @@ -54,6 +54,9 @@ const serializeProviderKey = (config: ProviderKeyConfig) => { if (headers) payload.headers = headers; const models = serializeModelAliases(config.models); if (models && models.length) payload.models = models; + if (config.excludedModels && config.excludedModels.length) { + payload['excluded-models'] = config.excludedModels; + } return payload; }; diff --git a/src/services/api/transformers.ts b/src/services/api/transformers.ts index 2b20cff..5a26692 100644 --- a/src/services/api/transformers.ts +++ b/src/services/api/transformers.ts @@ -87,6 +87,10 @@ const normalizeProviderKeyConfig = (item: any): ProviderKeyConfig | null => { if (headers) config.headers = headers; const models = normalizeModelAliases(item.models); if (models.length) config.models = models; + const excludedModels = normalizeExcludedModels( + item['excluded-models'] ?? item.excludedModels ?? item['excluded_models'] ?? item.excluded_models + ); + if (excludedModels.length) config.excludedModels = excludedModels; return config; };