fix: strip only msg_* thought_signature (#805) (thanks @marcmarg)

This commit is contained in:
Peter Steinberger
2026-01-13 04:13:24 +00:00
parent c4e8b60d2c
commit 2a9ef806a0
2 changed files with 6 additions and 4 deletions

View File

@@ -28,6 +28,7 @@
- Auto-reply: re-evaluate reasoning tag enforcement on fallback providers to prevent leaked reasoning. (#810 — thanks @mcinteerj)
- Tools/Gemini: drop null-only union variants while cleaning tool schemas to avoid Cloud Code Assist schema errors. (#782 — thanks @AbhisekBasu1)
- Connections UI: polish multi-account account cards in the Connections view. (#816 — thanks @steipete)
- Gemini: strip Claude `msg_*` thought_signature fields from session history to avoid base64 decode errors. (#805 — thanks @marcmarg)
## 2026.1.12-3

View File

@@ -9,12 +9,13 @@ import {
isCloudCodeAssistFormatError,
isCompactionFailureError,
isContextOverflowError,
isMessagingToolDuplicate,
isFailoverErrorMessage,
normalizeTextForComparison,
sanitizeGoogleTurnOrdering,
sanitizeSessionMessagesImages,
sanitizeToolCallId,
stripThoughtSignatures,
validateGeminiTurns,
} from "./pi-embedded-helpers.js";
import {
DEFAULT_AGENTS_FILENAME,
@@ -591,9 +592,9 @@ describe("sanitizeSessionMessagesImages - thought_signature stripping", () => {
const content = (out[0] as { content?: unknown[] }).content;
expect(content).toHaveLength(2);
expect("thought_signature" in ((content?.[0] ?? {}) as object)).toBe(false);
expect((content?.[1] as { thought_signature?: unknown })?.thought_signature).toBe(
"AQID",
);
expect(
(content?.[1] as { thought_signature?: unknown })?.thought_signature,
).toBe("AQID");
});
});