Files
OmniRoute/tests
Markus Hartung e229d597f2 fix(sse): keep each functionCall's own thoughtSignature on parallel Gemini tool-call turns (#11510)
claude-to-gemini.ts and openai-to-gemini.ts only re-attached a resolved thoughtSignature to the FIRST functionCall of an assistant message, silently dropping it for every subsequent tool_use/tool_calls entry in the same parallel (multi tool-call) turn -- even when a real, previously-stored signature existed for it. Gemini 3.x then rejected the request with HTTP 400 'Function call is missing a thought_signature in functionCall parts'.

Each functionCall part now carries its own resolved thoughtSignature unconditionally, instead of only the first one in the message.

Regression tests: tests/unit/issue-11510-parallel-tool-thought-signature.test.ts (claude-to-gemini) and tests/unit/issue-11510-parallel-tool-thought-signature-openai.test.ts (openai-to-gemini), both proven RED against unfixed code and GREEN after the fix.
2026-08-26 13:15:02 -03:00
..