From 2bf53c2cb673d49dd0425626b9355194287e40a2 Mon Sep 17 00:00:00 2001 From: Varun Chopra <113368492+VarunChopra11@users.noreply.github.com> Date: Sun, 8 Mar 2026 12:41:14 +0000 Subject: [PATCH] transcript-policy: don't preserve thinking signatures for kimi-coding (#39798) --- src/agents/transcript-policy.test.ts | 9 +++++++++ src/agents/transcript-policy.ts | 3 ++- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/src/agents/transcript-policy.test.ts b/src/agents/transcript-policy.test.ts index 15c03250e..2e6c673f2 100644 --- a/src/agents/transcript-policy.test.ts +++ b/src/agents/transcript-policy.test.ts @@ -122,6 +122,15 @@ describe("resolveTranscriptPolicy", () => { expect(policy.preserveSignatures).toBe(false); }); + it("does not preserve signatures for kimi-coding provider (#39798)", () => { + const policy = resolveTranscriptPolicy({ + provider: "kimi-coding", + modelId: "k2p5", + modelApi: "anthropic-messages", + }); + expect(policy.preserveSignatures).toBe(false); + }); + it("enables turn-ordering and assistant-merge for strict OpenAI-compatible providers (#38962)", () => { const policy = resolveTranscriptPolicy({ provider: "vllm", diff --git a/src/agents/transcript-policy.ts b/src/agents/transcript-policy.ts index 4296f6239..264eb9410 100644 --- a/src/agents/transcript-policy.ts +++ b/src/agents/transcript-policy.ts @@ -123,7 +123,8 @@ export function resolveTranscriptPolicy(params: { (!isOpenAi && sanitizeToolCallIds) || requiresOpenAiCompatibleToolIdSanitization, toolCallIdMode, repairToolUseResultPairing, - preserveSignatures: isAnthropic, + // kimi-coding uses anthropic-messages API but cannot handle re-sent thinkingSignature blobs (#39798) + preserveSignatures: isAnthropic && provider !== "kimi-coding", sanitizeThoughtSignatures: isOpenAi ? undefined : sanitizeThoughtSignatures, sanitizeThinkingSignatures: false, dropThinkingBlocks,