diff --git a/.changeset/ready-taxis-hide.md b/.changeset/ready-taxis-hide.md new file mode 100644 index 00000000000..eded0dc805e --- /dev/null +++ b/.changeset/ready-taxis-hide.md @@ -0,0 +1,5 @@ +--- +"kilo-code": patch +--- + +Fix duplicate text output when using OpenAI-compatible providers with streaming disabled. diff --git a/src/api/providers/__tests__/openai.spec.ts b/src/api/providers/__tests__/openai.spec.ts index c67e2e086af..644457c57e0 100644 --- a/src/api/providers/__tests__/openai.spec.ts +++ b/src/api/providers/__tests__/openai.spec.ts @@ -148,11 +148,11 @@ describe("OpenAiHandler", () => { } expect(chunks.length).toBeGreaterThan(0) - const textChunk = chunks.find((chunk) => chunk.type === "text") + const textChunks = chunks.filter((chunk) => chunk.type === "text") const usageChunk = chunks.find((chunk) => chunk.type === "usage") - expect(textChunk).toBeDefined() - expect(textChunk?.text).toBe("Test response") + expect(textChunks).toHaveLength(1) + expect(textChunks[0]?.text).toBe("Test response") expect(usageChunk).toBeDefined() expect(usageChunk?.inputTokens).toBe(10) expect(usageChunk?.outputTokens).toBe(5) diff --git a/src/api/providers/openai.ts b/src/api/providers/openai.ts index 8b36bce9d25..db36171d79b 100644 --- a/src/api/providers/openai.ts +++ b/src/api/providers/openai.ts @@ -291,11 +291,6 @@ export class OpenAiHandler extends BaseProvider implements SingleCompletionHandl } } - yield { - type: "text", - text: message?.content || "", - } - yield this.processUsageMetrics(response.usage, modelInfo) } }