Commit graph

33 commits

Author SHA1 Message Date
tanzhenxin
d6f5d9997f fix(cli): prevent terminal response leakage on high-latency SSH
When SSHing into a VM with network latency, terminal responses to startup
queries (kitty protocol detection) can arrive after the 200ms timeout expires.
The original code immediately restored raw mode, causing late responses to
leak through as visible text.

This fix adds two layers of defense:
1. Drain handler in kittyProtocolDetector: Adds a 100ms window after timeout
   to silently consume late-arriving responses
2. Regex filter in KeypressContext: Catches any terminal response patterns
   that make it past the detection phase, regardless of timing

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-03-27 12:09:37 +00:00
DragonnZhang
7886ec6c8d fix(keypress): handle unsupported Kitty CSI-u keys and recover plain text
- Add helper functions for better code organization (createPrintableKey,
  getCompleteCsiSequenceLength, parsePlainTextPrefix)
- Drop unsupported Kitty CSI-u keys without blocking subsequent input
- Recover plain text that arrives in same chunk after unsupported CSI-u keys
- Add comprehensive tests for edge cases (CAPS_LOCK, event metadata variants)

Improves robustness of Kitty keyboard protocol parsing by gracefully
handling unsupported key codes and ensuring plain text input is not lost.

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-03-17 14:02:41 +08:00
DragonnZhang
6d112a1c0e fix(keyboard): add comments for kitty keypad private-use keycodes 2026-03-06 17:10:15 +08:00
zach
8a0189c32d fix(keyboard): handle kitty keypad private-use keycodes 2026-03-06 06:38:43 +00:00
tanzhenxin
b0d929ec4c
Merge pull request #1827 from QwenLM/feat/printable-csi-u-keys
feat: add support for printable CSI-u keys in KeypressContext
2026-03-06 11:56:47 +08:00
DragonnZhang
cdcdf85dcd feat: add support for printable CSI-u keys in KeypressContext
Add handling for printable CSI-u keys (including space) to ensure they
behave like regular character input. This allows downstream text inputs
to receive the literal character when using Kitty protocol.

- Parse CSI-u space as space key with literal sequence
- Parse CSI-u printable letters as literal input
- Handle keyCode range 32-0x10ffff (excluding 127 DEL)

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-02-13 15:29:09 +08:00
LaZzyMan
56030f9291 Merge branch 'main' into feat/image-attachment 2026-02-10 14:16:21 +08:00
pomelo
a6885ccb4d
Merge pull request #1713 from QwenLM/fix/enter-submit
feat(paste): add large paste placeholder and fix enter-submit on macOS
2026-02-06 17:44:14 +08:00
tanzhenxin
c7b681ef5d feat(paste): add large paste placeholder and fix enter-submit on macOS
- Add large paste placeholder feature: when pasting text > 1000 chars,
  show a placeholder like '[Pasted Content 1500 chars]' instead of the
  full content. The full text is stored and expanded on submit.

