feat(app): make assistant image previews intent-aware - #4162
Closed
Juns-g wants to merge 2 commits into
Closed
Conversation
Juns-g
force-pushed
the
feat/intent-aware-image-previews
branch
from
September 1, 2026 14:03
b798c87 to
5cf5c82
Compare
Collaborator
|
Closing this feature PR. Please discuss the workflow and shared need in Discussions, following CONTRIBUTING.md. |
2 tasks
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Linked issue
Discussion #4156
Type of change
Reasoning
Agent image inspection is working context, while a generated image is a result. Paseo flattened
Codex
imageView, CodeximageGeneration, and image-bearing tool results into identical assistantMarkdown messages, then rendered each image at the full message width. A portrait screenshot could
therefore take several screens and interrupt the surrounding conversation.
This change preserves provider-neutral image purpose on assistant timeline messages. Inspected/tool
images render as a collapsed activity with an expandable thumbnail strip. Image results and ordinary
Markdown images remain visible, but use intrinsic dimensions, the measured message container, and a
viewport-relative height budget to determine their footprint.
Goals
imageViewand image-bearing Codex/Claude tool results compact by default.imageGenerationresults prominent.replica-cache persistence without breaking older clients or daemons.
Non-goals
QA
Web
The browser E2E uses a real isolated daemon and the app's normal attachment path. It verifies that
an inspected image is absent while collapsed, appears as an 80 px thumbnail after expansion, and
still opens in the existing lightbox. It also verifies that a 540 × 1200 portrait result preserves
its aspect ratio and stays within 45% of the live viewport height.
Collapsed inspection:
Expanded inspection:
Adaptive portrait result:
Compatibility
imagePurposeis optional. Old clients strip it and continue rendering the Markdown image; newclients receiving messages from an old daemon keep the existing rich-image fallback. A wire
compatibility test covers both shapes.
Checklist
npm run typecheckpassesnpm run lintpassesnpm run formatpasses