fix(cli): prevent Ctrl+D exit when input buffer is not empty (#23306)

Co-authored-by: wtanaka.com <wtanaka@users.noreply.github.com>
This commit is contained in:
Wesley Tanaka
2026-03-23 17:13:13 -07:00
committed by GitHub
parent a7aa6bd6cf
commit a7bed2cc4c
2 changed files with 6 additions and 7 deletions

View File

@@ -2157,13 +2157,8 @@ describe('AppContainer State Management', () => {
expect(mockHandleSlashCommand).not.toHaveBeenCalled();
pressKey('\x04'); // Ctrl+D
// Now count is 2, it should quit.
expect(mockHandleSlashCommand).toHaveBeenCalledWith(
'/quit',
undefined,
undefined,
false,
);
// It should still not quit because buffer is non-empty.
expect(mockHandleSlashCommand).not.toHaveBeenCalled();
unmount();
});

View File

@@ -1702,6 +1702,10 @@ Logging in with Google... Restarting Gemini CLI to continue.
handleCtrlCPress();
return true;
} else if (keyMatchers[Command.EXIT](key)) {
// If the input field is non-empty, do not exit.
if (bufferRef.current.text.length > 0) {
return false;
}
handleCtrlDPress();
return true;
} else if (keyMatchers[Command.SUSPEND_APP](key)) {