fix(privacy): "Remove Photo Metadata" also covers emoji/sticker packs and badges (#332) #405

Merged
jared merged 1 commits from fix/strip-metadata-packs into lotus 2026-10-18 06:31:32 -04:00
Owner

Fixes #332.

"Remove Photo Metadata" (#109, on by default) ran for message attachments and avatars, but not for:

  • custom emoji / sticker images;
  • pack avatars;
  • power-level badge images.

These are the images most likely to be phone photos, and they're published in room or space state to every member, with GPS and timestamp intact.

Change: new useStrippedFilePicker, a drop-in for useFilePicker that applies stripImageMetadata when the setting is on. It's used by ImagePackContent (emoji/stickers), PackMeta (pack avatar) and PowersEditor (badges), so new upload sites have one obvious helper to use.

Verified (the issue's acceptance test): a JPEG with an APP1/Exif segment containing a GPS marker, uploaded as an emoji via Settings → Emojis & Stickers → Default Pack → Select, with the /upload body captured:

  • Before: 805 bytes, Exif/GPS present.
  • After: 759 bytes, no Exif/GPS.

tsc clean · ESLint clean.

🤖 Generated with Claude Code

https://claude.ai/code/session_017PCb59uY3UKqDqt7B6hzd5

Fixes #332. "Remove Photo Metadata" (#109, on by default) ran for message attachments and avatars, but not for: - custom **emoji / sticker** images; - **pack avatars**; - **power-level badge** images. These are the images most likely to be phone photos, and they're published in room or space state to every member, with GPS and timestamp intact. **Change:** new `useStrippedFilePicker`, a drop-in for `useFilePicker` that applies `stripImageMetadata` when the setting is on. It's used by `ImagePackContent` (emoji/stickers), `PackMeta` (pack avatar) and `PowersEditor` (badges), so new upload sites have one obvious helper to use. **Verified** (the issue's acceptance test): a JPEG with an APP1/Exif segment containing a GPS marker, uploaded as an emoji via Settings → Emojis & Stickers → Default Pack → Select, with the `/upload` body captured: - **Before:** 805 bytes, Exif/GPS **present**. - **After:** 759 bytes, **no Exif/GPS**. `tsc` clean · ESLint clean. 🤖 Generated with [Claude Code](https://claude.com/claude-code) https://claude.ai/code/session_017PCb59uY3UKqDqt7B6hzd5
jared added 1 commit 2026-10-18 00:09:19 -04:00
fix(privacy): "Remove Photo Metadata" also covers emoji/sticker packs and badges (#332)
CI / Build & Quality Checks (pull_request) Successful in 3m25s
CI / Trigger Desktop Build (pull_request) Skipped
CI / Docker image build & smoke test (pull_request) Skipped
CI / Secret scan (gitleaks) (pull_request) Successful in 8s
CI / Playwright smoke (e2e) (pull_request) Successful in 15m42s
4486f02bc6
Custom emoji and sticker images, pack avatars and power-level badge
images were uploaded with their EXIF intact (GPS location, timestamp),
although they are published to every member of the room or space. Route
those three pickers through a new useStrippedFilePicker, which applies
the same stripImageMetadata as attachments and avatars.

Fixes #332

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_017PCb59uY3UKqDqt7B6hzd5
jared merged commit 1037d458f4 into lotus 2026-10-18 06:31:32 -04:00
Sign in to join this conversation.
No Reviewers
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: LotusGuild/cinny#405