Skip to content

feat(web): safely attach HEIC photos as JPEG images - #8161

Merged
t3dotgg merged 7 commits into
mainfrom
t3code/heic-jpeg-attachments-safe
Aug 25, 2026
Merged

t3dotgg merged 7 commits into
mainfrom
t3code/heic-jpeg-attachments-safe

fix(web): reject unsupported HEIC image sequences

1a9d391
Select commit
Loading
Failed to load commit list.
MacroscopeApp / Macroscope - UI Consistency succeeded Aug 25, 2026 in 42s

UI Consistency: All clear

All clear

Details

Note

Your check run agent prompt is: .macroscope/check-run-agents/ui-consistency.md
More information about how Check Run Agents work can be found in our Help Center.


🔍 Agent activity — 5 tool calls

💭 This PR focuses on HEIC/JPEG conversion logic and ChatComposer validation, not UI styling, so there's likely nothing relevant to a UI consistency check. I'm scanning the diff to confirm there are no shared component or Tailwind changes, and just double-checking the error message wording stays consistent.

1. git_tools — not a supported image type

2. git_tools — GIF, JPEG, PNG, or WebP

💭 Mobile is out of scope, so I'll focus only on apps/web/src. I'm checking the ChatComposer for other spots handling image accept attributes or file input accept lists that might also need HEIC support for consistency across the web UI.

3. git_tools — accept=

4. git_tools — isProviderSendTurnSupportedImageMimeType

💭 This PR has no UI component or styling changes, just logic in ChatComposer, so there's nothing to flag for UI consistency. I want to double-check whether the attachment preview relies on file type for rendering thumbnails—since HEIC files get converted to JPEG before preview, that should render fine via URL.createObjectURL. Let me also check the paste path and any other drag-drop entry points in web that might filter for image/* differently.

5. git_tools — startsWith("image/")

💭 The grep flagged ChatComposer.tsx as binary for some reason, but that's a side detail—there's nothing here that constitutes an actual UI consistency finding, so I should report all clear. Though I notice the instructions want a plain "All clear" text while the response schema expects JSON, which creates a conflict I need to resolve.


Agent Credits: 30 credits