Issue Description
QoderWake在基于C4级别代码目录运行时无响应
Steps to Reproduce
将工作目录指定为C4级别代码仓库之后,执行任何命令都会卡死,换成内部dogfooding模型也一样
Actual Behavior
QoderWake自排查:
读完日志了,确实有几处明显异常,全部都和 cwd=/Users/zic/workspace/secondary/HAVS2 强相关:
关键异常发现
1. qodercli-wake 子进程在 HAVS2 启动后立即 Code=1 退出
日志里凡是 cwd=<abs:1:secondary/HAVS2>(即 HAVS2)的会话,子进程都在 1–2 秒内异常退出:
| 时间 | sessionId | PID | 存活 |
|---|---|---|---|
| 06-01 18:11:00 | qs_01kt1ameq3h8wk27aj0qh6zvsg | -– | ~2s, Code=1 |
| 06-02 18:04:45 / 18:06:27 | 同上(重启) | -– | ~2s, Code=1 |
| 06-02 18:07:59 | qs_01kt3wtabj33a41g0yx9a2r6vz | 70945 | 2s, Code=1 |
| 06-02 18:16:04 | 同上(重启) | -– | 2s, Code=1 |
| 06-02 19:14:55 | qs_01kt40p9ejhzwps84r9tq4sndw | 1340 | 0.9s, Code=1 |
这就是你"一切到 HAVS2 就没响应"的直接根因:CLI 内核进程根本没起来,控制台只能干等。
2. 退出原因:QoderAuthError: auth.getUserInfo failed: invalid token
[ModelListSdk] Direct qodercli control fallback failed:
qodercli exited before model list response (code=1, signal=null):
An unexpected critical error occurred:
QoderAuthError: auth.getUserInfo failed: invalid token
at openApiJsonRequest (/$bunfs/root/index.js:614:35649)
at async fetchOpenApiUserInfo
at async loginWithJobTok...
即子进程在 --cwd /Users/zic/workspace/secondary/HAVS2 启动后,调用 loginWithJobToken → fetchOpenApiUserInfo 拿到 401,然后整个进程 panic 退出。
3. 退出后还要扫 112 个变更文件
每次子进程崩掉,WorktreeChangeListService 都会去 HAVS2 仓库扫一遍 worktree(files=112),加重收尾延迟。
4. 周边连锁错误
[WorkPoller] poll failure: AbortError, durationMs=30000+:拉远端会话被 30s 超时打断(多次)[ModelListSdk] Failed to fetch models from SDK for cache, cwd=/Users/zic/workspace/secondary/HAVS2: Transport closed[GatewayClient] Session was already deleted remotely (gateway preempted):本地会话被服务端预占清理[MachineBridge] Console rejected access token ... HTTP 401 (TOKEN_INVALID):emp_01ksq7px4cem77nwfmnqk0hn2b的 token 校验失败
推断
这不是 git 大小或 hooks 慢的问题。HAVS2 在 qoderwake 后台被打上 C4 标签后,触发了一条特殊的鉴权路径------qodercli-wake 用 QODER_JOB_TOKEN 走 loginWithJobToken 时被 openapi.qoder.sh 拒绝 (invalid token),子进程立即 panic,会话变成 reason: error,前端只看到"无响应"。dpdk 子目录不卡,是因为它的 git remote/路径不在 C4 命中范围,鉴权走的是另一条路径。
建议下一步排查
-
直接复现并抓 stderr:
bash /Users/zic/.qoderwake/qoderwake-repro/qs_01kt40p9ejhzwps84r9tq4sndw.sh 2>&1 | tee /tmp/qodercli-havs2.log -
对比一个可工作目录(如 dpdk 子目录或 old_files)跑同样脚本,看
loginWithJobToken返回有何不同。 -
检查 token:
cat ~/.qoder/auth/*.json,看 access_token / job_token 是否过期或与 C4 仓库的 region/tenant 不匹配。 -
临时绕过:如确认是 C4 鉴权问题,可在
~/.qoder/.codebase-status/.../c9e748c94c3e5356.json里把status从STILLA_DISABLED临时改回普通,验证是否解锁。
要我帮你跑 repro 脚本抓 stderr 吗?
Screenshots / Screen Recordings
Operating System
MacOS 26.5 (25F71)
Darwin U-WW67DQXP-2225.local 25.5.0 Darwin Kernel Version 25.5.0: Mon Apr 27 20:41:15 PDT 2026; root:xnu-12377.121.6~2/RELEASE_ARM64_T6041 arm64
Current Qoder Version (Menu → About Qoder → Copy)
QoderWake最新版本
