cb8027afed
_strip_images_from_messages() deleted any non-tool message whose content became empty after image removal. An assistant message whose content was entirely images but which carried tool_calls was therefore dropped, orphaning its paired tool responses — providers reject the next request with unmatched tool_call_id errors (HTTP 400). Replace such messages with the plaintext placeholder instead, exactly like tool-role messages. Adds a regression test covering the assistant + tool_calls + image-only-content case. Closes #40463