Some checks failed
CI / Scraper / Lint (pull_request) Successful in 8s
CI / Scraper / Test (pull_request) Successful in 20s
CI / Scraper / Docker Push (pull_request) Has been skipped
CI / UI / Build (pull_request) Successful in 28s
CI / UI / Docker Push (pull_request) Has been skipped
Release / Scraper / Test (push) Successful in 9s
Release / UI / Build (push) Successful in 28s
Release / Scraper / Docker (push) Successful in 24s
Release / UI / Docker (push) Successful in 3m6s
iOS CI / Build (push) Failing after 2m3s
iOS CI / Test (push) Has been skipped
iOS CI / Build (pull_request) Failing after 59s
iOS CI / Test (pull_request) Has been skipped
- Add AvatarCropView: fullscreen pan/pinch sheet with circular crop overlay, outputs 400×400 JPEG at 0.9 quality matching the web crop modal - ProfileView: picker now shows crop sheet before uploading instead of direct upload - AuthStore.validateToken: exchange raw MinIO key from /api/auth/me for a presigned GET URL so avatar renders correctly on cold launch / re-login - APIClient: add fetchAvatarPresignedURL() calling GET /api/profile/avatar - Models: add memberwise init to AppUser for avatar URL replacement