You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
fix(terminal): Ctrl+C and the timeout cancel switch the active session, and can miss their target #1394
Activity
yoruuuchan commentedon Oct 22, 2026
认领。已核对现有工作,避免重复:
sendInterruptSignal/switchToSession,核心侧需要单独一个修复,不会和它们重叠。计划:
sendInputToSession/sendInterruptSignalToSession,直接解析目标会话的 pty writer 写入,不读写全局当前会话;无效 id 与未就绪会话返回明确结果(不写入任何其他会话)。附 JVM 回归测试。Terminal.sendInput/sendInterruptSignal(sessionId)去掉「先 switchToSession 再发送」的写法,直接调用定向入口;后台超时取消和control=ctrl+c改用该入口并处理返回结果。terminal子模块指针,并把:terminal:testDebugUnitTest接入 CI,让这组回归测试真正跑起来。核心 PR 会附在本 Issue 下,主仓库 PR 关联
Fixes #1394,目标分支dev。yoruuuchan commentedon Oct 22, 2026
修复与核心依赖 PR 已提交:
核心 PR 的 base 是
feat/performance-terminal-pid——dev当前的terminal指针指向该分支末端提交0458689,且该分支还没有对应 PR。若另开基于master的 PR,本分支的 diff 会把那条 pid 提交一并重放;指到master的 PR 合并后dev的指针会回退。该分支合入master后,这个修复 rebase 过去即可,改动只涉及TerminalManager.kt的输入路由和一个新文件。验证:
:terminal:testDebugUnitTest7 tests / 0 failures,:app:compileDebugKotlin通过,仓库卫生 / Markdown 链接 / 本地化三项检查 errors=0。多会话真机行为尚未验证,原因已写进 PR。