问题: 在非 passThrough 模式下,客户端发送的 reasoning_content: "" 经过 Go struct 反序列化再序列化后,因 string + omitempty 无法区分空串和 字段缺失,导致空的思考内容被静默丢弃。 根因: dto.Message.ReasoningContent 和 Message.Reasoning 使用 string(非指针) 加 omitempty,违反 AGENTS.md Rule 6(可选标量字段必须用指针类型)。 修复: 1. Message.ReasoningContent/Reasoning 类型从 string 改为 *string - nil = 字段缺失 → JSON 省略 - &"" = 显式空串 → JSON 保留 reasoning_content: "" 2. 新增 Message.GetReasoningContent() 辅助方法 3. 更新所有读写处:relay-openai, relay-claude, relay-gemini, ollama 4. 新增测试覆盖空串保留、字段省略、getter 回退逻辑
| Name |
Last commit
|
Last Update |
|---|---|---|
| .. | ||
| audio.go | Loading commit data... | |
| channel_settings.go | Loading commit data... | |
| claude.go | Loading commit data... | |
| embedding.go | Loading commit data... | |
| error.go | Loading commit data... | |
| gemini.go | Loading commit data... | |
| gemini_generation_config_test.go | Loading commit data... | |
| gemini_isstream_test.go | Loading commit data... | |
| message_reasoning_test.go | Loading commit data... | |
| midjourney.go | Loading commit data... | |
| notify.go | Loading commit data... | |
| openai_compaction.go | Loading commit data... | |
| openai_image.go | Loading commit data... | |
| openai_request.go | Loading commit data... | |
| openai_request_zero_value_test.go | Loading commit data... | |
| openai_response.go | Loading commit data... | |
| openai_responses_compaction_request.go | Loading commit data... | |
| openai_video.go | Loading commit data... | |
| playground.go | Loading commit data... | |
| pricing.go | Loading commit data... | |
| ratio_sync.go | Loading commit data... | |
| realtime.go | Loading commit data... | |
| request_common.go | Loading commit data... | |
| rerank.go | Loading commit data... | |
| sensitive.go | Loading commit data... | |
| suno.go | Loading commit data... | |
| task.go | Loading commit data... | |
| user_settings.go | Loading commit data... | |
| values.go | Loading commit data... | |
| video.go | Loading commit data... |