CmuxConversation iOS: preview queued attachments, swipe a message's documents, hardware Return sends
Summary
These are the CmuxConversation iOS changes from manaflow-ai/cmux#24572. They are byte-identical to that PR's Packages/iOS/CmuxConversation. The only package difference between the two heads is #24208 (the reply thread), which is on this branch and not yet on feat-cmux-next.
- Composer attachments: tapping a queued photo or document opens Quick Look before sending. Every queued attachment is a swipe away (
ComposerAttachmentShelf.onOpen,ConversationComposerView.onOpenAttachment). Names of.or..stay inside the attachment's folder. - A message's documents: they open together in Quick Look at the tapped one. That one loads first and opening stops if it fails; the rest load concurrently.
ConversationQuickLookPresentertakes several items. - Hardware keyboard: Return sends, and Shift-Return or Option-Return starts a new line. Marked text keeps Return. The on-screen Return still starts a new line, as in Messages.
ConversationViewController.onOpenLink: the host can take a tapped link. cmux mobile's Chief uses it to open file links in its file preview. When the hook is unset, links open with the system as before.- Strings: two new catalog strings (en and ja),
conversation.composer.openAttachmentandconversation.composer.openAttachmentHint.
Changelog
- Added: tap a queued attachment in the composer to preview it, and swipe between a message's documents; a hardware keyboard's Return sends.
Tests and evidence
- The iOS compile ran with cmux mobile's kit tests on mini-cmux11s: Chief 74/74, AgentChat 126/126, Live 247/247.
- Live check over the real link from cmux mobile's Chief: hardware Shift-Return and Option-Return, then Return, sent a three-line message. Details and video paths are in #24572.
Observed / Not run
- Not run: the package's own lab app and its tests (no new geometry or core tests). The queued-attachment Quick Look in Chief was not driven live; the agent-chat composer equivalent was.
๐ค Generated with Claude Code
![View with [code]smith](https://pr-comments-assets.blacksmith.sh/codesmith/view-with-codesmith-dark-v3-3x.png)
![Autofix with [code]smith](https://pr-comments-assets.blacksmith.sh/codesmith/autofix-with-codesmith-dark-3x.png)
Need help on this PR? Tag @codesmith-bot with what you need.
Summary by cubic
Adds attachment previews and hardware-keyboard sending to the iOS conversation composer. Tapping a queued photo or document opens Quick Look before sending, and a message's documents open together at the tapped one so you can swipe between them. A hardware keyboard's Return sends the message, while Shift- or Option-Return starts a new line; the on-screen Return still starts a new line. Also adds ConversationViewController.onOpenLink, a host hook that can take over link taps (used by the Chief app to open file links in its preview) โ when unset, links open with the system as before. Two new localization strings (conversation.composer.openAttachment and conversation.composer.openAttachmentHint) ship in English and Japanese.