docs: update STATUS.md with Dec 6 fixes (#488, #489) (#490)

- sensitive image coverage: complete coverage across all image displays
including media session, embeds, search results, album pages
- mobile artwork upload: iOS HEIC handling via content_type detection

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-authored-by: Claude <noreply@anthropic.com>

authored by zzstoatzz.io Claude and committed by GitHub bf4eeabd 9eb4a0cd

Changed files
+25 -4
+25 -4
STATUS.md
··· 47 47 48 48 ### December 2025 49 49 50 - #### sensitive image moderation (PRs #471-485, Dec 5) 50 + #### mobile artwork upload fix (PR #489, Dec 6) 51 + 52 + **problem**: artwork uploads from iOS Photos library silently failed - track uploaded successfully but without artwork. 53 + 54 + **root cause**: iOS stores photos in HEIC format. when selected, iOS converts content to JPEG but often keeps the `.heic` filename. backend validated format using only filename extension → rejected as "unsupported format". 55 + 56 + **fix**: 57 + - backend now prefers MIME content_type over filename extension for format detection 58 + - added `ImageFormat.from_content_type()` method 59 + - frontend uses `accept="image/*"` for broader iOS compatibility 60 + 61 + #### sensitive image moderation (PRs #471-488, Dec 5-6) 51 62 52 63 **what shipped**: 53 64 - `sensitive_images` table to flag problematic images by R2 `image_id` or external URL 54 65 - `show_sensitive_artwork` user preference (default: hidden, toggle in portal → "your data") 55 - - flagged images blurred everywhere: track lists, player, artist pages, likers tooltip 56 - - SSR-safe filtering: link previews (og:image) exclude sensitive images 66 + - flagged images blurred everywhere: track lists, player, artist pages, likers tooltip, search results, embeds 67 + - Media Session API (CarPlay, lock screen, control center) respects sensitive preference 68 + - SSR-safe filtering: link previews (og:image) exclude sensitive images on track, artist, and album pages 57 69 - likers tooltip UX: max-height with scroll, hover interaction fix, viewport-aware flip positioning 58 70 - likers tooltip z-index: elevates entire track-container when tooltip open (prevents sibling tracks bleeding through) 59 71 ··· 62 74 - `SensitiveImage` component wraps images and checks against flagged list 63 75 - server-side check via `+layout.server.ts` for meta tag filtering 64 76 - users can opt-in to view sensitive artwork via portal toggle 77 + 78 + **coverage** (PR #488): 79 + 80 + | context | approach | 81 + |---------|----------| 82 + | DOM images needing blur | `SensitiveImage` component | 83 + | small avatars in lists | `SensitiveImage` with `compact` prop | 84 + | SSR meta tags (og:image) | `checkImageSensitive()` function | 85 + | non-DOM APIs (media session) | direct `isSensitive()` + `showSensitiveArtwork` check | 65 86 66 87 **moderation workflow**: 67 88 - admin adds row to `sensitive_images` with `image_id` (R2) or `url` (external) ··· 536 557 537 558 --- 538 559 539 - this is a living document. last updated 2025-12-05. 560 + this is a living document. last updated 2025-12-06.