fix(agent): 超时强杀的 exit_code 跨平台归一为 124

Windows 上 taskkill /F 会让子进程以 code=1 退出(Unix 为 null),
原逻辑 code ?? (killed ? 124 : -1) 在 Windows 上会返回 1。
改为 killed 优先:被杀统一返回 124,与 Unix timeout(1) 语义一致。

CI 实机验证发现:Windows 上 12/13 → 修复后应 13/13
This commit is contained in:
jkooe committed 2026-09-27 02:39:16 +08:00
1 parent 96b02df857
commit 1d992cf9dc
1 file changed
+3 -1
+3 -1
View File
@@ -116,7 +116,9 @@ export function execCommand(opts: ExecOptions): Promise<ExecResult> {
const finish = (code: number | null): void => {
clearTimeout(timer);
resolve({
exit_code: code ?? (killed ? 124 : -1),
// 被超时强杀时统一语义:exit_code = 124(与 Unix timeout(1) 惯例一致)
// 注:Windows 上 taskkill /F 会让子进程以 code=1 退出(Unix 为 null),需在此归一
exit_code: killed ? 124 : (code ?? -1),
stdout: stdout.trimEnd(),
stderr: stderr.trimEnd(),
duration_ms: Date.now() - startedAt,