Agent pane: a cleaner agent message card; signatures out, one chip per PR, quiet SHAs
Leo's asks, about another agent's message in the agent pane:
we can render this with pics maybe and just... idk make it all look nicer
can you just enable all these
Leo-ask: ask-f10ccbb70c
This is part 1 of 2: a cleaner card. Part 2 (branch agent-message-pics) makes every file the message names open, with its images as thumbnails. It goes up once this lands, to keep each PR under about 800 lines.
What changes
What another agent's message card shows (IncomingMessageCard.tsx), for live messages and those loaded from history alike:
-
The
[lane]signature is out on every path.[agent-message-style] …used to stay when the signature didn't match the provenance's name exactly. Now a signature that names the sending chat in any case or spacing, or aspeer/name, is dropped on every path:agent_message;session_messageandsubsession_message;- the
acpmux sendenvelope; agent_digest, where each sender shows under its own name.
The card also strips a signature still in a stored record, so history renders clean. A bracket that doesn't name the sender (
[WIP]) stays. Leo's nightly was built at 17:41, before #23950 (which strips the exact-name case) merged at 18:15. -
Every PR ref shows once.
#N,owner/repo#Nandhq#Nwritten twice in a row, such asMERGED #23825 (4c656ea8) manaflow-ai/cmux#23825, become one chip (messageRefs.ts). A later mention in another sentence stays, as does one in a bracket with the agent's own words (Reverted #5 (#5 broke main)). -
Commit SHAs are quiet monospace. They link to the commit when the repository is known. Replies keep their SHA chips.
-
A message from another machine names that machine's files. That means a message relayed by
acpmux-peer#, or one from a listed chat on a peer. Each file draws as a dim chip with a lock and the tooltip "On : -
The card is cleaner. It is glass at 6%, never opaque, with a hairline mixed with the theme accent (
--agent-accent, never orange), a lighter top edge, a 12px radius and flush first and last lines.
The diff is 999 lines; 264 of them are the two new strings in all 21 locales.
Before / after
Public gallery captures (agent-pane.incoming-message, variants files and files-elsewhere, synthetic content):
| Before (base) | After |
|---|---|
![]() | ![]() |
Before: the [agent-message-style] prefix shows, #23825 appears twice, and the SHAs are blue chips. After: the prefix is gone, there is one #23825 chip, and the SHAs are quiet monospace. The locked image card is base behaviour, which part 2 replaces with a strip of thumbnails.
The same report relayed from another machine shows its file as a lock chip naming that machine, with no thumbnail and no host call:

Overlap
- #24091 (the sender-chip PR) changes the card's header line, not its body.
- Part 2 changes the
ReplyImageloadableline to match #23879's Swift host change; this part doesn't touch it.
Tests
conversation/incomingMessage.test.tscovers:- the lane signature on every path, any case or spacing;
- each sender in an
agent_digest; unsigned;remotefor peer relays.
conversation/messageRefs.test.tscovers:- repeats in a row;
- later mentions, other numbers and other repositories;
- code and links between mentions;
- brackets;
- timing on long hex runs, 5,000 refs and 20,000
[.
webviews/test/agent-message-card.test.tsx(JSDOM) checks:- the signature is gone,
#23825is one chip, and the SHA is a quiet link; - a remote message draws lock chips naming the machine, with no
link.inspect,image.loadorlink.openPathcall.
- the signature is gone,
- Typecheck and lint pass, as do check-glass-never-opaque,
check:catalog-keysand the prepush gate.
Agent session: Air-Blue
🤖 Generated with Claude Code

