The shim's last user message now cuts the image_url parts along with the text: an inline data URI with a parseable mime rides to the turn as an image block, a remote http(s) url and an unknown mime are skipped, and the messages route's image budget applies. Text-only requests are unchanged.