fix: use resize=contain in supabase image loader to prevent crop (#301) master
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>