The image frame went through three sizes: full width on the first render, the measured width after its own onLayout, then the decoded size. Each one changed the row's height after LegendList had already placed the rows below it, so a screenshot could push the end of the thread behind the composer or leave the next tool call drawn under it. The feed now hands markdown its content width through context, so the placeholder is the right width on the first render, and the server's image dimensions size the frame exactly before the first byte arrives. An image the server could not measure still reserves a 16:9 slot. Co-Authored-By: Claude Code <noreply@anthropic.com>
Julius Marminge committed on 9/5/2026, 9:01:18 PMparent0c0d4ea
2 files changedLine totals unavailable