@devcxl/opencode-cabbage 1.0.0 → 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (70) hide show
  1. package/assets/agents/team/architect.md +3 -0
  2. package/dist/kernel/context.js +12 -1
  3. package/dist/kernel/context.js.map +1 -1
  4. package/dist/kernel/flow.d.ts +12 -3
  5. package/dist/kernel/flow.js +107 -27
  6. package/dist/kernel/flow.js.map +1 -1
  7. package/dist/kernel/permission.d.ts +1 -1
  8. package/dist/kernel/permission.js +9 -1
  9. package/dist/kernel/permission.js.map +1 -1
  10. package/dist/kernel/profile.js +5 -2
  11. package/dist/kernel/profile.js.map +1 -1
  12. package/dist/kernel/records.d.ts +22 -6
  13. package/dist/kernel/records.js +71 -28
  14. package/dist/kernel/records.js.map +1 -1
  15. package/dist/kernel/release.d.ts +2 -0
  16. package/dist/kernel/release.js +13 -1
  17. package/dist/kernel/release.js.map +1 -1
  18. package/dist/kernel/review.js +6 -5
  19. package/dist/kernel/review.js.map +1 -1
  20. package/dist/kernel/session-index.d.ts +5 -3
  21. package/dist/kernel/session-index.js +81 -65
  22. package/dist/kernel/session-index.js.map +1 -1
  23. package/dist/kernel/setup.d.ts +26 -1
  24. package/dist/kernel/setup.js +87 -10
  25. package/dist/kernel/setup.js.map +1 -1
  26. package/dist/kernel/task.d.ts +14 -9
  27. package/dist/kernel/task.js +138 -53
  28. package/dist/kernel/task.js.map +1 -1
  29. package/dist/kernel/tdd/adapter.js +27 -26
  30. package/dist/kernel/tdd/adapter.js.map +1 -1
  31. package/dist/kernel/tdd/digest.d.ts +1 -0
  32. package/dist/kernel/tdd/digest.js +6 -4
  33. package/dist/kernel/tdd/digest.js.map +1 -1
  34. package/dist/kernel/tdd/evaluator.js +1 -1
  35. package/dist/kernel/tdd/evaluator.js.map +1 -1
  36. package/dist/kernel/tdd/state.d.ts +1 -1
  37. package/dist/kernel/tdd/state.js +1 -1
  38. package/dist/kernel/tdd/state.js.map +1 -1
  39. package/dist/kernel/worktree.d.ts +1 -1
  40. package/dist/kernel/worktree.js +35 -6
  41. package/dist/kernel/worktree.js.map +1 -1
  42. package/dist/plugin/flow-control.d.ts +11 -0
  43. package/dist/plugin/flow-control.js +47 -14
  44. package/dist/plugin/flow-control.js.map +1 -1
  45. package/dist/plugin/goal.d.ts +11 -1
  46. package/dist/plugin/goal.js +17 -3
  47. package/dist/plugin/goal.js.map +1 -1
  48. package/dist/plugin/prompt-lint.js +0 -1
  49. package/dist/plugin/prompt-lint.js.map +1 -1
  50. package/dist/plugin/release-control.d.ts +2 -0
  51. package/dist/plugin/release-control.js +59 -20
  52. package/dist/plugin/release-control.js.map +1 -1
  53. package/dist/plugin/server.js +53 -20
  54. package/dist/plugin/server.js.map +1 -1
  55. package/dist/plugin/setup-control.d.ts +15 -1
  56. package/dist/plugin/setup-control.js +37 -6
  57. package/dist/plugin/setup-control.js.map +1 -1
  58. package/dist/plugin/task-control.d.ts +2 -2
  59. package/dist/plugin/task-control.js +15 -8
  60. package/dist/plugin/task-control.js.map +1 -1
  61. package/dist/plugin/tdd-checkpoint.d.ts +10 -0
  62. package/dist/plugin/tdd-checkpoint.js +86 -3
  63. package/dist/plugin/tdd-checkpoint.js.map +1 -1
  64. package/dist/util/gh.d.ts +5 -0
  65. package/dist/util/gh.js +12 -0
  66. package/dist/util/gh.js.map +1 -1
  67. package/dist/util/paths.d.ts +6 -0
  68. package/dist/util/paths.js +14 -0
  69. package/dist/util/paths.js.map +1 -1
  70. package/package.json +4 -4
@@ -9,7 +9,7 @@ import { exec } from "node:child_process";
9
9
  import { promisify } from "node:util";
10
10
  import { mkdir, readFile, rename, writeFile } from "node:fs/promises";
11
11
  import { join } from "node:path";
