Skip to content

cmux NEXT agent chat: a Chief's message shows the Chief's name and avatar (#27914) - #27935

Merged
austinywang merged 3 commits into
feat-cmux-nextfrom
feat-cmux-next-27914-chief-name
Oct 30, 2026
Merged

austinywang merged 3 commits into
feat-cmux-nextfrom
feat-cmux-next-27914-chief-name

Conversation

@austinywang

@austinywang austinywang commented Oct 30, 2026 •

Copy link
Copy Markdown
Contributor

Fixes #27914

What

When a Chief sends a message into a GUI agent chat, the line and the opened message's From: line now show that Chief's name and avatar, the same ones Home and the sidebar show. Before, they showed the Chief turn's internal session name (optchat-b902d10e-2991) and a robot icon.

Why it happened

A Chief runs each turn as an acpmux session named optchat-<home id>-<n>. When that turn sends another chat a message, acpmux signs it as a session_message using the sender session's name. The receiving page could not find that session in its chat list, because Chief sessions are hidden, so it had no harness or avatar to draw and fell back to Bot. Nothing on the session said which Chief it belonged to.

Change

  • optchat-chief (acpmux::turn_tags): each turn session is now tagged with the Chief's participant id (cmux.chief.participant) and the Chief's own name (mux.label, from MUX_CHIEF_TITLE, falling back to "Chief"). Approval cards already read mux.label, so they now name the Chief too.
  • acpmux (prompt_provenance::session_message_from): a session_message from a Chief's turn is signed with that label and gets fromChief (the participant id). Every other sender is unchanged.
  • agent page (incomingMessage.ts, chiefFace.ts, IncomingMessageCard.tsx): the message carries chief. The line asks the app chief.face {chief} and draws the returned name and picture (or text avatar). It no longer offers Open chat on the Chief's hidden turn session.
  • app (chief.face request, HomeService.agentPageFace, AgentAvatars.chiefFace): returns the Chief's name from the Home participants and Chief records, and its face from chiefFaces, falling back to its character picture (the default Chief's sidebar picture for agent_mux). A rename shows up the next time the page asks.

Changelog

  • Fixed: A Chief's messages to an agent chat show the Chief's name and avatar instead of an internal session name.

Summary by cubic

Fixes the agent chat so a Chief's messages show the Chief's name and avatar instead of an internal session name (optchat-…) and a robot icon.

  • A Chief's turn session is tagged with its participant id and its own name (from MUX_CHIEF_TITLE, falling back to "Chief").
  • acpmux stamps a message from a Chief's turn — sent by in-turn acpmux send (session_message) or by agents_chat_send (agent_message via the daemon's pump) — with that name and fromChief; other senders are unchanged.
  • The agent page asks the host for the Chief's face via a new chief.face request and draws the returned name and avatar on the message line and its From: line. An empty or failed answer is not kept, so a later line asks again.
  • "Open chat" on the Chief's hidden turn session is no longer offered.
  • A Chief's rename shows up the next time the page asks for its face.

Written for commit b88da66. Summary will update on new commits.

View guided diff Turn on auto-fix

