Repository navigation
Agent pane: a subagent's own pane shows it read only, without the chat's composer, queue or PR bars - #22986
Conversation
…, queue or PR bars; new subagents open no pane Red: a pane opened on subagent:<id> renders the chat's composer, its queued prompt and its pull request bar (Leo, 2026-10-20). The auto-open test covers the default-off hook on a subagent that starts while the chat shows. Agent-Session: 01a15ba9-9614-7832-8e39-d8ca0407c193 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…s composer, queue or PR bars A subagent pane is a tab on the chat's session, so it drew the chat's composer: its queued prompt, its pull request bar, the agents pill, and a prompt typed there went to the chat. A pane opened on subagent:<id> now ends in one line naming the chat that takes messages. Agent-Session: 01a15ba9-9614-7832-8e39-d8ca0407c193 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
owner: 01a15ba9-95eb-79d2-bdfd-103d2b903ed9 on cosmic-gray |
|
cmux status (one comment, edited in place; each line is updated by the job that owns it) Review App of this head (app.zip, kept 1 day)
Probably yours: CI failed on
Failures:
Matched log linesNot re-run automatically: Written by red: web / Web status; base red: the same failure on the base 6143f81; does not block
Agents: Tour of |
|
|
|
Bead |
|
Found 28 test failures on Blacksmith runners: Failures
...and 18 more test failures. View all on Blacksmith
|
|
Owned by projects-88 on cosmic-gray · session |
…nt-pane-own-state-v2
…mux's session list now carries the queue Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Agent-Session: https://cmux.com/deeplink/agent?harness=claude&session=01a15d18-aabc-7850-af29-f0655b1d2a1a&host=cosmic-gray
…p or Sources + there "Subagent of", a branch pill or another harness shows a chat in the pane: that chat's composer, queue and bars come back. The header's pull request chip and the summary's Sources + are the chat's and stay off while the pane shows the subagent. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Agent-Session: https://cmux.com/deeplink/agent?harness=claude&session=01a15d18-aabc-7850-af29-f0655b1d2a1a&host=cosmic-gray
|
merge-audit: #22986 merged at 08c03a5 without no SHIP review receipt on the head, and its revert could not be opened (abort and get back to the state before "git revert", |
…s SubagentPaneFooter) (#23218) #22986 added SubagentPaneFooter without a gallery entry, so gallery-coverage fails on feat-cmux-next. The subagents entry gets an own-pane variant: a subagent: reveal opens the child's view read only, the footer in place of the composer. Agent-Session: https://cmux.com/deeplink/agent?harness=claude&session=01a15d18-aabc-7850-af29-f0655b1d2a1a&host=cosmic-gray Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
|
Shipped in:
|
A subagent's own pane now shows the subagent read only. It no longer draws the chat's composer, queued prompts, pull request bars or agents pill. Leo's screenshot (2026-10-20) showed a reviewer subagent's pane with the chat's queued "this is a bit spammy" and its #663 bar. That pane is a tab on the chat's own acpmux session, so the bottom of the page was the chat's: a prompt typed there went to the chat. The pane now ends in one line, "Read only · messages go to ".
The same screenshot showed the subagent opening a pane by itself. Base doesn't do that since #22615 (Austin, default off), which landed after the build Leo was likely running. Every other path that opens a subagent pane is a click. This PR adds a behavior test for that default: a subagent the chat starts opens no pane, and with the switch on it opens exactly one.
Changes
App.tsx: a pane opened onsubagent:<id>(the app's reveal) setsownSubagentPane, and the bottom stack rendersSubagentPaneFooterinstead of the composer stack. A chat pane that shows a subagent in place (a host that opens no panes) keeps its composer.subagents/SubagentPaneFooter.tsx(new) andsubagents/subagents.css: the read-only line.Localizable.xcstrings: newsubagents.paneReadOnly, in 21 locales.ComposerQueue.tsx, which prompt-queue-edit owns) or to the composer's send mode (which steer-default is changing).Testing
test/subagent-pane-own-state.test.ts(browser lane,bun testfromwebviews/). The chat's pane keeps its composer, queue and PR bar. After thesubagent:a1reveal, the pane has no composer, no queued row and no PR bar, and shows the read-only line. Expected red at e480620 (test only) and green at the head. CI's browser lane is the first run.test/subagent-panes-auto-open.test.tsx: the default-off hook on a subagent that starts while the chat shows. It passes on base too: base already behaves this way, and this pins it.Observed / Not run
prepush-gate.pyand the pre-push web lint passed.chat.openTabrefuses the pane's own session). A restored subagent tab also comes back as a full chat, because thesubagent:reveal isn't saved with the tab.Changelog
Agent session: cosmic-gray
🤖 Generated with Claude Code
Need help on this PR? Tag
@codesmith-botwith what you need.Summary by cubic
A subagent's own pane now shows the subagent read only, without the chat's composer, queued prompts, or pull request bars.
Previously, a pane opened on
subagent:<id>was a tab on the chat's session, so it drew the chat's composer, queue, and PR dock — and a prompt typed there went to the chat. The pane now ends in a single line, "Read only · messages go to ".The read-only state applies only while the pane shows a subagent: once it shows a chat ("Subagent of", a branch pill, or another harness), that chat's composer, queue, and PR bars come back. While a subagent is shown, the header's PR chip and the summary's Sources + stay off.
Changes
subagent:<id>setsownSubagentPane; the bottom stack rendersSubagentPaneFooterinstead of the composer stack while it shows a subagent. A chat pane showing a subagent in place keeps its composer.pullRequestChip) and the Sources + attach button are disabled in the pane's read-only state.subagents.paneReadOnlylocalization in 21 locales.Written for commit 08c03a5. Summary will update on new commits.