From e3f1fd9b6346e3148634f01563829f856fe87f9a Mon Sep 17 00:00:00 2001 From: Ethan0x0000 <3352979663@qq.com> Date: Sat, 14 Mar 2026 13:12:17 +0800 Subject: [PATCH] fix: handle strings.Builder write errors in assistant parsing --- .../apicompat/chatcompletions_to_responses.go | 32 +++++++++++++++---- 1 file changed, 25 insertions(+), 7 deletions(-) diff --git a/backend/internal/pkg/apicompat/chatcompletions_to_responses.go b/backend/internal/pkg/apicompat/chatcompletions_to_responses.go index e0b1f986..c4a9e773 100644 --- a/backend/internal/pkg/apicompat/chatcompletions_to_responses.go +++ b/backend/internal/pkg/apicompat/chatcompletions_to_responses.go @@ -232,6 +232,10 @@ func parseAssistantContent(raw json.RawMessage) (string, error) { } var b strings.Builder + write := func(v string) error { + _, err := b.WriteString(v) + return err + } for _, p := range parts { typ, _ := p["type"].(string) text, _ := p["text"].(string) @@ -240,17 +244,31 @@ func parseAssistantContent(raw json.RawMessage) (string, error) { switch typ { case "thinking", "reasoning": if thinking != "" { - b.WriteString("") - b.WriteString(thinking) - b.WriteString("") + if err := write(""); err != nil { + return "", err + } + if err := write(thinking); err != nil { + return "", err + } + if err := write(""); err != nil { + return "", err + } } else if text != "" { - b.WriteString("") - b.WriteString(text) - b.WriteString("") + if err := write(""); err != nil { + return "", err + } + if err := write(text); err != nil { + return "", err + } + if err := write(""); err != nil { + return "", err + } } default: if text != "" { - b.WriteString(text) + if err := write(text); err != nil { + return "", err + } } } }