Nate George
e8c3ac2f5c
fix: strip extra_content from tool_calls for strict APIs (Fireworks, Mistral)
...
Fireworks/Mistral reject HTTP 400 'Extra inputs are not permitted, field:
messages[N].tool_calls[M].extra_content' on any session whose history
contains prior Gemini tool calls. Gemini 3 thinking models attach
extra_content (thought_signature) to tool_calls; it survived to the wire
because the sanitize paths only stripped call_id/response_item_id.
Strip extra_content from the outgoing wire copy in both sanitize paths
(ChatCompletionsTransport.convert_messages + _sanitize_tool_calls_for_strict_api),
but gate it on the target model: keep extra_content for Gemini-family
targets (the thought_signature MUST be replayed or Gemini 400s), strip it
for everyone else — including non-Gemini models that inherit a stale Gemini
signature earlier in a mixed-provider session. Native Gemini is unaffected
(GeminiNativeClient bypasses these paths).
Original stored history is never mutated (only the per-call copy).
Fixes #17986 .
2026-06-03 16:42:52 -07:00
..
2026-04-07 17:19:07 -07:00
2026-05-19 17:27:24 -07:00
2026-05-29 19:21:15 -07:00
2026-05-28 22:26:25 -07:00
2026-05-28 22:26:25 -07:00
2026-05-28 07:28:24 -07:00
2026-05-24 15:14:13 -07:00
2026-05-04 05:06:33 -07:00
2026-05-12 20:46:04 -07:00
2026-04-19 22:43:09 -07:00
2026-05-17 02:29:41 -07:00
2026-05-28 22:26:25 -07:00
2026-05-28 22:26:25 -07:00
2026-05-21 12:49:21 +05:30
2026-04-24 03:10:19 -07:00
2026-05-28 22:26:25 -07:00
2026-05-27 22:14:53 -07:00
2026-05-28 22:26:25 -07:00
2026-05-14 07:55:09 -07:00
2026-05-09 21:06:19 -07:00
2026-05-28 22:26:25 -07:00
2026-05-27 01:52:34 -07:00
2026-05-31 17:46:56 -05:00
2026-05-09 12:28:42 -07:00
2026-05-28 22:26:25 -07:00
2026-05-28 22:26:25 -07:00
2026-05-28 22:26:25 -07:00
2026-05-19 17:27:17 -07:00
2026-05-28 22:26:25 -07:00
2026-05-28 22:26:25 -07:00
2026-04-07 17:19:07 -07:00
2026-05-28 22:26:25 -07:00
2026-05-20 11:44:10 -07:00
2026-04-27 08:35:50 -07:00
2026-04-17 12:32:03 -07:00
2026-04-24 03:04:42 -07:00
2026-05-28 22:26:25 -07:00
2026-05-28 22:26:25 -07:00
2026-05-28 03:21:00 -07:00
2026-04-30 11:18:39 -07:00
2026-05-29 19:23:05 -07:00
2026-05-20 11:44:10 -07:00
2026-05-28 22:26:25 -07:00
2026-05-28 22:26:25 -07:00
2026-05-30 23:05:23 -07:00
2026-05-11 07:37:22 -07:00
2026-05-31 00:12:09 -07:00
2026-05-02 02:09:46 -07:00
2026-05-28 22:26:25 -07:00
2026-05-28 22:26:25 -07:00
2026-05-28 22:26:25 -07:00
2026-05-28 22:26:25 -07:00
2026-05-27 11:30:55 -07:00
2026-05-05 05:00:05 -07:00
2026-05-28 22:26:25 -07:00
2026-05-10 22:28:01 -07:00
2026-05-16 22:55:49 -07:00
2026-05-27 10:49:33 -07:00
2026-05-29 02:16:43 +05:30
2026-05-07 08:35:10 -07:00
2026-05-28 22:26:25 -07:00
2026-05-25 01:47:55 -07:00
2026-05-25 17:43:10 +05:30
2026-04-10 03:44:43 -07:00
2026-05-28 00:28:42 -07:00
2026-05-31 17:46:56 -05:00
2026-05-27 00:43:32 -07:00
2026-05-09 12:48:19 -07:00
2026-06-03 16:42:52 -07:00
2026-05-28 22:26:25 -07:00
2026-04-07 17:19:07 -07:00
2026-05-31 06:14:32 -07:00
2026-04-24 05:32:08 -07:00
2026-05-28 22:26:25 -07:00
2026-05-09 22:51:25 -07:00
2026-05-28 23:29:59 -07:00
2026-04-22 18:34:25 -07:00
2026-06-03 06:36:46 -07:00
2026-04-16 16:36:33 -07:00
2026-05-12 00:16:45 +05:30
2026-05-28 22:26:25 -07:00
2026-05-28 22:26:25 -07:00
2026-05-28 22:26:25 -07:00
2026-05-28 22:26:25 -07:00
2026-04-25 09:51:39 -07:00
2026-05-28 22:26:25 -07:00
2026-05-31 17:46:56 -05:00
2026-05-28 22:26:25 -07:00
2026-05-28 22:26:25 -07:00
2026-05-13 17:32:22 -07:00
2026-04-24 05:35:43 -07:00
2026-05-27 05:43:20 -07:00
2026-04-28 03:50:51 -07:00
2026-05-28 22:26:25 -07:00
2026-05-09 14:36:58 -07:00
2026-05-28 22:26:25 -07:00
2026-05-19 17:27:24 -07:00
2026-05-24 07:38:24 -07:00
2026-05-29 03:44:49 -07:00
2026-05-19 20:49:11 +01:00
2026-05-29 19:23:05 -07:00
2026-04-15 15:03:28 -07:00
2026-05-28 22:26:25 -07:00