disallow some slash commands while a task is running (#2792)

/new, /init, /models, /approvals, etc. don't work correctly during a
turn. disable them.
This commit is contained in:
Jeremy Rose
2025-08-28 10:15:59 -07:00
committed by GitHub
parent 4e9ad23864
commit e5611aab07
2 changed files with 27 additions and 1 deletions

View File

@@ -751,12 +751,20 @@ impl ChatWidget {
}
fn dispatch_command(&mut self, cmd: SlashCommand) {
if !cmd.available_during_task() && self.bottom_pane.is_task_running() {
let message = format!(
"'/'{}' is disabled while a task is in progress.",
cmd.command()
);
self.add_to_history(history_cell::new_error_event(message));
self.request_redraw();
return;
}
match cmd {
SlashCommand::New => {
self.app_event_tx.send(AppEvent::NewSession);
}
SlashCommand::Init => {
// Guard: do not run if a task is active.
const INIT_PROMPT: &str = include_str!("../prompt_for_init_command.md");
self.submit_text_message(INIT_PROMPT.to_string());
}