carry of #27602: compact waiting messages and subagent tray grid

Merged
TE
6d ago
+1287-464

Carry of #27602: cmux NEXT: one compact group for agents' waiting messages; one grid for the subagent strip.

Original purpose (from #27602): replace loose waiting-message rows with one collapsed group, make sender names open their chat, keep message actions scoped to the message, and align the subagent tray on one grid. The carry keeps the original commits and merges current feat-cmux-next so stale base comparisons are refreshed.

Original PR: https://github.com/manaflow-ai/cmux/pull/27602

Gallery: agent-pane.incoming-message-disclosure, agent-pane.subagent-tray

Before/after captures: gallery run 41100248413, artifact gallery-advisory-28113-f6d96d4b80da6c306ea971feff5fa3ee89d03eaa. I opened the after images for message rest and hover in light/dark themes: sender identity stays on the compact header, the repeated From line is removed, and the expanded message remains readable within the card. These captures precede the formatting/typecheck and slash-command-copy repair at ff36e551; a fresh capture targets the waiting-message group and subagent tray above.

Agent session: agent session


View with [code]smith Autofix with [code]smith
Need help on this PR? Tag @codesmith-bot with what you need.


Summary by cubic

Carries #27602 into the cmux NEXT branch: agents' waiting messages now show as one collapsed, deduplicated "N messages from M sessions" group instead of loose rows, and the subagent tray aligns to a single grid.

  • Removes "Read after this turn"/"Read after this step" labels, the From: line, and the separate Open chat button; clicking the sender's name now opens its chat.
  • Scopes a waiting message's ⋯ menu to message actions (Send now, Copy, Dismiss) instead of the composer queue's actions.
  • Deduplicates waiting messages by delivery identity, keeps queued prompts' paste/file metadata when their transcript echo omits parts, and preserves slash command copy.
  • Retains sender provenance for queued agent messages that lack fromAgent but carry agent_message provenance, including through acpmux queue listings.
  • Restores localization and layout for the note on messages a Stop holds.
  • Names sub-session notes delivered through acpmux's outbox with their sender, and previews bare GitHub PR/issue URLs as owner/repo#N.
  • Find now reaches text inside the waiting-messages group, matching deduplicated messages correctly, and opens only the message holding the current match.

Subagent tray grid

  • Header, lines, and View all share one inset, icon column, and trailing track so the chevrons align on one x.
  • Subagents show their own icon, with an accessible label, instead of repeating the word "Subagent".

Migration

  • Requires the rebalanced Localizable.xcstrings and the new PendingMessagesCard components.