From fa95f32db76499e80f2f4fe9fdaf59237e1427a8 Mon Sep 17 00:00:00 2001 From: Max Date: Mon, 17 Nov 2025 06:22:18 +0800 Subject: [PATCH] Enhance message handling in OpenAI adapter to skip non-delta "done" messages - Added logic to ignore "done" messages that are not delta updates, ensuring that final confirmation messages are not sent to OpenAI clients, which rely on finish_reason instead. --- agent/output/adapters/openai/adapter.go | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/agent/output/adapters/openai/adapter.go b/agent/output/adapters/openai/adapter.go index 0a8e2613..de6747d3 100644 --- a/agent/output/adapters/openai/adapter.go +++ b/agent/output/adapters/openai/adapter.go @@ -68,6 +68,13 @@ func (a *Adapter) Adapt(msg *message.Message) ([]interface{}, error) { return []interface{}{}, nil // Return empty array, nothing to send } + // Skip "done" messages that are not delta updates + // These are final confirmation messages for CUI clients + // OpenAI clients don't need them - they use finish_reason instead + if msg.Done && !msg.Delta { + return []interface{}{}, nil // Return empty array, nothing to send + } + // Get converter for this message type converter, exists := a.registry.GetConverter(msg.Type) if !exists {