fix(admin): AI provider and model not persisting after save

The model select fields used provider-specific names (AI_MODEL_TAGS_OLLAMA,
AI_MODEL_TAGS_OPENAI, etc.) but handleSaveAI read from non-existent
formData keys (AI_MODEL_TAGS, AI_MODEL_EMBEDDING). This caused model
values to be silently dropped on save, making the provider appear to
revert. Now reads from the correct provider-specific field names.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
Sepehr Ramezani
2026-03-29 09:54:49 +02:00
parent 789ccfd081
commit cb613b86c1

View File

@@ -133,7 +133,7 @@ export function AdminSettingsForm({ config }: { config: Record<string, string> }
if (!tagsProv) throw new Error(t('admin.ai.providerTagsRequired')) if (!tagsProv) throw new Error(t('admin.ai.providerTagsRequired'))
data.AI_PROVIDER_TAGS = tagsProv data.AI_PROVIDER_TAGS = tagsProv
const tagsModel = formData.get('AI_MODEL_TAGS') as string const tagsModel = formData.get(`AI_MODEL_TAGS_${tagsProv.toUpperCase()}`) as string
if (tagsModel) data.AI_MODEL_TAGS = tagsModel if (tagsModel) data.AI_MODEL_TAGS = tagsModel
if (tagsProv === 'ollama') { if (tagsProv === 'ollama') {
@@ -153,7 +153,7 @@ export function AdminSettingsForm({ config }: { config: Record<string, string> }
if (!embedProv) throw new Error(t('admin.ai.providerEmbeddingRequired')) if (!embedProv) throw new Error(t('admin.ai.providerEmbeddingRequired'))
data.AI_PROVIDER_EMBEDDING = embedProv data.AI_PROVIDER_EMBEDDING = embedProv
const embedModel = formData.get('AI_MODEL_EMBEDDING') as string const embedModel = formData.get(`AI_MODEL_EMBEDDING_${embedProv.toUpperCase()}`) as string
if (embedModel) data.AI_MODEL_EMBEDDING = embedModel if (embedModel) data.AI_MODEL_EMBEDDING = embedModel
if (embedProv === 'ollama') { if (embedProv === 'ollama') {
@@ -179,6 +179,8 @@ export function AdminSettingsForm({ config }: { config: Record<string, string> }
toast.success(t('admin.ai.updateSuccess')) toast.success(t('admin.ai.updateSuccess'))
setTagsProvider(tagsProv) setTagsProvider(tagsProv)
setEmbeddingsProvider(embedProv) setEmbeddingsProvider(embedProv)
if (tagsModel) setSelectedTagsModel(tagsModel)
if (embedModel) setSelectedEmbeddingModel(embedModel)
// Refresh models after save if Ollama is selected // Refresh models after save if Ollama is selected
if (tagsProv === 'ollama') { if (tagsProv === 'ollama') {