CmuxConversation iOS: preview queued attachments, swipe a message's documents, hardware Return sends

Merged
AZ
14d ago
+215-22

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. ConversationQuickLookPresenter takes 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.openAttachment and conversation.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 Autofix with [code]smith
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.