From a05a815f99a2e2748dfac93b3c1fe85cd8345e1e Mon Sep 17 00:00:00 2001 From: CaIon Date: Thu, 13 Nov 2025 16:49:40 +0800 Subject: [PATCH] fix(claude): Prevent duplicate header values in WriteHeaders method --- setting/model_setting/claude.go | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/setting/model_setting/claude.go b/setting/model_setting/claude.go index 1be0e3e4..aa010c07 100644 --- a/setting/model_setting/claude.go +++ b/setting/model_setting/claude.go @@ -50,9 +50,18 @@ func GetClaudeSettings() *ClaudeSettings { func (c *ClaudeSettings) WriteHeaders(originModel string, httpHeader *http.Header) { if headers, ok := c.HeadersSettings[originModel]; ok { for headerKey, headerValues := range headers { - httpHeader.Del(headerKey) + // get existing values for this header key + existingValues := httpHeader.Values(headerKey) + existingValuesMap := make(map[string]bool) + for _, v := range existingValues { + existingValuesMap[v] = true + } + + // add only values that don't already exist for _, headerValue := range headerValues { - httpHeader.Add(headerKey, headerValue) + if !existingValuesMap[headerValue] { + httpHeader.Add(headerKey, headerValue) + } } } }