diff --git a/codex-rs/tui/src/bottom_pane/chat_composer.rs b/codex-rs/tui/src/bottom_pane/chat_composer.rs index e2c9db7521..82d37a0b79 100644 --- a/codex-rs/tui/src/bottom_pane/chat_composer.rs +++ b/codex-rs/tui/src/bottom_pane/chat_composer.rs @@ -2568,10 +2568,6 @@ impl ChatComposer { } let cmd = slash_commands::find_builtin_command(name, self.builtin_command_flags())?; - - if !cmd.supports_inline_args() { - return None; - } if self.reject_slash_command_if_unavailable(cmd) { return Some(InputResult::None); } diff --git a/codex-rs/tui/src/chatwidget.rs b/codex-rs/tui/src/chatwidget.rs index c8d9e3b61b..eb99106f3a 100644 --- a/codex-rs/tui/src/chatwidget.rs +++ b/codex-rs/tui/src/chatwidget.rs @@ -4738,10 +4738,6 @@ impl ChatWidget { args: String, _text_elements: Vec, ) { - if !cmd.supports_inline_args() { - self.dispatch_command(cmd); - return; - } if !cmd.available_during_task() && self.bottom_pane.is_task_running() { let message = format!( "'/{}' is disabled while a task is in progress.", @@ -4753,12 +4749,12 @@ impl ChatWidget { } let trimmed = args.trim(); + if trimmed.is_empty() { + self.dispatch_command(cmd); + return; + } match cmd { SlashCommand::Fast => { - if trimmed.is_empty() { - self.dispatch_command(cmd); - return; - } match trimmed.to_ascii_lowercase().as_str() { "on" => self.set_service_tier_selection(Some(ServiceTier::Fast)), "off" => self.set_service_tier_selection(/*service_tier*/ None), @@ -4860,7 +4856,13 @@ impl ChatWidget { }); self.bottom_pane.drain_pending_submission_state(); } - _ => self.dispatch_command(cmd), + _ => { + let usage = cmd.usage_lines().join(" | "); + self.add_error_message(format!( + "'/{}' does not accept inline arguments. Usage: {usage}", + cmd.command() + )); + } } } diff --git a/codex-rs/tui_app_server/src/bottom_pane/chat_composer.rs b/codex-rs/tui_app_server/src/bottom_pane/chat_composer.rs index 3055ef9ce1..4be60893f5 100644 --- a/codex-rs/tui_app_server/src/bottom_pane/chat_composer.rs +++ b/codex-rs/tui_app_server/src/bottom_pane/chat_composer.rs @@ -2582,10 +2582,6 @@ impl ChatComposer { } let cmd = slash_commands::find_builtin_command(name, self.builtin_command_flags())?; - - if !cmd.supports_inline_args() { - return None; - } if self.reject_slash_command_if_unavailable(cmd) { return Some(InputResult::None); } diff --git a/codex-rs/tui_app_server/src/chatwidget.rs b/codex-rs/tui_app_server/src/chatwidget.rs index 0d53ae3f7a..1ecd842eef 100644 --- a/codex-rs/tui_app_server/src/chatwidget.rs +++ b/codex-rs/tui_app_server/src/chatwidget.rs @@ -4885,10 +4885,6 @@ impl ChatWidget { args: String, _text_elements: Vec, ) { - if !cmd.supports_inline_args() { - self.dispatch_command(cmd); - return; - } if !cmd.available_during_task() && self.bottom_pane.is_task_running() { let message = format!( "'/{}' is disabled while a task is in progress.", @@ -4900,12 +4896,12 @@ impl ChatWidget { } let trimmed = args.trim(); + if trimmed.is_empty() { + self.dispatch_command(cmd); + return; + } match cmd { SlashCommand::Fast => { - if trimmed.is_empty() { - self.dispatch_command(cmd); - return; - } match trimmed.to_ascii_lowercase().as_str() { "on" => self.set_service_tier_selection(Some(ServiceTier::Fast)), "off" => self.set_service_tier_selection(/*service_tier*/ None), @@ -5004,7 +5000,13 @@ impl ChatWidget { }); self.bottom_pane.drain_pending_submission_state(); } - _ => self.dispatch_command(cmd), + _ => { + let usage = cmd.usage_lines().join(" | "); + self.add_error_message(format!( + "'/{}' does not accept inline arguments. Usage: {usage}", + cmd.command() + )); + } } }