By: Michael Lynch <git@mtlynch.io>
Move the video transcode worker behind a single interface The durable background transcoding work added seven video-only fields to handlers.Server (the nudge channel, worker ctx/cancel, stop/done channels, and shutdownOnce) plus an originals directory. Extract that worker into a new videoqueue package and have Server depend on it through one VideoQueue interface field, dropping Server's added dependency fields from eight to two. videoqueue.Worker owns the queue and its lifecycle; its owner (main, tests) starts and shuts it down. handlers defines the VideoQueue interface and never imports videoqueue, so there is no cycle. MediaProcessor narrows to the photo methods, since the video methods now live on videoqueue.Transcoder. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>