Skip to content

fix(terminal): Gemini 多行输入发送保留换行#92

Merged
lulu-sk merged 1 commit intomasterfrom
fix/terminal-gemini-multiline-newline
Jan 17, 2026
Merged

fix(terminal): Gemini 多行输入发送保留换行#92
lulu-sk merged 1 commit intomasterfrom
fix/terminal-gemini-multiline-newline

Conversation

@lulu-sk
Copy link
Copy Markdown
Owner

@lulu-sk lulu-sk commented Jan 17, 2026

Gemini CLI 将 \r 视为 return(默认提交),将 \n 视为 enter(默认不提交); 直接向 PTY 写入包含 \n 的文本会导致换行被吞。
另外 Gemini 对“非可信终端”在 paste 后约 40ms 内的回车有防误触保护,
需要延迟回车避免被当作换行插入。

  • TerminalManager:sendText/sendTextAndEnter 支持传入 providerId;Gemini 走显式 bracketed paste
  • Gemini:粘贴结束后延迟 70ms 再发送 \r(Enter),避免触发 40ms paste 保护窗口
  • App:发送时透传 providerId;异常兜底写入同样对 Gemini 走 bracketed paste +(可选)延迟回车
  • 新增 terminal-send 工具模块与单测,确保策略稳定

@lulu-sk lulu-sk self-assigned this Jan 17, 2026
Gemini CLI 将 \r 视为 return(默认提交),将 \n 视为 enter(默认不提交);
直接向 PTY 写入包含 \n 的文本会导致换行被吞。
另外 Gemini 对“非可信终端”在 paste 后约 40ms 内的回车有防误触保护,
需要延迟回车避免被当作换行插入。

- TerminalManager:sendText/sendTextAndEnter 支持传入 providerId;Gemini 走显式 bracketed paste
- Gemini:粘贴结束后延迟 70ms 再发送 \r(Enter),避免触发 40ms paste 保护窗口
- App:发送时透传 providerId;异常兜底写入同样对 Gemini 走 bracketed paste +(可选)延迟回车
- 新增 terminal-send 工具模块与单测,确保策略稳定

Signed-off-by: Lulu <58587930+lulu-sk@users.noreply.github.com>
@lulu-sk lulu-sk force-pushed the fix/terminal-gemini-multiline-newline branch from 77efc44 to d0af987 Compare January 17, 2026 13:51
@lulu-sk lulu-sk merged commit a79030b into master Jan 17, 2026
4 checks passed
@lulu-sk lulu-sk deleted the fix/terminal-gemini-multiline-newline branch January 17, 2026 13:55
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant