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
reacted with thumbs up emoji reacted with thumbs down emoji reacted with laugh emoji reacted with hooray emoji reacted with confused emoji reacted with heart emoji reacted with rocket emoji reacted with eyes emoji
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
摘要
Windows 下 Reasonix 桌面版(v1.23.0,installer 安装)每次启动都会
短暂闪出控制台窗口(通常两次)。
环境
复现
根因(已追踪)
由 v1.23.0 新增的"工作区实时刷新"(关联 #8102)引入:
有界文件系统/Git 监视。启动时桌面端为工作区初始化 Git 监视器,
会 spawn 一串 git.exe 探测命令(rev-parse --git-dir /
--git-common-dir),每次都闪现一个控制台窗口。
闪窗不是更新器(正常启动时不会 spawn reasonix-update-helper.exe)。
启动时捕获的进程追踪——每次 git.exe 都会带一个 conhost.exe
子进程,那个 conhost 就是可见的闪窗本体:
11:14:39.857 git.exe (parent=reasonix-desktop) git -C D:\ds\chat rev-parse --git-dir
11:14:39.859 conhost.exe (该 git 的子进程)
11:14:39.865 git.exe (parent=reasonix-desktop)
11:14:39.867 conhost.exe (子进程)
11:14:40.714 git.exe (parent=reasonix-desktop) git -C D:\ds\chat rev-parse --git-common-dir
11:14:40.716 conhost.exe (子进程)
11:14:56.144 git.exe (parent=reasonix-desktop) + 子 git.exe + conhost
(首次修订协调,启动后约 17 秒)
为什么闪:git.exe 是控制台子系统程序。父进程
(reasonix-desktop.exe)是 GUI 子系统进程,且子进程 spawn 时未带
CREATE_NO_WINDOW(也没有 STARTF_USESHOWWINDOW/SW_HIDE),Windows
为每次 git 调用分配全新的控制台宿主(conhost.exe)→ 可见窗口闪烁。
期望行为
子进程(git.exe 及其他控制台子系统辅助程序,如
reasonix-update-helper.exe / reasonix-cli.exe)应带 CREATE_NO_WINDOW
(Go: exec.Cmd.SysProcAttr 中设置 syscall.CREATE_NO_WINDOW)spawn,
不出现任何控制台窗口。插件 MCP 服务器已用 pythonw.exe(GUI 子系统)
规避此问题,Git 监视的探测路径被遗漏了。
备注
如上方追踪中启动后约 17 秒的那次)。
All reactions