4440bf97

By: Michael Lynch <git@mtlynch.io>

Parse photos into a ProcessablePhoto instead of validating

Replace validatePhotoResolution with uploads.NewProcessablePhoto, which
checks the size and pixel limits and returns a ProcessablePhoto. ProcessPhoto
now accepts only that type, so the type system guarantees we never process a
photo that hasn't been checked against the limits.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>

Suite timing

Time to Start Worker time Duration Time to finish
Config 1s 14s 14s 15s
Eval 12s 1m44s 18h22m09s 18h22m21s
Build 33s 3m53s - -
Test - - - -
Deploy - - - -
Suite 1s 5m51s - -

Timeline

0s10s20s30s40s50s1m1m10s1m20s1m30s1m40s1m50s