- Fix enter-submit on macOS: only apply recentPasteTime protection when
  pasteWorkaround is enabled (Windows or Node < 20). On macOS/Linux with
  modern Node, bracketed paste markers work reliably so the protection is
  unnecessary and caused the first Enter after paste to be ignored.

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-02-04 15:20:45 +08:00
LaZzyMan
1050163804 fix paste image on windows 2026-02-02 17:07:39 +08:00
LaZzyMan
b28e5c4c0f fix ctrl+v on win 2026-02-02 11:45:08 +08:00
LaZzyMan
9a3e0bb72b feat: support for pasting image 2026-01-26 15:17:26 +08:00
tanzhenxin
7995c65571 feat(cli): migrate console calls to debugLogger and stdioHelpers (M3 Phase 7-9)
Route CLI console.* calls to structured logging:
- Debug/internal diagnostics → debugLogger (logfile)
- User-facing output → writeStdoutLine/writeStderrLine/clearScreen (stdioHelpers)
- Add stdioHelpers.ts with writeStdoutLine, writeStderrLine, clearScreen
- Migrate pre-session files (gemini.tsx, sandbox.ts, config.ts) to stdioHelpers
- Migrate extension/MCP commands to stdioHelpers
- Migrate non-interactive session/control to debugLogger
- Migrate UI hooks and components to debugLogger
2026-01-26 15:02:37 +08:00
tanzhenxin
eb95c131be
Sync upstream Gemini-CLI v0.8.2 (#838) 2025-10-23 09:27:04 +08:00
Mingholy
9a56560eb4
fix: arrow keys on windows (#661)
Some checks are pending
Qwen Code CI / Lint (GitHub Actions) (push) Waiting to run
Qwen Code CI / Lint (Javascript) (push) Waiting to run
Qwen Code CI / Lint (Shell) (push) Waiting to run
Qwen Code CI / Lint (YAML) (push) Waiting to run
Qwen Code CI / Lint (push) Blocked by required conditions
Qwen Code CI / Test (push) Blocked by required conditions
Qwen Code CI / Test-1 (push) Blocked by required conditions
Qwen Code CI / Test-2 (push) Blocked by required conditions
Qwen Code CI / Test-3 (push) Blocked by required conditions
Qwen Code CI / Test-4 (push) Blocked by required conditions
Qwen Code CI / Test-5 (push) Blocked by required conditions
Qwen Code CI / Test-6 (push) Blocked by required conditions
Qwen Code CI / Test-7 (push) Blocked by required conditions
Qwen Code CI / Test-8 (push) Blocked by required conditions
Qwen Code CI / Post Coverage Comment (push) Blocked by required conditions
Qwen Code CI / CodeQL (push) Waiting to run
E2E Tests / E2E Test (Linux) - sandbox:docker (push) Waiting to run
E2E Tests / E2E Test (Linux) - sandbox:none (push) Waiting to run
E2E Tests / E2E Test (Linux) - sandbox:docker-1 (push) Waiting to run
E2E Tests / E2E Test (Linux) - sandbox:none-1 (push) Waiting to run
E2E Tests / E2E Test (Linux) - sandbox:docker-2 (push) Waiting to run
E2E Tests / E2E Test (Linux) - sandbox:none-2 (push) Waiting to run
E2E Tests / E2E Test - macOS (push) Waiting to run
2025-09-19 19:44:57 +08:00
Mingholy
d3476a2d47 fix: lint errors 2025-09-16 20:19:44 +08:00
Mingholy
9df193ca42 Merge branch 'main' into chore/sync-gemini-cli-v0.3.4 2025-09-16 19:51:32 +08:00
tanzhenxin
35efa9f04a fix: try to fix test case failures on Windows 2025-09-16 14:59:03 +08:00
tanzhenxin
c093bed38c fix: add test code again 2025-09-16 14:04:07 +08:00
tanzhenxin
b9fd4737c9 fix: add debounce timer for paste event 2025-09-16 11:25:33 +08:00
tanzhenxin
3ad533c50b fix: test fix again 2025-09-15 20:13:10 +08:00
tanzhenxin
6af52e74ab fix: test fix again 2025-09-15 16:23:10 +08:00
tanzhenxin
6dad6b7f31 fix: test fix 2025-09-15 16:03:51 +08:00
mingholy.lmh
14ea33063f Merge tag 'v0.3.0' into chore/sync-gemini-cli-v0.3.0 2025-09-11 16:26:56 +08:00
tanzhenxin
2572faf726
# 🚀 Sync Gemini CLI v0.2.1 - Major Feature Update (#483)
Some checks are pending
Qwen Code CI / Lint (GitHub Actions) (push) Waiting to run
Qwen Code CI / Lint (Javascript) (push) Waiting to run
Qwen Code CI / Lint (Shell) (push) Waiting to run
Qwen Code CI / Lint (YAML) (push) Waiting to run
Qwen Code CI / Lint (push) Blocked by required conditions
Qwen Code CI / Test (push) Blocked by required conditions
Qwen Code CI / Post Coverage Comment (push) Blocked by required conditions
Qwen Code CI / CodeQL (push) Waiting to run
E2E Tests / E2E Test (Linux) - sandbox:docker (push) Waiting to run
E2E Tests / E2E Test (Linux) - sandbox:none (push) Waiting to run
E2E Tests / E2E Test - macOS (push) Waiting to run
2025-09-01 14:48:55 +08:00
Pascal Birchler
0f031a7f89
Explict imports & exports with type modifier (#3774) 2025-08-25 22:04:53 +00:00
Abhi
db0bf2b71f
refactor(cli): Improve Kitty keycode handling and tests (#7046) 2025-08-25 21:14:07 +00:00
Pascal Birchler
ee4feea006
chore: consistently import node modules with prefix (#3013)
Co-authored-by: N. Taylor Mullen <ntaylormullen@google.com>
2025-08-25 20:11:27 +00:00
Abhi
41ece1a8b7
fix(keyboard): Implement Tab and Backspace handling for Kitty Protocol (#7006) 2025-08-25 18:41:10 +00:00
Deepankar Sharma
53067fda74
Add support for debug logging of keystrokes to investigate #6227 (#6844)
Co-authored-by: Arya Gummadi <aryagummadi@google.com>
2025-08-22 23:31:55 +00:00
Jacob Richman
2143731f6e
fix(paste) incorrect handling of \\\n in pastes (#6532) 2025-08-19 20:41:08 +00:00
Deepankar Sharma
f5a5cdd973
fix(input): Handle numpad enter key in kitty protocol terminals (#6341)
Co-authored-by: Jacob Richman <jacob314@gmail.com>
2025-08-15 19:30:57 +00:00
Jacob Richman
bd5e49c5ff
fix(input) Resolve cases where escape was broken (#6304) 2025-08-15 17:54:00 +00:00