fix(chat): steer a draft with image attachments instead of refusing it
The composer's "insert into current turn" entry went dark the moment an image was staged, and a draft with file badges was silently rerouted to the queue. The whole steering chain narrowed the draft to a bare string (ConnectionCommand::Steer carried text, build_steer_params hardcoded a single text block), so those gates were the honest option. The wire never had that limit: the claude adapter's _session/steering handler feeds the prompt array through the same conversion as session/prompt, images included. Steer now carries the draft's PromptInputBlocks end to end. The composer sends the full block list whenever the draft holds more than plain text, with the display text as the recorded note; the backend maps the blocks with map_prompt_blocks, the exact session/prompt encoding, and re-hydrates uploaded file:// markers like /acp_prompt does, so web and remote mode work unchanged. The prompt ledger fingerprints the steered blocks the same way a prompt's are, and a text-only steer stays byte-identical to before. The pull channel still delivers plain text, so a blocks-bearing note on a session that downgraded mid-race is rejected with NoActiveTurn and the composer's existing fallback queues the whole draft, attachments included; an attachment is never silently dropped. Steering while an upload is still settling gets the same toast a plain send does, and the now-unused steerAttachmentsUnsupported string is gone from all ten locales.
A
Adam Dalloul committed
b058ccbdda8c35b4a7e8305aac3d8ecebf4f65af
Parent: f497521