Skip to content

Chat 2.0.33: public image previews show without a click, bounded to the viewport - #140

Merged
QuickMythril merged 1 commit into
mainfrom
feat/chat-auto-image-previews
Sep 16, 2026
Merged

QuickMythril merged 1 commit into
mainfrom
feat/chat-auto-image-previews

Conversation

@QuickMythril

Copy link
Copy Markdown
Member

Owner: users shouldn't have to click View to see an image.

Why the gate existed: previews are data-URL images held in state (encoded + decoded memory), so 2.0.x kept only one message's previews open at a time to bound Android's renderer footprint.

Change: previews render by default for messages in or near the viewport — an IntersectionObserver on the list (one viewport of margin above/below) marks which threads are visible; previews mount for those and unmount as they scroll away, so a long image-heavy timeline holds only what's on screen (the per-message byte/pixel caps and the fetch queue are unchanged). Hide collapses a message's previews for the visit. Where IntersectionObserver is unavailable, previews just render.

Kept as click-to-reveal: private (encrypted) image attachments — each reveal is a one-request chat.attachment decrypt approval in Home, so auto-revealing would raise a prompt per image on scroll. That's a separate session-grant design if wanted.

Also: the 2.0.32 approval notice said "Large files take a moment before the prompt appears" — measured at ~300 ms, so it now says "look for its prompt on this tab" (×23 locales).

924/924, build clean, README, version 2.0.33. Live verification of the no-click previews happens on the published build in Home (browser-dev lacks FETCH_QDN_RESOURCE, so previews can't be exercised outside Home).

🤖 Generated with Claude Code

https://claude.ai/code/session_01AGDWY3yhSNv2NKTVUBJQBf

…he viewport

Owner: users should not have to press "View" on an image. The click gate
existed to bound memory — data-URL previews retain encoded and decoded
bytes, and 2.0.x kept only one message's previews open at a time so Android
never accumulated them. Previews now render by default for messages in or
near the viewport (IntersectionObserver on the list, one viewport of margin
above and below) and are released as they scroll away, so a long
image-heavy timeline holds only what is on screen. "Hide" collapses a
message's previews for the visit. Private (encrypted) image attachments
keep click-to-reveal: each reveal is a one-request decrypt approval in
Home, so auto-revealing would prompt per image on scroll. Also trims the
2.0.32 approval notice ("look for its prompt on this tab" — the prompt is
~300 ms, not "a moment") ×23 locales. README; version 2.0.33.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01AGDWY3yhSNv2NKTVUBJQBf
@QuickMythril
QuickMythril merged commit 314990d into main Sep 16, 2026
4 checks passed
@QuickMythril
QuickMythril deleted the feat/chat-auto-image-previews branch September 16, 2026 20:07
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant