fix: use resize=contain in supabase image loader to prevent crop (#301)
The crop in #286 was in the image *serving* path, not upload. The
next/image custom loader (supabase-image-loader.js) hit Supabase's
render/image endpoint without a resize param, so it defaulted to
resize=cover. Because next/image only passes `width` to a custom loader
(never height), imgproxy filled the missing height with the source
height and cropped the width to fit the box — chopping the right side
off large images.
Verified against the reported image on prod (5712x4284) and locally:
width=3840 -> cropped (full source height kept)
width=2500 -> still cropped (clamping width alone does not help)
width=3840&resize=contain -> correct aspect, no crop
Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
authored by