faebdd81

By: Michael Lynch <git@mtlynch.io>

Inject both photo converters behind one interface

Replace the Processor's single ConvertAnimatedPhoto func field and the
hard-coded images.StripMetadata call with a MediaConverter interface that
covers both still and animated photo conversion. Production wiring lives in
the new convert.Converter; tests use a stubConverter fake.

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

Suite timing

Time to Start Worker time Duration Time to finish
Config 1s 34s 34s 36s
Eval 34s 2m26s 2m26s 3m00s
Build 56s 15m52s 2m03s 3m00s
Suite 1s 18m52s 2m58s 3m00s

Timeline

0s20s40s1m1m20s1m40s2m2m20s2m40s3m