Compare commits

...

1 Commits

Author SHA1 Message Date
Ahmed Ibrahim
3a1cd0b0ec Add exit slash command alias for quit 2025-10-30 15:50:18 -07:00
3 changed files with 30 additions and 6 deletions

View File

@@ -657,7 +657,7 @@ impl ChatWidget {
}
fn on_shutdown_complete(&mut self) {
self.app_event_tx.send(AppEvent::ExitRequest);
self.request_exit();
}
fn on_turn_diff(&mut self, unified_diff: String) {
@@ -1229,8 +1229,8 @@ impl ChatWidget {
SlashCommand::Approvals => {
self.open_approvals_popup();
}
SlashCommand::Quit => {
self.app_event_tx.send(AppEvent::ExitRequest);
SlashCommand::Quit | SlashCommand::Exit => {
self.request_exit();
}
SlashCommand::Logout => {
if let Err(e) = codex_core::auth::logout(
@@ -1239,7 +1239,7 @@ impl ChatWidget {
) {
tracing::error!("failed to logout: {e}");
}
self.app_event_tx.send(AppEvent::ExitRequest);
self.request_exit();
}
SlashCommand::Undo => {
self.app_event_tx.send(AppEvent::CodexOp(Op::Undo));
@@ -1593,6 +1593,10 @@ impl ChatWidget {
}
}
fn request_exit(&self) {
self.app_event_tx.send(AppEvent::ExitRequest);
}
fn request_redraw(&mut self) {
self.frame_requester.schedule_frame();
}

View File

@@ -851,6 +851,24 @@ fn slash_init_skips_when_project_doc_exists() {
);
}
#[test]
fn slash_quit_requests_exit() {
let (mut chat, mut rx, _op_rx) = make_chatwidget_manual();
chat.dispatch_command(SlashCommand::Quit);
assert_matches!(rx.try_recv(), Ok(AppEvent::ExitRequest));
}
#[test]
fn slash_exit_requests_exit() {
let (mut chat, mut rx, _op_rx) = make_chatwidget_manual();
chat.dispatch_command(SlashCommand::Exit);
assert_matches!(rx.try_recv(), Ok(AppEvent::ExitRequest));
}
#[test]
fn slash_undo_sends_op() {
let (mut chat, mut rx, _op_rx) = make_chatwidget_manual();

View File

@@ -25,6 +25,7 @@ pub enum SlashCommand {
Mcp,
Logout,
Quit,
Exit,
Feedback,
Rollout,
TestApproval,
@@ -40,7 +41,7 @@ impl SlashCommand {
SlashCommand::Compact => "summarize conversation to prevent hitting the context limit",
SlashCommand::Review => "review my current changes and find issues",
SlashCommand::Undo => "ask Codex to undo a turn",
SlashCommand::Quit => "exit Codex",
SlashCommand::Quit | SlashCommand::Exit => "exit Codex",
SlashCommand::Diff => "show git diff (including untracked files)",
SlashCommand::Mention => "mention a file",
SlashCommand::Status => "show current session configuration and token usage",
@@ -75,7 +76,8 @@ impl SlashCommand {
| SlashCommand::Status
| SlashCommand::Mcp
| SlashCommand::Feedback
| SlashCommand::Quit => true,
| SlashCommand::Quit
| SlashCommand::Exit => true,
SlashCommand::Rollout => true,
SlashCommand::TestApproval => true,
}