2725a9b3

By: Michael Lynch <git@mtlynch.io>

Make MediaConverter a func-backed struct in uploads

Replace the MediaConverter interface and main's local adapter with a struct of
two conversion funcs defined in the uploads package, so main constructs it
directly:

  uploads.MediaConverter{
      ConvertPhoto:         images.StripMetadata,
      ConvertAnimatedPhoto: convert.WriteGIFToAnimatedAVIF,
  }

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 16s
Eval 13s 59s 59s 1m12s
Build 19s 8m44s 1m14s 1m34s
Suite 1s 9m57s 1m32s 1m34s

Timeline

0s10s20s30s40s50s1m1m10s1m20s1m30s