AI 代码追踪 git hook 拉起 GUI 主程序阻塞 git commit,空 pre-push 导致 git push 报错

Issue Description

Windows 上 Qoder Desktop 0.2.1 的「AI 代码追踪」向仓库注入 git hooks,导致两个严重问题:

  1. 每次执行 git commit,Qoder 主程序窗口被拉起至前台,且 git 命令被阻塞,必须手动退出 Qoder 后 commit 才继续完成。
  2. 每次执行 git push 报错 error: cannot spawn .git/hooks/pre-push: No such file or directory,必须加 --no-verify 才能推送。

Steps to Reproduce

  1. 安装 Qoder Desktop 0.2.1(Windows),打开任意 git 仓库。
  2. 终端执行 git commit → 观察 Qoder GUI 被拉起、命令卡住,退出 Qoder 后才继续。
  3. 终端执行 git push → 观察 cannot spawn .git/hooks/pre-push 报错。

Root Cause(已定位)

注入的 hooks 位于 .git/hooks/:

  • post-commit / post-checkout:启动完整 GUI 主程序 Qoder.exe .../qoder-agent-sdk/dist/_worker/qoder-worker-runtime.obf.mjs commit --hook --workspace <repo>(checkout 时为 ai-code-tracking-hook post-checkout)。Git 同步等待 hook 结束;Windows 将新进程窗口激活到前台,于是 Qoder 抢占屏幕且 git 被挂起。
  • pre-push:生成为 0 字节空文件、无 shebang。Git for Windows 执行空 hook 报 cannot spawn。
  • 手动删除 hooks 后短时间内被重新写入。
  • 配置键 settings.aiCodeTracking.installGitCommitHook 存在,但设置界面无对应开关、无文档说明。

Expected Behavior

  1. hook 内不得启动 GUI 进程:改用无窗口后台进程,绝不应阻塞 git 命令。
  2. 修复空 pre-push 的生成逻辑。
  3. 设置界面提供显式开关,并在注入 hooks 前征求用户同意。

Actual Behavior

  • git commit 被拉起 Qoder 阻塞,须手动退出 Qoder 才完成。
  • git push 必须 --no-verify。

Workaround(供其他用户参考)

  • 仓库级(立即生效,阻止 Qoder 重新注入的 hook 被执行):git config core.hooksPath .githooks(建一个空目录)。
  • 全局配置:~/.qoder/settings.json 加 settings.aiCodeTracking.installGitCommitHook: false(需重启 Qoder)。

Operating System

Windows 11 (10.0.26100),Git for Windows

Current Qoder Version

0.2.1(安装目录 .qoder-versions/0.2.1)

您好,辛苦更新最新版本 0.2.5 看是否还有类似问题