Repository navigation
🪡 style: Separate Attachments from Message Bubbles - #17017
lia-by-librechat[bot] wants to merge 5 commits into
Conversation
|
Head: |
|
Head: |
|
Head: |
|
Verification for |
|
Independent review completed for |
|
@codex review the latest head, final review |
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 95953e8ad3
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
|
Head: |
|
@codex review the latest head, final review |
|
Codex Review: Didn't find any major issues. Delightful! Reviewed commit: ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
If Codex has suggestions, it will comment; otherwise it will react with 👍. Codex can also answer questions or update the PR. Try commenting "@codex address that feedback". |
|
Independent review completed for |
|
Head: |
|
Independent review completed for |
Summary
User images and files currently sit inside the same filled bubble as the message text, leaving large filled areas around narrow images. Render attachments above the text bubble, right-aligned, with a 1px border using the existing message-bubble theme color. Attachment-only turns no longer leave an empty bubble.
How it works
MessageRowowns the attachment strip instead of each text container. Plain, structured, queued, search and shared messages use the same placement. Editors retain their removable attachment chips. Protected messages keep their previews whilePrivateTextowns the body and recovery UI. Both string and object-valued structured text are supported. No theme tokens, message data or API contracts change.Type of change
Testing
2f91d172780e894a3235e4dd0530ccd0e2d922b0: 125 focused Jest tests across 8 suites passed, including Search initialization, row widths, protected messages, attachment placement, pending steers, subagent activity and the search comparator. Clientnpx tsc --noEmitand scoped static checks passed.777395ef971e032c43bd43d0824f8cff98ee2357: 4 Playwright scenarios passed across stock/ClickHouse light/dark, covering border color parity, protected owner-text success/unavailable states, previews and 320px layout. Production client build and CI Lighthouse passed.2f91d172780e894a3235e4dd0530ccd0e2d922b0. The width-only extraction changes no classes or layout; browser and local Lighthouse checks were not rerun for it. Remaining CI and independent review are reported in the head comments.Screenshots / recordings
Four after screenshots were captured from the running app. Upload is blocked: the installed CLI lacks attachments, and the workspace-local attachment-capable CLI returned
unsupported authentication type. No screenshot upload is claimed. A genuine before capture was unavailable because the isolated base worktree could not reuse this lane's dependencies and disk fell below the installation threshold. The approved mockup is not presented as an app screenshot.Checklist