Appearance
Backend PR #478 adds a guest catalogue-only image endpoint. Mobile PR #668 uses that endpoint and rebases legacy addresses restored from cache. No signup is required for published artwork; private media and raw image ingress remain protected.
The API validates database ownership, successful card images, canonical logo paths, and reviewed/mapped sealed products with public image rights. It fetches only the internal image service, checks size and image signatures, and applies rate limiting. Public catalogue images are also accessible to browsers; this is not an app-only access guarantee.
Local checks: 1,148 API tests passed, API JavaScript typecheck passed; mobile lint/typecheck passed and 2,473 tests passed with 11 skipped, plus a subsequent passing disk-cache regression. Live guest/admin smoke checks and a rebuilt mobile app remain rollout requirements, not completed validation.
The operator authorized migration 0041 (two additive indexes), API deployment and its restart after PR validation. Preserve ingress restrictions and existing runtime overrides. Deploy the API before updating mobile; old APKs retain raw addresses until replaced. No collection records or image files are modified.
Rollout update: all backend and mobile CI checks passed, including backend live API E2E and Compose smoke. Migration 0041 was applied after a schema-only backup of both image tables. The isolated API image was deployed with all existing runtime overrides preserved and a previous-image rollback override. Live guest card, set logo, series logo and sealed thumbnail requests returned 200; raw image ingress stayed 401 and private paths returned 404. The mobile PR is not yet merged or installed; native guest rendering remains unverified.