Publisher Dashboard

Phase 1 — Create Hugo content via GitHub PR (assetsdigest)

Image Upload (Phase 2)

Uploads to R2 (tmp) then finalizes into the PR branch as optimized WebP under static/uploads/.