austinywang and others added 2 commits October 29, 2026 20:58
… avatar, not its turn session (#27914)

Regression for #27914: a Chief's turn messages a GUI
agent chat and the line reads 'optchat-<home>-<n>' with a robot. Fails on the base: the page has
no chiefFace.ts and the message carries no Chief.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…atar (#27914)

A Chief's turn that messages a GUI agent chat was signed with its turn
session's name (optchat-<home>-<n>), and the chat drew a robot: the turn
session is hidden from the chat list, so no harness or avatar was found.

- optchat-chief tags each turn session with the Chief's participant id
  (cmux.chief.participant) and its own name (mux.label, MUX_CHIEF_TITLE).
- acpmux signs a session_message from a Chief's turn with that label and
  stamps fromChief (prompt_provenance::session_message_from).
- The agent page carries fromChief on the message and asks the app for
  chief.face {chief}; the app answers the name and avatar Home and the
  sidebar show for that Chief (HomeService.agentPageFace). The line and its
  From: line draw them; Open chat no longer offers the turn's own session.

Fixes #27914

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@cursor

cursor Bot commented Oct 30, 2026

Copy link
Copy Markdown

Bugbot needs on-demand usage enabled

Bugbot uses usage-based billing for this team and requires on-demand usage to be enabled.

A team admin can enable on-demand usage in the Cursor dashboard.

@github-actions github-actions Bot added the risk:high Risk tier (docs/ci/risk-tiers.md) label Oct 30, 2026
@blacksmith-sh

blacksmith-sh Bot commented Oct 30, 2026 •

Copy link
Copy Markdown

Found 7 test failures on Blacksmith runners:

Failures

Test View Logs
--from must install a complete prebuilt tree/
--from must install a complete prebuilt tree
View Logs
/tmp/tmpcbcisbxe/summary-fail.json (live):/summary-fail.json (live): View Logs
/tmp/tmpuw56rxez/summary-missing.json (live):/summary-missing.json (live): View Logs
[new_workspaces] debug.new_workspace timed 0 of 50 new workspace rows/
[new_workspaces] debug.new_workspace timed 0 of 50 new workspace rows
View Logs
[new_workspaces] the window draws no frames/[new_workspaces] the window draws no frames View Logs
[tabs] debug.tab_switch timed 0 of 40 switches/
[tabs] debug.tab_switch timed 0 of 40 switches
View Logs
[tabs] the window draws no frames/[tabs] the window draws no frames View Logs

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

…#27914)

Review: a Chief messages an agent chat by agents_chat_send, which the cmux
daemon's pump delivers as an agent_message from acp:<turn>, not by an
in-session acpmux send. acpmux now stamps fromChief and the Chief's name on
either kind from a Chief's turn session, by its exact id
(prompt_provenance::stamp_chief), and the page reads fromChief on both.

Also: chief.face refuses a bare agent_; an empty answer is not kept for the
page; the name is the one the Chief's tile, header and tab show
(chiefName(of:), a rename being saved included).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@github-actions

Copy link
Copy Markdown
Contributor

cmux status (one comment, edited in place; each line is updated by the job that owns it)

red: cmux-next checks (god files, concurrency, crash safety, l10n); NEW: red check: Prebuilt web bundles install and stamp (+3 more) is not red on the base 1cde021; do not merge until green; see lane-rules

@austinywang
austinywang merged commit 2b01346 into feat-cmux-next Oct 30, 2026
224 of 239 checks passed
@austinywang
austinywang deleted the feat-cmux-next-27914-chief-name branch October 30, 2026 05:20
austinywang added a commit that referenced this pull request Oct 30, 2026
…'s turn speaks as the Chief (#27914)

Review follow-ups on #27935:
- The app watches what chief.face reads (renames being saved, the Chief
  records, each Chief's own avatar) and tells every agent page when it
  changes (chiefFacesChanged); the page asks again for each Chief it drew,
  so a rename or a new avatar shows on lines already on screen.
- acpmux stamps fromChief only for a session that is a Chief's turn
  (cmux.chief set and cmux.chief.role=turn), not for any session that
  carries a participant tag (a compactor, another agent).
- chief.face takes the Chief's name from its own conversation, passing
  over a group whose one Chief it is.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@github-actions

github-actions Bot commented Oct 30, 2026 •

Copy link
Copy Markdown
Contributor

teamleaderleo added a commit that referenced this pull request Oct 30, 2026
…rates (WIP)

PR CI never ran cmux-tui.yml, so the panic ratchet only ran on base dispatches and
#27935 landed two acpmux indexing_slicing hits that turned lint (linux) red.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Agent-Session: https://cmux.com/deeplink/agent?id=aid-2e7cd658706e930369b8
teamleaderleo added a commit that referenced this pull request Oct 30, 2026
#27935 gave a Chief turn session a fifth tag, cmux.chief.participant
(the Chief's participant id, which acpmux stamps as fromChief). The
harness test still counted 4 tags, so it fails on feat-cmux-next. It
now counts 5 and checks the participant tag is the Chief's id.


Agent-Session: https://cmux.com/deeplink/agent?id=aid-c11d09c9f41988fc1d93

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
teamleaderleo added a commit that referenced this pull request Oct 30, 2026
* acpmux: restart tool previews cut strings without slicing (4 string_slice hits from #26984)

The Rust panic ratchet is red on feat-cmux-next: acpmux string_slice 98 > baseline 94.
The four new hits are in hub/restart_resume.rs, added by 84705bd (#26984):
input_prefix and masked_scan cut at a char boundary with `[..end]`,
mask_input_assignments with `[..assignment.end()]`, and safe_tool_text with `[..at]`.

The two char-boundary cuts share one `char_prefix` helper that reads with `str::get`;
the regex-end and rfind cuts use `get` too. Every index was already a char boundary,
so behaviour is unchanged; the unreachable None arms keep the redacting side
("[secret]" alone, or an empty prefix). A new test cuts multibyte text at each spot.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Agent-Session: https://cmux.com/deeplink/agent?id=aid-d9e7e9f7fb2b87a57d5f

* ci(cmux-tui): run the Rust panic ratchet on PRs that touch cmux-tui crates (WIP)

PR CI never ran cmux-tui.yml, so the panic ratchet only ran on base dispatches and
#27935 landed two acpmux indexing_slicing hits that turned lint (linux) red.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Agent-Session: https://cmux.com/deeplink/agent?id=aid-2e7cd658706e930369b8

* ci(cmux-tui): trigger ratchet when its baseline changes

Agent-Session: https://cmux.com/deeplink/agent?id=aid-2e7cd658706e930369b8

* ci: rebaseline tracked Rust lint counts from Linux

Agent-Session: https://cmux.com/deeplink/agent?id=aid-2e7cd658706e930369b8

* ci(cmux-tui): run ratchet for baseline-only changes

Agent-Session: https://cmux.com/deeplink/agent?id=aid-2e7cd658706e930369b8

* ci(cmux-tui): record current Linux arithmetic count

Agent-Session: https://cmux.com/deeplink/agent?id=aid-2e7cd658706e930369b8

* ci(cmux-tui): preserve baseline formatting

Agent-Session: https://cmux.com/deeplink/agent?id=aid-2e7cd658706e930369b8

* ci(cmux-tui): record current Linux TUI counts

Agent-Session: https://cmux.com/deeplink/agent?id=aid-2e7cd658706e930369b8

* ci(cmux-tui): baseline existing ratchet hits at rollout tip

Agent-Session: https://cmux.com/deeplink/agent?id=aid-2e7cd658706e930369b8

* ci(cmux-tui): align baseline metadata and core count with measurement

Agent-Session: https://cmux.com/deeplink/agent?id=aid-2e7cd658706e930369b8

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
@lawrencecchen

Copy link
Copy Markdown
Contributor

Base red after this PR: its What's New highlight had no tryIt action or docs link, so scripts/whats-new/test_digest.py (release-notary) failed. Fix: #28441.

austinywang added a commit that referenced this pull request Oct 30, 2026
…28458)

test_digest.py requires every highlight to have a tryIt action or docs link.
chief-name-in-agent-chats.md (#27935) and shell-agent-identity.md (#26627)
landed without one, turning workflow-guard-tests / release-notary red on
feat-cmux-next and on every PR that runs it.

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
lawrencecchen added a commit that referenced this pull request Oct 31, 2026
…e red) (#28114)

chief-name-in-agent-chats.md (#27935) and shell-agent-identity.md (#26627) had no action,
deeplink or docs link, so scripts/whats-new/test_digest.py
(test_the_repository_highlights_validate) failed in nightly-guards / release-notary on every
feat-cmux-next PR. Both are agent-chat changes, so the action opens a new agent chat, the
same action the other agent-chat highlights use.

This branch was previously deployed

3 inactive deployments
artifacts — b88da669 Deployed Oct 30, 2026 by austinywang via publish tree-addressed cmux-tui #80382
sentry-dsyms — b88da669 Deployed Oct 30, 2026 by austinywang via upload cmux-tui dSYMs to Sentry #80382
ci-routing-agent — b88da669 Deployed Oct 30, 2026 by austinywang via cmux-tui tree preflight #80382
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

risk:high Risk tier (docs/ci/risk-tiers.md)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants