feat(server): report image dimensions with signed asset URLs

Clients reserve a 16:9 slot for a chat image while its bytes load, then
resize to the natural size once decoded, which moves every row below it.
The server already opens the file when it issues a signed URL, so read
the pixel size from the PNG, JPEG, GIF, or WebP header and return it as
imageDimensions. A client that has it can lay the row out at its final
size before the first byte of the image arrives. Unsupported formats and
unreadable headers leave the field out.

Co-Authored-By: Claude Code <noreply@anthropic.com>
ba55b8ee5aJulius Marminge committed on 9/5/2026, 8:32:50 PMparentf8b4c46
7 files changedLine totals unavailable