Replies: 1 comment
|
已确认并已在 master 上修复。你报告的正中 dsh-subprocess-local 的 spawn()/taskkill 在 Windows 上未设置 windowsHide, 导致重启 Harness 时弹出空白 CMD 窗口。 修复提交(均在 master):
现状核实 (c291e79): packages/subprocess/subprocess-local/src/spawn.ts:659 为 获取修复: 更新到最新版 (npm latest=0.1.5-rc.1) 或拉取 master 重建。注意: 同族的 CLI 插件管理半侧 (apps/cli/src/plugin.ts:134-138 的 spawnSync) 仍未带 windowsHide, 对应 #4024, 尚未修复。 |
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
环境
@deepseek-ai/dsh0.1.0-rc.7,dsh-subprocess-local0.1.0-rc.7)现象
Electron 主进程以
windowsHide: true隐藏启动 harness 的 node 进程(进程本身没有可见控制台)。随后 harness 内通过ctx.subprocess.spawn()/spawnSync("taskkill", ...)生成的控制台程序(pwsh、bash、taskkill、node等)如果没带windowsHide,Windows 会给它们新建一个可见的控制台窗口。表现最明显的是:每次重启/停止 Harness 时,清理进程树的taskkill /T /F(spawnSync,同步执行)会弹出一个短暂停留的空白 CMD 窗口;工具子进程调用也会闪窗。定位
packages/subprocess/subprocess-local/src/lib/spawn.ts(打包产物lib/index.js):spawnSubprocess()中:缺少
windowsHide: true(detached仅对 POSIX 生效,Windows 分支没有任何隐藏控制台的设置)。taskkillProcessTree()中:缺少
windowsHide: true—— 这是重启/停止时弹空白窗口的直接来源。修复建议
两处 spawn 选项各加一行
windowsHide: true(POSIX 上该选项被 Node 忽略,无副作用):影响面
所有走
ctx.subprocess.spawn()的执行器:dsh-bash-local、dsh-pwsh-local、dsh-tool-fs-search(ripgrep)等;以及任何进程树清理(taskkill)路径。备注
已在本机安装副本上验证修复有效(重启后不再弹窗)。本反馈仅为上游跟踪,补丁会被应用更新覆盖。
All reactions