From d58620c852c5ff5cfd65959d80de265c225e59ba Mon Sep 17 00:00:00 2001 From: Ahmed Ibrahim Date: Fri, 13 Mar 2026 12:08:38 -0700 Subject: [PATCH] Use subagents naming in the TUI (#14618) - rename user-facing TUI multi-agent wording to subagents - rename the surfaced slash command to `subagents` and update tests/snapshots Co-authored-by: Codex --- codex-rs/core/src/features.rs | 6 +++--- codex-rs/tui/src/app.rs | 4 ++-- codex-rs/tui/src/bottom_pane/command_popup.rs | 2 +- codex-rs/tui/src/chatwidget.rs | 8 ++++---- ...tui__chatwidget__tests__multi_agent_enable_prompt.snap | 6 +++--- codex-rs/tui/src/chatwidget/tests.rs | 2 +- codex-rs/tui/src/slash_command.rs | 1 + 7 files changed, 15 insertions(+), 14 deletions(-) diff --git a/codex-rs/core/src/features.rs b/codex-rs/core/src/features.rs index d0e4e290b..771fe8083 100644 --- a/codex-rs/core/src/features.rs +++ b/codex-rs/core/src/features.rs @@ -701,9 +701,9 @@ pub const FEATURES: &[FeatureSpec] = &[ id: Feature::Collab, key: "multi_agent", stage: Stage::Experimental { - name: "Multi-agents", - menu_description: "Ask Codex to spawn multiple agents to parallelize the work and win in efficiency.", - announcement: "NEW: Multi-agents can now be spawned by Codex. Enable in /experimental and restart Codex!", + name: "Subagents", + menu_description: "Ask Codex to spawn subagents to parallelize the work and move faster.", + announcement: "NEW: Subagents can now be spawned by Codex. Enable in /experimental and restart Codex!", }, default_enabled: false, }, diff --git a/codex-rs/tui/src/app.rs b/codex-rs/tui/src/app.rs index 88eb68072..9f1eaa795 100644 --- a/codex-rs/tui/src/app.rs +++ b/codex-rs/tui/src/app.rs @@ -1437,7 +1437,7 @@ impl App { .collect(); self.chat_widget.show_selection_view(SelectionViewParams { - title: Some("Multi-agents".to_string()), + title: Some("Subagents".to_string()), subtitle: Some(AgentNavigationState::picker_subtitle()), footer_hint: Some(standard_popup_hint_line()), items, @@ -5093,7 +5093,7 @@ mod tests { .map(|line| line.to_string()) .collect::>() .join("\n"); - assert!(rendered.contains("Multi-agent will be enabled in the next session.")); + assert!(rendered.contains("Subagents will be enabled in the next session.")); Ok(()) } diff --git a/codex-rs/tui/src/bottom_pane/command_popup.rs b/codex-rs/tui/src/bottom_pane/command_popup.rs index 1f774f2c7..0631f0362 100644 --- a/codex-rs/tui/src/bottom_pane/command_popup.rs +++ b/codex-rs/tui/src/bottom_pane/command_popup.rs @@ -351,7 +351,7 @@ mod tests { CommandItem::UserPrompt(_) => None, }) .collect(); - assert_eq!(cmds, vec!["model", "mention", "mcp", "multi-agents"]); + assert_eq!(cmds, vec!["model", "mention", "mcp"]); } #[test] diff --git a/codex-rs/tui/src/chatwidget.rs b/codex-rs/tui/src/chatwidget.rs index 7f3831a40..a217ee390 100644 --- a/codex-rs/tui/src/chatwidget.rs +++ b/codex-rs/tui/src/chatwidget.rs @@ -172,10 +172,10 @@ const PLAN_IMPLEMENTATION_TITLE: &str = "Implement this plan?"; const PLAN_IMPLEMENTATION_YES: &str = "Yes, implement this plan"; const PLAN_IMPLEMENTATION_NO: &str = "No, stay in Plan mode"; const PLAN_IMPLEMENTATION_CODING_MESSAGE: &str = "Implement the plan."; -const MULTI_AGENT_ENABLE_TITLE: &str = "Enable multi-agent?"; +const MULTI_AGENT_ENABLE_TITLE: &str = "Enable subagents?"; const MULTI_AGENT_ENABLE_YES: &str = "Yes, enable"; const MULTI_AGENT_ENABLE_NO: &str = "Not now"; -const MULTI_AGENT_ENABLE_NOTICE: &str = "Multi-agent will be enabled in the next session."; +const MULTI_AGENT_ENABLE_NOTICE: &str = "Subagents will be enabled in the next session."; const PLAN_MODE_REASONING_SCOPE_TITLE: &str = "Apply reasoning change"; const PLAN_MODE_REASONING_SCOPE_PLAN_ONLY: &str = "Apply to Plan mode override"; const PLAN_MODE_REASONING_SCOPE_ALL_MODES: &str = "Apply to global default and Plan mode override"; @@ -1759,7 +1759,7 @@ impl ChatWidget { }, SelectionItem { name: MULTI_AGENT_ENABLE_NO.to_string(), - description: Some("Keep multi-agent disabled.".to_string()), + description: Some("Keep subagents disabled.".to_string()), dismiss_on_select: true, ..Default::default() }, @@ -1767,7 +1767,7 @@ impl ChatWidget { self.bottom_pane.show_selection_view(SelectionViewParams { title: Some(MULTI_AGENT_ENABLE_TITLE.to_string()), - subtitle: Some("Multi-agent is currently disabled in your config.".to_string()), + subtitle: Some("Subagents are currently disabled in your config.".to_string()), footer_hint: Some(standard_popup_hint_line()), items, ..Default::default() diff --git a/codex-rs/tui/src/chatwidget/snapshots/codex_tui__chatwidget__tests__multi_agent_enable_prompt.snap b/codex-rs/tui/src/chatwidget/snapshots/codex_tui__chatwidget__tests__multi_agent_enable_prompt.snap index ac25d9526..0586c4db6 100644 --- a/codex-rs/tui/src/chatwidget/snapshots/codex_tui__chatwidget__tests__multi_agent_enable_prompt.snap +++ b/codex-rs/tui/src/chatwidget/snapshots/codex_tui__chatwidget__tests__multi_agent_enable_prompt.snap @@ -3,10 +3,10 @@ source: tui/src/chatwidget/tests.rs assertion_line: 6001 expression: popup --- - Enable multi-agent? - Multi-agent is currently disabled in your config. + Enable subagents? + Subagents are currently disabled in your config. › 1. Yes, enable Save the setting now. You will need a new session to use it. - 2. Not now Keep multi-agent disabled. + 2. Not now Keep subagents disabled. Press enter to confirm or esc to go back diff --git a/codex-rs/tui/src/chatwidget/tests.rs b/codex-rs/tui/src/chatwidget/tests.rs index fec627885..4162bbfe7 100644 --- a/codex-rs/tui/src/chatwidget/tests.rs +++ b/codex-rs/tui/src/chatwidget/tests.rs @@ -7429,7 +7429,7 @@ async fn multi_agent_enable_prompt_updates_feature_and_emits_notice() { other => panic!("expected InsertHistoryCell event, got {other:?}"), }; let rendered = lines_to_single_string(&cell.display_lines(120)); - assert!(rendered.contains("Multi-agent will be enabled in the next session.")); + assert!(rendered.contains("Subagents will be enabled in the next session.")); } #[tokio::test] diff --git a/codex-rs/tui/src/slash_command.rs b/codex-rs/tui/src/slash_command.rs index b4669645d..f3be1b4db 100644 --- a/codex-rs/tui/src/slash_command.rs +++ b/codex-rs/tui/src/slash_command.rs @@ -54,6 +54,7 @@ pub enum SlashCommand { Realtime, Settings, TestApproval, + #[strum(serialize = "subagents")] MultiAgents, // Debugging commands. #[strum(serialize = "debug-m-drop")]