576f308d

By: Michael Lynch <git@mtlynch.io>

Move tinybeans package and file I/O logic into importers/ subtree

Splits the 465-line cmd/import-from-tinybeans/main.go into focused
packages so the binary is a thin CLI orchestrator:

- importers/tinybeans/ (moved from tinybeans/): Tinybeans parse +
  convert logic; import paths updated throughout.
- importers/media.go: MediaWriter interface, LocalWriter, Entry struct,
  ImportMedia(), and GIF-to-AVIF conversion helpers.
- importers/images.go: GenerateAndWriteSquareThumbnail() and
  GenerateAndWriteResized().
- cmd/import-from-tinybeans/main.go: reduced to main(), parseAndConvert(),
  and writeMetadataToDB() (~175 lines, down from 465).

Also removes the dead entryType/convertGIFToAnimatedAVIF fields from the
old importEntry struct; ImportMedia now infers GIF conversion from
ConvertedType == MediaTypePhotoAnimated directly.

Also fixes a pre-existing staticcheck lint error in cmd/app/main.go
(== false comparisons).

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

Suite timing

Time to Start Worker time Duration Time to finish
Config 0s 1s 1s 1s
Eval 1s 55s 55s 57s
Build 3s 6m35s 1m20s 1m24s
Test - - - -
Deploy - - - -
Suite 0s 7m32s 1m23s 1m24s

Timeline

0s10s20s30s40s50s1m1m10s1m20s