diff --git a/web/backend/api/models.go b/web/backend/api/models.go index 48babd8cd..f4203935b 100644 --- a/web/backend/api/models.go +++ b/web/backend/api/models.go @@ -202,8 +202,13 @@ func (h *Handler) handleUpdateModel(w http.ResponseWriter, r *http.Request) { } else { mc.ModelConfig.SetAPIKey(mc.APIKey) } + // Preserve existing ExtraBody when omitted (nil), but clear it when + // the frontend sends an empty object {} to indicate the field should + // be removed. if mc.ExtraBody == nil { mc.ExtraBody = cfg.ModelList[idx].ExtraBody + } else if len(mc.ExtraBody) == 0 { + mc.ExtraBody = nil } cfg.ModelList[idx] = &mc.ModelConfig diff --git a/web/frontend/src/components/models/edit-model-sheet.tsx b/web/frontend/src/components/models/edit-model-sheet.tsx index aa61102ff..13678f03d 100644 --- a/web/frontend/src/components/models/edit-model-sheet.tsx +++ b/web/frontend/src/components/models/edit-model-sheet.tsx @@ -117,7 +117,7 @@ export function EditModelSheet({ thinking_level: form.thinkingLevel || undefined, extra_body: form.extraBody.trim() ? JSON.parse(form.extraBody.trim()) - : undefined, + : {}, }) if (setAsDefault && !model.is_default) { await setDefaultModel(model.model_name)