12
- import { gh as ghCli } from "../util/gh.js";
12
+ import { gh as ghCli, parsePrUrlNumber } from "../util/gh.js";
13
13
  import { escapeShellArg } from "../util/shell.js";
14
14
  import { pathExists } from "../util/fs.js";
15
15
  import { PLUGIN_ID } from "../util/paths.js";
@@ -70,7 +70,10 @@ export function buildTaskBody(slug, criteria, dependencies) {
70
70
  const criteriaLines = criteria.length > 0
71
71
  ? criteria.map(c => `- [ ] ${c.id}: ${c.description} [${c.verification}]`).join("\n")
72
72
  : "- [ ] TBD";
73
- const depLines = dependencies.length > 0 ? dependencies.map(n => `- #${n}`).join("\n") : "- none";
73
+ // 依赖:编号渲染 `- #12`;task_id(slug)渲染 `- @slug`(门禁时解析成编号)
74
+ const depLines = dependencies.length > 0
75
+ ? dependencies.map(d => (typeof d === "number" ? `- #${d}` : `- @${d}`)).join("\n")
76
+ : "- none";
74
77
  return [
75
78
  `# Task: ${slug}`,
76
79
  "",
@@ -102,7 +105,7 @@ export function buildTaskTddBlock(policy, criteria, worktreePath) {
102
105
  async function updateTaskBody(issueNumber, newBody) {
103
106
  try {
104
107
  const bodyArg = escapeShellArg(newBody);
105
- await taskGh(`api repos/{owner}/{repo}/issues/${issueNumber} -X PATCH -f body=${bodyArg} --silent`);
108
+ await taskGh(`api repos/{owner}/{repo}/issues/${issueNumber} -X PATCH -f body='${bodyArg}' --silent`);
106
109
  return { ok: true };
107
110
  }
108
111
  catch (err) {
@@ -144,25 +147,39 @@ export function parseCriteriaFromBody(body) {
144
147
  }
145
148
  return criteria;
146
149
  }
147
- /** 从 Task Record body 的 Dependencies 区块解析依赖 Issue 号 */
150
+ /** 从 Task Record body 的 Dependencies 区块解析依赖:`- #12` → 编号;`- @slug` → slug(门禁时解析) */
148
151
  export function parseDependenciesFromBody(body) {
149
152
  const deps = [];
150
153
  for (const line of body.split("\n")) {
151
- const match = /^-\s+#(\d+)$/.exec(line.trim());
152
- if (match)
153
- deps.push(Number(match[1]));
154
+ const numMatch = /^-\s+#(\d+)$/.exec(line.trim());
155
+ if (numMatch) {
156
+ deps.push(Number(numMatch[1]));
157
+ continue;
158
+ }
159
+ const slugMatch = /^-\s+@([a-z0-9]+(?:-[a-z0-9]+)*)$/.exec(line.trim());
160
+ if (slugMatch)
161
+ deps.push(slugMatch[1]);
154
162
  }
155
163
  return deps;
156
164
  }
157
- /** 解析 create-task 的 depends_on 参数:"12, 13" 或 "#12,#13" → [12, 13];空/非法输入返回 [] */
165
+ /**
166
+ * 解析 create-task 的 depends_on 参数:支持 Issue 编号("12" / "#12")与
167
+ * task_id(slug,如 "user-auth")混合,以逗号分隔。非法项忽略。
168
+ * 返回 string 表示 slug(需在门禁时解析成编号)。
169
+ */
158
170
  export function parseDependenciesArg(raw) {
159
171
  if (!raw || raw.trim() === "")
160
172
  return [];
161
173
  const deps = [];
162
174
  for (const part of raw.split(",")) {
163
- const n = Number(part.trim().replace(/^#/, ""));
164
- if (Number.isInteger(n) && n > 0)
175
+ const trimmed = part.trim().replace(/^#/, "");
176
+ const n = Number(trimmed);
177
+ if (Number.isInteger(n) && n > 0) {
165
178
  deps.push(n);
179
+ }
180
+ else if (trimmed !== "") {
181
+ deps.push(trimmed);
182
+ }
166
183
  }
167
184
  return deps;
168
185
  }
@@ -174,7 +191,7 @@ export function freezeTddPolicy(profile) {
174
191
  adapter: "vitest",
175
192
  baseCommand: profile.testCommand,
176
193
  timeoutMs: 120_000,
177
- executionInputPatterns: [],
194
+ executionInputPatterns: ["vitest.config.*", "vitest.*.config.*", "jest.config.*", "package.json"],
178
195
  }
179
196
  : null;
180
197
  return {
@@ -338,9 +355,9 @@ export async function readTaskState(projectDir, slug) {
338
355
  }
339
356
  }
340
357
  // ─── Task Record 解析(Sub Issue → issueNumber / body) ───
341
- /** 按 title(task slug)解析 Parent 下的 Sub Issue 号 */
358
+ /** 按 title(task slug)解析 Parent 下的 Sub Issue 号(--json parent 直接过滤,无搜索索引延迟) */
342
359
  async function resolveTaskIssue(parentIssueNumber, taskId) {
343
- const { stdout } = await taskGh(`issue list --parent ${parentIssueNumber} --state all --json number,title --jq '[.[] | select(.title == "${taskId}") | .number] | first'`);
360
+ const { stdout } = await taskGh(`issue list --state all --limit 100 --json number,title,parent --jq '[.[] | select(.parent.number == ${parentIssueNumber} and .title == ${JSON.stringify(taskId)}) | .number] | first'`);
344
361
  const trimmed = stdout.trim();
345
362
  if (trimmed === "" || trimmed === "null")
346
363
  return null;
@@ -353,6 +370,15 @@ async function readTaskBody(issueNumber) {
353
370
  return stdout;
354
371
  }
355
372
  /** 设置 Task Record 状态标签(移除其它 cabbage:task:*,添加当前) */
373
+ /** 确保 label 存在(gh label create --force 幂等);失败不阻塞(add-label 会显式报错) */
374
+ async function ensureLabel(name) {
375
+ try {
376
+ await taskGh(`label create '${escapeShellArg(name)}' --force`);
377
+ }
378
+ catch {
379
+ // 已存在或权限不足:忽略
380
+ }
381
+ }
356
382
  export async function setTaskStatusLabel(issueNumber, status) {
357
383
  try {
358
384
  const { stdout } = await taskGh(`issue view ${issueNumber} --json labels --jq '[.labels[].name] | join(" ") | tostring'`);
@@ -361,8 +387,10 @@ export async function setTaskStatusLabel(issueNumber, status) {
361
387
  const stale = current.filter(l => l.startsWith(TASK_STATUS_LABEL_PREFIX) && l !== target);
362
388
  const args = [];
363
389
  for (const label of stale)
364
- args.push(`--remove-label '${label}'`);
365
- args.push(`--add-label '${target}'`);
390
+ args.push(`--remove-label '${escapeShellArg(label)}'`);
391
+ args.push(`--add-label '${escapeShellArg(target)}'`);
392
+ // 目标标签不存在时自动创建(gh add-label 不自动建 label)
393
+ await ensureLabel(target);
366
394
  await taskGh(`issue edit ${issueNumber} ${args.join(" ")}`);
367
395
  return { ok: true };
368
396
  }
@@ -370,10 +398,32 @@ export async function setTaskStatusLabel(issueNumber, status) {
370
398
  return { ok: false, error: String(err) };
371
399
  }
372
400
  }
373
- /** 读仓库默认分支 */
401
+ /**
402
+ * 读仓库默认分支。
403
+ * 优先 GitHub API(defaultBranchRef);API 未返回(defaultBranchRef 为 null)时
404
+ * 回退远端 HEAD 指针(refs/remotes/origin/HEAD);仍不可得 → 抛错拒绝(fail-closed,
405
+ * 不猜测分支名,防 PR base 误用临时分支)。
406
+ */
374
407
  async function readDefaultBranch() {
375
- const { stdout } = await taskGh(`repo view --json defaultBranchRef --jq .defaultBranchRef.name`);
376
- return stdout.trim();
408
+ try {
409
+ const { stdout } = await taskGh(`repo view --json defaultBranchRef --jq .defaultBranchRef.name`);
410
+ const branch = stdout.trim();
411
+ if (branch !== "")
412
+ return branch;
413
+ }
414
+ catch {
415
+ // 查询失败 → 走回退
416
+ }
417
+ try {
418
+ const { stdout } = await taskGit(`symbolic-ref --short refs/remotes/origin/HEAD`);
419
+ const head = stdout.trim();
420
+ if (head !== "")
421
+ return head;
422
+ }
423
+ catch {
424
+ // 无远端 HEAD 指针 → 走失败
425
+ }
426
+ throw new Error("cannot determine default branch (repo view defaultBranchRef empty and no origin/HEAD)");
377
427
  }
378
428
  /**
379
429
  * create-task(spec §2.3):validateTitle → slug → 未完成同名冲突检查(branch/worktree 已存在)→
@@ -396,7 +446,11 @@ export async function createTask(input) {
396
446
  if (input.acceptanceCriteriaJson !== undefined) {
397
447
  const parsed = parseAcceptanceCriteria(input.acceptanceCriteriaJson);
398
448
  if (parsed === null) {
399
- return { ok: false, code: "POLICY_INVALID", message: "acceptance_criteria must be a JSON array of {id, description, verification}" };
449
+ return {
450
+ ok: false,
451
+ code: "POLICY_INVALID",
452
+ message: 'acceptance_criteria must be a JSON array of {id, description, verification}, where verification is one of: "tdd" | "regression" | "manual"',
453
+ };
400
454
  }
401
455
  criteria = parsed;
402
456
  }
@@ -410,7 +464,7 @@ export async function createTask(input) {
410
464
  /** 本地分支是否已存在(rev-parse 成功且有输出) */
411
465
  async function branchExists(branch) {
412
466
  try {
413
- const { stdout } = await taskGit(`rev-parse --verify refs/heads/${branch}`);
467
+ const { stdout } = await taskGit(`rev-parse --verify 'refs/heads/${escapeShellArg(branch)}'`);
414
468
  return stdout.trim() !== "";
415
469
  }
416
470
  catch {
@@ -437,12 +491,25 @@ export async function startTask(projectDir, parentIssueNumber, taskId) {
437
491
  message: "Planning Baseline (design stage) must be merged before starting tasks",
438
492
  };
439
493
  }
440
- // 门禁 2:依赖 Task 已 merged(依赖 Issue state 必须为 CLOSED)
494
+ // 门禁 2:依赖 Task 已 merged(依赖 Issue 须已关闭且带 merged 标签——被取消的任务同样 CLOSED,不得放行)
441
495
  const deps = parseDependenciesFromBody(taskBody);
442
496
  for (const dep of deps) {
443
- const state = await readIssueState(dep);
444
- if (state !== "CLOSED") {
445
- return { ok: false, code: "DEPENDENCY_NOT_MERGED", message: `dependency task #${dep} is not merged (state: ${state})` };
497
+ // task_id(slug)依赖:解析成实际 Issue 号;解析不到(未创建)→ 拒绝
498
+ const depNumber = typeof dep === "number" ? dep : await resolveTaskIssue(parentIssueNumber, dep);
499
+ if (depNumber === null) {
500
+ return {
501
+ ok: false,
502
+ code: "DEPENDENCY_NOT_FOUND",
503
+ message: `dependency task "${dep}" is not created under parent #${parentIssueNumber}`,
504
+ };
505
+ }
506
+ const depStatus = await readIssueStateAndLabels(depNumber);
507
+ if (depStatus.state !== "CLOSED" || !depStatus.labels.includes(`${TASK_STATUS_LABEL_PREFIX}merged`)) {
508
+ return {
509
+ ok: false,
510
+ code: "DEPENDENCY_NOT_MERGED",
511
+ message: `dependency task #${depNumber} is not merged (state: ${depStatus.state}, merged label: ${depStatus.labels.includes(`${TASK_STATUS_LABEL_PREFIX}merged`)})`,
512
+ };
446
513
  }
447
514
  }
448
515
  // 门禁 3:并行数 < 5(running/reviewing 标签计数)
@@ -473,6 +540,8 @@ export async function startTask(projectDir, parentIssueNumber, taskId) {
473
540
  : `${taskBody}\n${tddBlock}\n`;
474
541
  const bodyUpdate = await updateTaskBody(issueNumber, updatedBody);
475
542
  if (!bodyUpdate.ok) {
543
+ // TDD 块写入失败:清理刚创建的 worktree(best effort),避免失败残留
544
+ await gitIn(projectDir, `worktree remove '${escapeShellArg(wt.path)}'`).catch(() => null);
476
545
  return { ok: false, code: "TASK_TDD_BLOCK_WRITE_FAILED", message: bodyUpdate.error ?? "failed to write TDD block" };
477
546
  }
478
547
  await writeTaskState(projectDir, {
@@ -491,14 +560,14 @@ export async function startTask(projectDir, parentIssueNumber, taskId) {
491
560
  }
492
561
  return { ok: true, issueNumber, branch: wt.branch, worktreePath: wt.path, policy, baseline };
493
562
  }
494
- /** 读 Issue 状态(CLOSED/OPEN) */
495
- async function readIssueState(issueNumber) {
496
- const { stdout } = await taskGh(`issue view ${issueNumber} --json state --jq .state`);
497
- return stdout.trim();
563
+ /** 读 Issue 状态与标签(依赖门禁用:CLOSED 且 merged 标签才算已合并) */
564
+ async function readIssueStateAndLabels(issueNumber) {
565
+ const { stdout } = await taskGh(`issue view ${issueNumber} --json state,labels --jq '{state, labels: [.labels[].name]}'`);
566
+ return JSON.parse(stdout);
498
567
  }
499
- /** 统计 flow 下 running/reviewing 的 Task 数(并行门禁) */
568
+ /** 统计 flow 下 running/reviewing 的 Task 数(并行门禁);已关闭 Issue 不计(防取消/归档任务占名额) */
500
569
  async function countRunningTasks(parentIssueNumber) {
501
- const { stdout } = await taskGh(`issue list --parent ${parentIssueNumber} --json number,labels --jq '[.[] | {number, labels: [.labels[].name]}]'`);
570
+ const { stdout } = await taskGh(`issue list --state open --limit 100 --json number,labels,parent --jq '[.[] | select(.parent.number == ${parentIssueNumber}) | {number, labels: [.labels[].name]}]'`);
502
571
  const issues = JSON.parse(stdout);
503
572
  return issues.filter(i => i.labels.some(l => l === `${TASK_STATUS_LABEL_PREFIX}running` || l === `${TASK_STATUS_LABEL_PREFIX}reviewing`)).length;
504
573
  }
@@ -542,7 +611,7 @@ export async function submitTask(projectDir, parentIssueNumber, taskId) {
542
611
  }
543
612
  // 豁免语义:not-applicable / exempt-request → waived → 放行
544
613
  if (evidence.status === "waived") {
545
- return submitPr(projectDir, state, issueNumber, comment, evidence.revision, evidence, taskId);
614
+ return submitPr(state, issueNumber, comment, evidence.revision, evidence, taskId);
546
615
  }
547
616
  const compliance = evaluateTddCompliance(state.policy, evidence, criteria);
548
617
  if (compliance.status !== "pass") {
@@ -553,7 +622,7 @@ export async function submitTask(projectDir, parentIssueNumber, taskId) {
553
622
  missing: compliance.warnings.length > 0 ? compliance.warnings : ["tdd-compliance"],
554
623
  };
555
624
  }
556
- return submitPr(projectDir, state, issueNumber, comment, evidence.revision, evidence, taskId);
625
+ return submitPr(state, issueNumber, comment, evidence.revision, evidence, taskId);
557
626
  }
558
627
  /** 解析 evidence comment 内 JSON 状态块(TDD_STATE_TAG,取最后一个),失败返回 null;schema 必须为 1 */
559
628
  function parseJsonStateEvidence(body) {
@@ -572,10 +641,10 @@ function parseJsonStateEvidence(body) {
572
641
  }
573
642
  }
574
643
  /** 创建 PR 的公共流程(evidence 通过后) */
575
- async function submitPr(projectDir, state, issueNumber, comment, revision, _evidence, taskId) {
644
+ async function submitPr(state, issueNumber, comment, revision, _evidence, taskId) {
576
645
  // push 分支(工具内以宿主凭据执行)
577
646
  try {
578
- await gitIn(state.worktreePath, `push -u origin ${state.branch}`);
647
+ await gitIn(state.worktreePath, `push -u origin '${escapeShellArg(state.branch)}'`);
579
648
  }
580
649
  catch (err) {
581
650
  return { ok: false, code: "PUSH_FAILED", message: String(err) };
@@ -587,14 +656,21 @@ async function submitPr(projectDir, state, issueNumber, comment, revision, _evid
587
656
  const evidenceLink = `https://github.com/${repo}/issues/${issueNumber}#issuecomment-${comment.id}`;
588
657
  const prTitle = `feat: ${taskId}`;
589
658
  const prBody = [`# ${taskId}`, "", `- Task Record: #${issueNumber}`, `- TDD evidence: ${evidenceLink}`, "", `Closes #${issueNumber}`, ""].join("\n");
590
- const { stdout: prOut } = await taskGh(`pr create --title '${escapeShellArg(prTitle)}' --body '${escapeShellArg(prBody)}' --base ${base} --head ${state.branch} --json number --jq .number`);
591
- const prNumber = Number(prOut.trim());
592
- if (!Number.isInteger(prNumber)) {
593
- return { ok: false, code: "PR_CREATE_FAILED", message: `invalid PR number: ${prOut}` };
659
+ const { stdout: prOut } = await taskGh(`pr create --title '${escapeShellArg(prTitle)}' --body '${escapeShellArg(prBody)}' --base '${escapeShellArg(base)}' --head '${escapeShellArg(state.branch)}'`);
660
+ // gh pr create 不支持 --json:解析 stdout 中的 PR URL
661
+ const prNumber = parsePrUrlNumber(prOut);
662
+ if (prNumber === null) {
663
+ return { ok: false, code: "PR_CREATE_FAILED", message: `invalid PR create output: ${prOut}` };
594
664
  }
665
+ // PR 已创建成功;状态标签失败仅降级 warning(不把已建 PR 报为整体失败)
595
666
  const label = await setTaskStatusLabel(issueNumber, "reviewing");
596
667
  if (!label.ok) {
597
- return { ok: false, code: "LABEL_UPDATE_FAILED", message: label.error ?? "label update failed" };
668
+ return {
669
+ ok: true,
670
+ prNumber,
671
+ evidenceRevision: revision,
672
+ warning: `reviewing label update failed: ${label.error ?? "unknown"}`,
673
+ };
598
674
  }
599
675
  return { ok: true, prNumber, evidenceRevision: revision };
600
676
  }
@@ -629,7 +705,7 @@ export async function mergeTask(projectDir, parentIssueNumber, taskId, modelRisk
629
705
  return { ok: false, code: "TASK_NOT_STARTED", message: `task "${taskId}" was not started (run start-task first)` };
630
706
  }
631
707
  // 1. 定位 open PR(head 分支)
632
- const { stdout: prOut } = await taskGh(`pr list --head ${state.branch} --state open --json number,headRefOid,author --jq '[.[] | {number, headRefOid, author}] | first'`);
708
+ const { stdout: prOut } = await taskGh(`pr list --head '${escapeShellArg(state.branch)}' --state open --json number,headRefOid,author --jq '[.[] | {number, headRefOid, author}] | first'`);
633
709
  if (prOut.trim() === "" || prOut.trim() === "null") {
634
710
  return { ok: false, code: "PR_NOT_FOUND", message: `no open PR for branch ${state.branch}` };
635
711
  }
@@ -657,7 +733,7 @@ export async function mergeTask(projectDir, parentIssueNumber, taskId, modelRisk
657
733
  const risk = escalateRisk(modelRisk, changedFiles, [...BUILTIN_RISK_PATTERNS, ...profile.riskPatterns]);
658
734
  // 5. 高风险需非作者人类 approval
659
735
  if (risk === "high") {
660
- const approved = await hasNonAuthorHumanApproval(pr.number, pr.author.login);
736
+ const approved = await hasNonAuthorHumanApproval(pr.number);
661
737
  if (!approved) {
662
738
  return {
663
739
  ok: false,
@@ -671,19 +747,28 @@ export async function mergeTask(projectDir, parentIssueNumber, taskId, modelRisk
671
747
  if (!merged.success) {
672
748
  return { ok: false, code: "MERGE_FAILED", message: merged.error ?? "merge failed" };
673
749
  }
674
- // 7. 关闭 Sub Issue + 状态 merged
675
- await taskGh(`issue close ${issueNumber}`);
676
- await setTaskStatusLabel(issueNumber, "merged");
750
+ // 7. 关闭 Sub Issue + 状态 merged(PR 已合并,后续步骤独立容错,失败仅降级 warning)
751
+ const warnings = [];
752
+ try {
753
+ await taskGh(`issue close ${issueNumber}`);
754
+ }
755
+ catch (err) {
756
+ warnings.push(`issue close failed: ${String(err)}`);
757
+ }
758
+ const mergedLabel = await setTaskStatusLabel(issueNumber, "merged");
759
+ if (!mergedLabel.ok) {
760
+ warnings.push(`merged label update failed: ${mergedLabel.error ?? "unknown"}`);
761
+ }
677
762
  // 8. worktree 干净销毁(PR 已合并且干净 → 自动);失败仅警告,不阻塞合并结果
678
763
  const cleanup = await destroyWorktree({ worktreeDir: state.worktreePath, branch: state.branch, prMerged: true, userConfirmed: false });
679
764
  if (!cleanup.ok && cleanup.reason === "DIRTY_WORKTREE") {
680
- return { ok: true, prNumber: pr.number, risk, warning: "PR merged but worktree has uncommitted changes; clean it manually" };
765
+ warnings.push("PR merged but worktree has uncommitted changes; clean it manually");
681
766
  }
682
- return { ok: true, prNumber: pr.number, risk };
767
+ return { ok: true, prNumber: pr.number, risk, ...(warnings.length > 0 ? { warning: warnings.join("; ") } : {}) };
683
768
  }
684
- /** 读 PR 的 statusCheckRollup 精简列表(CheckRun 用 conclusion、StatusContext 用 state) */
769
+ /** 读 PR 的 statusCheckRollup 精简列表(CheckRun 用 conclusion、StatusContext 用 state;gh go-jq 需显式字段访问) */
685
770
  async function readPrChecks(prNumber) {
686
- const { stdout } = await taskGh(`pr view ${prNumber} --json statusCheckRollup --jq '[.[] | {name: (.name // .context // "check"), state: (.state // .conclusion // "PENDING")}]'`);
771
+ const { stdout } = await taskGh(`pr view ${prNumber} --json statusCheckRollup --jq '[.statusCheckRollup[]? | {name: (.name // .context // "check"), state: (.conclusion // .state // "PENDING")}]'`);
687
772
  return JSON.parse(stdout);
688
773
  }
689
774
  /** 将原始 statusCheckRollup 映射为 {name, state}(纯函数,供测试直接验证 jq 语义) */
@@ -702,13 +787,13 @@ async function readPrChangedFiles(prNumber) {
702
787
  return JSON.parse(stdout);
703
788
  }
704
789
  /** 是否存在非作者的人类 APPROVED review(高风险门禁) */
705
- async function hasNonAuthorHumanApproval(prNumber, authorLogin) {
790
+ async function hasNonAuthorHumanApproval(prNumber) {
706
791
  const { stdout } = await taskGh(`pr view ${prNumber} --json author,reviews --jq '{author: .author.login, reviews: [.reviews[] | {state: .state, login: .author.login, type: .author.type}]}'`);
707
792
  const data = JSON.parse(stdout);
708
793
  return data.reviews.some(r => r.state === "APPROVED" && r.login !== data.author && r.type === "User");
709
794
  }
710
795
  /** cancel-task:受控取消(user_confirmed)→ 关闭 Sub Issue + 状态标签 cancelled */
711
- export async function cancelTask(projectDir, parentIssueNumber, taskId, userConfirmed) {
796
+ export async function cancelTask(_projectDir, parentIssueNumber, taskId, userConfirmed) {
712
797
  if (!userConfirmed) {
713
798
  return {
714
799
  ok: false,
@@ -753,11 +838,11 @@ export async function destroyTaskWorktree(projectDir, parentIssueNumber, taskId,
753
838
  }
754
839
  /** 分支是否有已合并的 PR */
755
840
  async function isPrMerged(branch) {
756
- const { stdout } = await taskGh(`pr list --head ${branch} --state merged --json number --jq 'length'`);
841
+ const { stdout } = await taskGh(`pr list --head '${escapeShellArg(branch)}' --state merged --json number --jq 'length'`);
757
842
  return Number(stdout.trim()) > 0;
758
843
  }
759
844
  /** status-task:读 Task Record + PR + checks 汇总 */
760
- export async function readTaskStatus(projectDir, parentIssueNumber, taskId) {
845
+ export async function readTaskStatus(_projectDir, parentIssueNumber, taskId) {
761
846
  const issueNumber = await resolveTaskIssue(parentIssueNumber, taskId);
762
847
  if (issueNumber === null) {
763
848
  return { ok: false, code: "TASK_NOT_FOUND", message: `no sub issue with title "${taskId}" under parent #${parentIssueNumber}` };
@@ -766,7 +851,7 @@ export async function readTaskStatus(projectDir, parentIssueNumber, taskId) {
766
851
  const { stdout: issueOut } = await taskGh(`issue view ${issueNumber} --json number,title,state,labels,body --jq '{number, title, state, labels: [.labels[].name], body}'`);
767
852
  const issue = JSON.parse(issueOut);
768
853
  const branch = `feat/${taskId}`;
769
- const { stdout: prsOut } = await taskGh(`pr list --head ${branch} --state all --json number,state,headRefName --jq '[.[] | {number, state, headRefName}]'`);
854
+ const { stdout: prsOut } = await taskGh(`pr list --head '${escapeShellArg(branch)}' --state all --json number,state,headRefName --jq '[.[] | {number, state, headRefName}]'`);
770
855
  const prs = JSON.parse(prsOut);
771
856
  const pullRequests = [];
772
857
  for (const pr of prs) {
@@ -1 +1 @@
1
- {"version":3,"file":"task.js","sourceRoot":"","sources":["../../src/kernel/task.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"task.js","sourceRoot":"","sources":["../../src/kernel/task.ts"],"names":[],"mappings":"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"}
@@ -98,36 +98,28 @@ function parseVitestJson(stdout) {
98
98
  }
99
99
  /**
100
100
  * 从 stderr 解析 vitest 错误,提取测试计数(兜底解析)。
101
+ * vitest 3.x 输出格式:
102
+ * - 全部通过:`Tests 2 passed (2)`
103
+ * - 全部失败:`Tests 1 failed (1)`(无 passed 行,collected == failed)
104
+ * - 部分失败:`Tests 2 passed (2) | 1 failed (1)`
101
105
  */
102
106
  function parseVitestSummary(stderr) {
103
- // vitest verbose 输出: "Tests 2 passed (2) | 1 failed (1)"
104
- // 或 "Tests 2 passed (2)"
105
- const summaryMatch = stderr.match(/Tests\s+\d+\s+failed\s*\((\d+)\)/);
106
- const totalMatch = stderr.match(/Tests\s+\d+\s+failed[\s\S]*?\|\s*(\d+)\s+passed/);
107
+ const failedMatch = stderr.match(/Tests\s+\d+\s+failed\s*\((\d+)\)/);
107
108
  const passedMatch = stderr.match(/(\d+)\s+passed/);
109
+ const allPassedMatch = stderr.match(/Tests\s+(\d+)\s+passed/);
108
110
  let testsCollected = null;
109
111
  let testsFailed = null;
110
- if (summaryMatch) {
111
- testsFailed = parseInt(summaryMatch[1], 10);
112
+ if (failedMatch) {
113
+ testsFailed = parseInt(failedMatch[1], 10);
114
+ // 有 passed 行 → collected = passed + failed;无(全失败)→ collected = failed
115
+ testsCollected = passedMatch ? parseInt(passedMatch[1], 10) + testsFailed : testsFailed;
112
116
  }
113
- else {
114
- // 检查是否有 "No test files found" 或 "0 tests"
115
- if (stderr.includes("No test files found") || stderr.includes("no tests found")) {
116
- return { testsCollected: 0, testsFailed: 0 };
117
- }
117
+ else if (stderr.includes("No test files found") || stderr.includes("no tests found")) {
118
+ return { testsCollected: 0, testsFailed: 0 };
118
119
  }
119
- // 尝试计算 collected = passed + failed
120
- const totalPassedMatch = stderr.match(/(\d+)\s+passed/);
121
- if (totalPassedMatch && testsFailed !== null) {
122
- testsCollected = parseInt(totalPassedMatch[1], 10) + testsFailed;
123
- }
124
- else if (testsFailed === null) {
125
- // 可能全部通过
126
- const allPassedMatch = stderr.match(/Tests\s+(\d+)\s+passed/);
127
- if (allPassedMatch) {
128
- testsCollected = parseInt(allPassedMatch[1], 10);
129
- testsFailed = 0;
130
- }
120
+ else if (allPassedMatch) {
121
+ testsCollected = parseInt(allPassedMatch[1], 10);
122
+ testsFailed = 0;
131
123
  }
132
124
  return { testsCollected, testsFailed };
133
125
  }
@@ -210,6 +202,11 @@ export function classifyVitestFailure(input) {
210
202
  function sha256Hex(content) {
211
203
  return createHash("sha256").update(content, "utf-8").digest("hex");
212
204
  }
205
+ /** vitest 输出内嵌 ANSI 色码(\x1b[...m),剥离后才能被正则/JSON 解析 */
206
+ const ANSI_ESCAPE = /\x1b\[[0-9;]*m/g;
207
+ function stripAnsi(text) {
208
+ return text.replace(ANSI_ESCAPE, "");
209
+ }
213
210
  // ─── 主函数 ───
214
211
  /**
215
212
  * 执行 RED check:运行 vitest focused test,返回 TddCommandEvidence。
@@ -231,8 +228,12 @@ export async function executeRedCheck(policy, selector, cwd) {
231
228
  const durationMs = Date.now() - startMs;
232
229
  const finishedAt = new Date().toISOString();
233
230
  // 4. 解析 vitest 输出获取测试统计数据
234
- const jsonStats = parseVitestJson(output.stdout);
235
- const summaryStats = parseVitestSummary(output.stderr);
231
+ // vitest 3.x:统计摘要输出到 stdout,stderr 仅含错误详情 → 双通道拼接解析
232
+ // 输出含 ANSI 色码,先剥离再解析
233
+ const cleanStdout = stripAnsi(output.stdout);
234
+ const cleanStderr = stripAnsi(output.stderr);
235
+ const jsonStats = parseVitestJson(cleanStdout);
236
+ const summaryStats = parseVitestSummary(cleanStderr + "\n" + cleanStdout);
236
237
  const testsCollected = jsonStats?.testsCollected ?? summaryStats.testsCollected ?? null;
237
238
  const testsFailed = jsonStats?.testsFailed ?? summaryStats.testsFailed ?? null;
238
239
  // 5. 分类失败
@@ -240,7 +241,7 @@ export async function executeRedCheck(policy, selector, cwd) {
240
241
  exitCode: output.exitCode,
241
242
  testsCollected,
242
243
  testsFailed,
243
- stderr: output.stderr,
244
+ stderr: cleanStderr,
244
245
  timedOut: output.timedOut,
245
246
  });
246
247
  // 6. 计算 outputDigest(stdout + stderr 的 SHA-256)