From b7169bc4e10a70048e1426af8679b2f2db2e438d Mon Sep 17 00:00:00 2001 From: l0ng-ai <24760907+l0ng-ai@users.noreply.github.com> Date: Thu, 1 Oct 2026 12:37:36 +0800 Subject: [PATCH] fix(terminal): offer Goose's commands in the composer's menu MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Goose takes typed slash commands — /model, /mode, /compact, /clear and the rest of what its /help lists — but the box's `/` menu was empty for it. It now lists them, as Goose 1.52 names them. --- src/terminal/composer.rs | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/src/terminal/composer.rs b/src/terminal/composer.rs index 5b529ccb..5d43b275 100644 --- a/src/terminal/composer.rs +++ b/src/terminal/composer.rs @@ -986,8 +986,22 @@ fn builtin_commands(agent: CLIAgent) -> &'static [(&'static str, &'static str)] ("/settings", "Open settings"), ("/quit", "Quit Grok Build"), ], - // Amp has no typed commands: `/` on an empty input opens its command - // palette, which a message cannot drive. + CLIAgent::Goose => &[ + ("/model", "Show or switch the model"), + ("/mode", "Set the mode: auto, approve, smart_approve, chat"), + ("/compact", "Compact the conversation"), + ("/clear", "Clear the chat history"), + ("/new", "Start a fresh session"), + ("/status", "Show model, provider, mode and token usage"), + ("/skills", "List or enable skills"), + ("/prompts", "List available prompts"), + ("/goal", "Set a goal to satisfy before finishing"), + ("/doctor", "Check the Goose setup"), + ("/help", "Show the commands"), + ("/exit", "Exit the session"), + ], + // Amp and Crush have no typed commands: `/` on an empty input opens + // their command palette, which a message cannot drive. _ => &[], } } @@ -3670,6 +3684,7 @@ mod tests { CLIAgent::Qwen, CLIAgent::CodeBuddy, CLIAgent::Kimi, + CLIAgent::Goose, ] { let names: Vec<&str> = builtin_commands(agent).iter().map(|(n, _)| *n).collect(); for (i, name) in names.iter().enumerate() {