Repository navigation
Agent chat: a subagent nothing named reads by its kind or as Subagent, never by an id; ids go in the tooltip - #24280
teamleaderleo wants to merge 7 commits into
Conversation
Bugbot needs on-demand usage enabledBugbot 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. |
|
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: cmux-next checks (god files, concurrency, crash safety, l10n); no finished base run on 749d735 to compare; do not merge until green; see lane-rules Gallery before/after for
States
Pick other states with a |
|
Found 51 test failures on Blacksmith runners: Failures
...and 41 more test failures. View all on Blacksmith: run 39923325970, run 39923325851, run 39923326047
|
|
Bead |
382a127 to
09beb7c
Compare
Bugbot needs on-demand usage enabledBugbot 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. |
|
Owned by nx-chat on big-red · took over from session 01a16030 |
|
Review (codex xhigh, correctness first): BLOCK at 09beb7c
I reviewed only commit |
09beb7c to
cd44721
Compare
cd44721 to
edcdc35
Compare
|
Review (codex xhigh, correctness first): BLOCK at edcdc35
The prior raw/short-id leak is fixed: row, tray, summary, Inspector, restart, and done-line paths use the safe display name/plain localized endings; |
|
Review (codex xhigh, correctness first): SHIP at 9d0b854 No blocking findings. The prior nested-parent issue is fixed: |
9d0b854 to
fc2a53a
Compare
…ent-row-title # Conflicts: # webviews/src/agent-session/acpmux/subagents/subagentFold.ts
|
Review (codex xhigh, correctness first): SHIP at 0e14b22
Read only the two diffs; no checkout, build, or tests. |
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Agent-Session: https://cmux.com/deeplink/agent?harness=claude&session=01a16030-bf28-7072-b1f6-b83bbd0beacc&host=cosmic-gray
Bugbot needs on-demand usage enabledBugbot 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. |
|
Review (codex xhigh, correctness first): SHIP at 0adee35 Only test formatting changed; behavior is unchanged. Codex xhigh shipped 0e14b22 (comment above). 0adee35 is that head plus one |
|
|
|
|
|
|
|
Orphaned: no activity for 66 h, and no lane holds a lease on it. The orphan sweep could not merge |
|
Stale (13d, conflicts); rebuild fresh from feat-cmux-next if still wanted |
|
Superseded by the landed subagent-kind implementation (commit 3f9cd6c); this stale PR is already closed. |
![Fix with [code]smith](https://pr-comments-assets.blacksmith.sh/codesmith/fix-with-codesmith-light-3x.png)
Leo-ask: ask-e6e2477545
Leo: "this needs to be rendered better... it is now right". A subagent's end line read
Subagent finished: 7dc1f162-…/toolu_01H9Jk66ek2xu2m2SaOS09M1 · 1…: the raw session and tool-use ids, cut off.Stacked on #24051 (tp/subagent-stopped-reason): this PR's base branch is feat-cmux-next, so until #24051 lands the diff shows both; this PR's own commits are the top two.
Root cause
subagents/subagentFold.tsnamed a subagentchange.name ?? change.task ?? change.id. A subagent whose first record in the pane carried no name (a page of history that starts after its spawn; a harness that names none) got its raw<session>/<tool call>id as its name for good.What changes
cmux-tui/crates/acpmux/src/subagents.rs): a state change or progress record that names no subagent now carries the name it was spawned with (or last given), so a client reading only newer records never falls back to the id. Rust test:a_nameless_state_update_carries_the_spawned_name.unnamedand has no name. Its rows call it by its kind (Claude's subagent_type, "Explore"), else "Subagent" (tray, summary card, Inspector, pill, group). It is never called by an id, short or raw. A later record with a real name, or the spawning Agent call'sdescription(rawInput), names it. A named subagent keeps its name.subagents.endedPlain.*).conversation/agentNames.ts).subagents.unnamed("Subagent"),subagents.endedPlain.{completed,failed,cancelled,disconnected}.Tests (cmux16, at the head)
toolu_/call_, noa/bpath, no 6+ character word mixing letters and digits. The other new tests cover kind or "Subagent", agentNames skipping unnamed agents, and the Restart prompt for an unnamed subagent.vp checkfinds no type errors, and the xcstrings lint passes.cargo test -p acpmux --lib subagents: 13 passed (the Rust code is unchanged since that run).Before / after (gallery, synthetic fixtures)
New variant
agent-pane.subagent-tray#unnamed-line. Before: the line drew the raw id, as in Leo's report above (the variant is new, so the base has no frame of it). After, from top to bottom: a named subagent, an unnamed one with a kind, and an unnamed one with neither:Compare page: https://cmux-lawrences-mac-mini.tail137216.ts.net:18796/compare/tp-subagent-row-title/?entry=agent-pane.subagent-tray
risk:medium (behaviour change). An independent Codex xhigh review via acpmux posts its receipt at the head.
Agent session: cosmic-gray
🤖 Generated with Claude Code