From f9e4b6cc36ee9b906a4187845187172a32ec87ad Mon Sep 17 00:00:00 2001 From: uiyzzi Date: Wed, 25 Mar 2026 10:46:40 +0800 Subject: [PATCH] Handle ExtraBody clearing when frontend sends empty object The backend now interprets an empty object sent from the frontend as a signal to clear the ExtraBody field, while nil/undefined preserves the existing value. Frontend changed to send {} instead of undefined when the field is empty. --- web/backend/api/models.go | 5 +++++ web/frontend/src/components/models/edit-model-sheet.tsx | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) 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)