fix(openai_compat): preserve reasoning_content in serializeMessages

The serializeMessages() function was not preserving the reasoning_content
field when serializing messages for vision API calls. This caused the
TestProviderChat_PreservesReasoningContentInHistory test to fail.

This fix ensures reasoning_content is included in both text-only messages
and vision messages with media attachments.

Co-authored-by: Zachary Guerrero <zack.grrr@gmail.com>
This commit is contained in:
shikihane
2026-03-02 17:38:08 +08:00
parent 6997edc82e
commit a4e5c391bd
+9 -2
View File
@@ -209,6 +209,9 @@ func serializeMessages(messages []Message) []map[string]interface{} {
if len(m.ToolCalls) > 0 {
msg["tool_calls"] = m.ToolCalls
}
if m.ReasoningContent != "" {
msg["reasoning_content"] = m.ReasoningContent
}
result = append(result, msg)
continue
}
@@ -228,10 +231,14 @@ func serializeMessages(messages []Message) []map[string]interface{} {
},
})
}
result = append(result, map[string]interface{}{
msg := map[string]interface{}{
"role": m.Role,
"content": parts,
})
}
if m.ReasoningContent != "" {
msg["reasoning_content"] = m.ReasoningContent
}
result = append(result, msg)
}
return result
}