test(review): sync round-cap prose and pin the deferred coverage gaps (#9256) - #9258
Conversation
…#9256) The round-cap stack (#9183/#9201/#9203) has landed; this is the single prose/coverage pass deferred from those reviews. SKILL.md: qualify the two remaining unqualified mentions of the 3-round huge tier with the clock condition the settled code requires. fetch-pr: pin the capture-time budget wiring (huge tier recorded only with a deadline) that plan-diff and capture-local already pin but fetch-pr's mocked-fs harness left unasserted. agent-prompt: pin the --chunk build gate's clock argument directly — it was exercised only through the sibling paths, so a mutation confined to that call site survived. Both new pins mutation-verified.
|
|
|
Thanks for picking up the deferred list from #9256!
Moving on to code review. 🔍 中文说明感谢跟进 #9256 的延期清单!
进入代码审查 🔍 — Qwen Code · qwen3.8-max Reviewed at |
Code reviewIndependent baseline first: for the three deferred items I would have (1) grepped the bundled review SKILL.md for huge-tier mentions missing the deadline qualification, (2) forced a real huge diff through fetch-pr's mocked harness and asserted Verified against the landed code:
No blockers, no asks. Testing evidenceUnattended CI run — no PR code built or executed here; the evidence below is the PR's own CI on the reviewed commit, fetched once via the API (no polling). The Linux unit suite is still in flight at fetch time (it runs ~30 minutes in this repo), and the platform-matrix and integration jobs are skipped by workflow conditionals, as they are on this repo's PR events. The bot-orchestration checks still Final CI results for
One row per check name (latest run); skipped checks omitted; failures sort first. / 每个检查名一行(取最新一次运行),省略 skipped,失败项排在最前。 No red checks at fetch time. For context (author's claim, not independently verified): the PR description says a local full review-suite run surfaced two failures already present on clean main — 中文说明代码审查:先独立给出基线方案——三个延期条目我会分别 (1) 在内置 review SKILL.md 中找出缺少 deadline 限定语的 huge-tier 提及,(2) 在 fetch-pr 的 mock 框架里强行造一个真实 huge diff,在两种 clock 臂下断言 已对照落地代码核实:
无阻塞项,无修改要求。 测试证据:无人值守 CI 运行——此处不构建、不执行 PR 代码;下表为被审 commit 上 PR 自身 CI 经 API 一次性抓取的结果(不轮询)。抓取时 Linux 单测仍在运行(本仓库约 30 分钟),平台矩阵与集成测试按工作流条件跳过(本仓库 PR 事件常态)。CI 落定后由 — Qwen Code · qwen3.8-max Reviewed at |
|
Confidence: 4/5 — clean across every stage; the only nit is cosmetic (the PR body omits the template's Stepping back: this is the closing pass of a tracked deferral list (#9256) on a feature stack that has already landed — not new surface. The diff matched my independent proposal for all three items, and beat it on the one subtle point: the per-arm plan separation in the Approval deferred until CI lands green on 中文说明回顾全局:这是已落地的功能系列所跟踪的延期清单(#9256)的收尾,不是新面。diff 与我对三个条目的独立方案一致,并在唯一微妙之处做得更好: 批准推迟到 CI 在 — Qwen Code · qwen3.8-max Reviewed at |
Code Coverage Summary
CLI Package - Full Text ReportCore Package - Full Text ReportFor detailed HTML reports, please see the 'coverage-reports-22.x-ubuntu-latest' artifact from the main CI run. |
qwen-code-ci-bot
left a comment
There was a problem hiding this comment.
LGTM, looks ready to ship — CI landed green after the review. ✅
qwen-code-ci-bot
left a comment
There was a problem hiding this comment.
Reviewed — no blockers. Suggestions are inline.
Test Plan (not a blocker): src/commands/review/fetch-pr.test.ts — no such file or directory; src/commands/review/agent-prompt.test.ts — no such file or directory.
— qwen3.8-max via Qwen Code /review (v0.21.12)
|
@qwen-code /takeover |
|
🤝 Takeover engaged: the autofix loop now manages this PR — it will address new review feedback and resolve base conflicts until the label is removed or the round cap is reached. Remove the 中文说明🤝 已接管:autofix 循环现在管理此 PR —— 将持续处理新的评审反馈与 base 冲突,直到移除标签或达到轮次上限。移除 |
|
🤖 Addressed the latest review feedback (round 1/100). What changed, and what I pushed back on: · 已处理最新评审反馈(第 1/100 轮)。改动内容与我反驳保留之处如下: Autofix review round — PR #9258Round disposition: all three inline Suggestions addressed and resolved in code (one commit: Feedback pointsR1-1 —
|
qwen-code-ci-bot
left a comment
There was a problem hiding this comment.
Test Plan (not a blocker): src/commands/review/fetch-pr.test.ts — no such file or directory; src/commands/review/agent-prompt.test.ts — no such file or directory.
— qwen3.8-max via Qwen Code /review (v0.21.12)
|
Closeout summary: fixed the deadline-env leak in the retirement-note test, added the missing refused-path no-prompt assertion, restored the PR body template details, and resolved the helper-extraction suggestion as out of scope for this test/prose PR. Verification: Prettier and git diff check passed; focused vitest is locally blocked before collection by the existing missing ajv/dist/2020.js dependency. |
|
🤖 Reviewed the latest feedback — no changes needed. Why, point by point: · 已审阅最新反馈——无需改动。逐点说明原因如下: All three round-2 findings (filed at commit 0fddd02) were already handled by the branch's latest commit a7a6a59. This round re-verified each against the code with probes instead of re-implementing them, and found nothing left to change — hence no new commit. 1. [Critical] R2-1 — the retirement-note test's no-clock arm read the ambient 2. [Suggestion] R2-3 — the 3. [Suggestion] R2-2 — extract the shared clock-gate test scaffold (rc:3791469858). Remains declined, exactly as already recorded in its thread: the extraction would only reduce test duplication, it is not needed to close the clock-cap bug, and this is a focused test/prose PR. Declining keeps the diff at its current size instead of growing it with a refactor (AGENTS.md Simplicity First). The thread stays open with that reply; no duplicate reply was posted this round. 4. The CHANGES_REQUESTED review state / "Test Plan (not a blocker)" note. The only defect that review named was the Critical in point 1, which is fixed and re-verified above. The Test Plan note is the deterministic The remaining feedback items (the three "Fixed in 0fddd02" replies and the closeout summary) are this loop's own earlier-round records, not new feedback. Verification
中文说明第二轮审查的三个发现(提交于 0fddd02 之上)均已由本分支最新提交 a7a6a59 处理。本轮通过探针逐一重新验证,未发现任何需要改动的内容——因此没有新提交。 1. [Critical] R2-1 —— retirement-note 测试的无时钟分支读取了环境中的 2. [Suggestion] R2-3 —— 3. [Suggestion] R2-2 —— 抽取共享的时钟门禁测试脚手架(rc:3791469858)。 维持拒绝,理由与其线程中已记录的完全一致:该抽取仅能减少测试重复代码,对关闭时钟上限 bug 并非必需,且本 PR 是聚焦的测试/文案 PR。拒绝可使 diff 保持当前规模,而不是因重构而膨胀(AGENTS.md 简单优先原则)。线程保持打开并保留该回复;本轮未重复回帖。 4. CHANGES_REQUESTED 审查状态 / "Test Plan (not a blocker)" 备注。 该审查指出的唯一缺陷即第 1 点的 Critical,已修复并重新验证。Test Plan 备注来自确定性的 其余反馈条目(三条 "Fixed in 0fddd02" 回复与收尾总结)是本循环早先轮次自身的记录,不属于新反馈。 验证
Base-conflict check · 基分支冲突检查: no conflict with main. · 与 main 无冲突。 🧠 Handled by Qwen Code · model/模型 |
|
@qwen-code /review |
|
Qwen Code review request accepted. Review is queued in workflow run. |
qwen-code-ci-bot
left a comment
There was a problem hiding this comment.
Reviewed. Suggestions are inline.
Not explored to full depth (tool budget reached): "agent 4": none — I finished every check my dimension required within budget..
Test Plan (not a blocker): src/commands/review/fetch-pr.test.ts — no such file or directory; src/commands/review/agent-prompt.test.ts — no such file or directory.
中文说明
已审查。 建议见行内评论。
未探索到全部深度(达到工具调用预算):"agent 4":none — I finished every check my dimension required within budget.。
Test Plan(非阻断):src/commands/review/fetch-pr.test.ts — no such file or directory; src/commands/review/agent-prompt.test.ts — no such file or directory。
— qwen3.8-max via Qwen Code /review (v0.21.12)
|
Closeout from resolve-pr-comments: changed report tests to reuse the shared makeDiff helper instead of the byte-identical private addFile helper. Verified: npx vitest run src/commands/review/lib/report.test.ts (13 passed) and git diff --check. Commit: aa14195. Pending: new push checks are queued/running. |
|
🤖 Reviewed the latest feedback — no changes needed. Why, point by point: · 已审阅最新反馈——无需改动。逐点说明原因如下: Autofix review round: no action neededAll three feedback items are status confirmations for work that already landed on this branch; none of them requests a change. No code was modified this round. Triage
Verification evidence
中文说明Autofix 审查轮次:无需操作三条反馈均为本分支已合入工作的状态确认,没有任何一条要求新的改动。本轮未修改任何代码。 分类处理
验证证据
Base-conflict check · 基分支冲突检查: no conflict with main. · 与 main 无冲突。 🧠 Handled by Qwen Code · model/模型 |
|
🤖 Reviewed the latest feedback — no changes needed. Why, point by point: · 已审阅最新反馈——无需改动。逐点说明原因如下: Autofix review round: no action neededThis round triaged the feedback collected since the last evaluation (2026-08-16T12:32:25Z). It contained a single item:
Disposition: no action. This notice carries no review findings — no defect claims, no suggestions, no failed checks. There is nothing in the PR code to address:
No code changes were made this round, and no commit was created. 中文说明Autofix 评审轮次:无需处理本轮对上次评估(2026-08-16T12:32:25Z)之后收集的反馈进行了分类。其中只包含一条内容:
处置结果:无需处理。 该通知不包含任何评审发现——没有缺陷报告、没有改进建议、也没有失败的检查。本 PR 的代码中没有任何需要处理的问题:
本轮没有进行任何代码改动,也没有创建任何提交。 Base-conflict check · 基分支冲突检查: no conflict with main. · 与 main 无冲突。 🧠 Handled by Qwen Code · model/模型 |
# Conflicts: # packages/cli/src/commands/review/fetch-pr.test.ts
|
Closeout from resolve-pr-comments automation: Changed: merged latest main and resolved the fetch-pr test conflict by keeping both the round-cap deadline typing and the newer diff-plan/git probe mocks. Verified: conflict markers cleared and git diff --check passed. Local focused vitest was blocked by the existing ajv/dist/2020.js dependency resolution issue. Pending: post-push CI/automatic review. |
qwen-code-ci-bot
left a comment
There was a problem hiding this comment.
Reviewed — no blockers. Suggestions are inline.
Test Plan (not a blocker): src/commands/review/fetch-pr.test.ts — no such file or directory; src/commands/review/agent-prompt.test.ts — no such file or directory.
中文说明
已审查——无阻断问题。 建议见行内评论。
Test Plan(非阻断):src/commands/review/fetch-pr.test.ts — no such file or directory; src/commands/review/agent-prompt.test.ts — no such file or directory。
— qwen3.8-max via Qwen Code /review (v0.21.12)
|
🤖 Addressed the latest review feedback (round 3/100). What changed, and what I pushed back on: · 已处理最新评审反馈(第 3/100 轮)。改动内容与我反驳保留之处如下: Autofix round summary — PR #9258Feedback points and decisions
Changes
Conflict notes
Verification
Not run (not applicable): integration tests after 中文说明Autofix 本轮总结 — PR #9258反馈点与决定
变更
冲突说明
验证
未运行(不适用): Base-conflict check · 基分支冲突检查: no conflict with main. · 与 main 无冲突。 Re-review when you have a moment. After round 100 this bot stops and leaves the PR for a human. · 有空请复审;第 100 轮后本 bot 停止并将 PR 交给人工。 🧠 Handled by Qwen Code · model/模型 |
|
Removed the duplicate fetch-pr mock defaults and resolved the review thread. Verification: |
qwen-code-ci-bot
left a comment
There was a problem hiding this comment.
No issues found. LGTM! ✅
Test Plan (not a blocker): src/commands/review/fetch-pr.test.ts — no such file or directory; src/commands/review/agent-prompt.test.ts — no such file or directory.
中文说明
未发现问题。LGTM!✅
Test Plan(非阻断):src/commands/review/fetch-pr.test.ts — no such file or directory; src/commands/review/agent-prompt.test.ts — no such file or directory。
— qwen3.8-max via Qwen Code /review (v0.21.12)
|
🤖 Reviewed the latest feedback — no changes needed. Why, point by point: · 已审阅最新反馈——无需改动。逐点说明原因如下: Autofix review round — no action neededNo new actionable feedback arrived for this round, so no code changes were made and nothing was committed. What was triaged:
Branch state was re-verified against that report: the duplicate fetch-pr mock defaults are gone (each default is asserted exactly once in the 中文说明Autofix 审查轮次 — 无需处理本轮没有收到新的可处理反馈,因此未做任何代码改动,也没有提交任何内容。 本次分类的内容:
同时对照该汇报重新核实了分支状态:fetch-pr 中重复的 mock 默认值已经移除( Base-conflict check · 基分支冲突检查: no conflict with main. · 与 main 无冲突。 🧠 Handled by Qwen Code · model/模型 |
Resolve the fetch-pr.test.ts conflict between this PR's round-cap clock test (#9256) and main's worktree-lease lock/rollback suites (#9211): both blocks land at the same insertion point, so keep both. The import conflict is the union of both sides. SKILL.md merged cleanly — main's lease prose and this PR's round-cap prose occupy distinct sections.
|
🤖 Addressed the latest review feedback (round 4/100). What changed, and what I pushed back on: · 已处理最新评审反馈(第 4/100 轮)。改动内容与我反驳保留之处如下: Autofix round summary — PR #9258Feedback triageThis round carried no actionable review feedback: the prepared What changed this roundA single merge commit bringing Conflict resolution notes
No source logic changed this round; the merge only combines already-reviewed Dispositions
VerificationEach command actually run and its result:
No settings source changed, so 中文说明Autofix 本轮总结 — PR #9258反馈分类本轮没有需要处理的评审反馈:工作流准备的 本轮改动一个单独的合并提交(merge commit),将 冲突解决说明
本轮没有改动任何源码逻辑;该合并只是把两侧均已通过评审的工作组合在一起。 处理结论
验证实际运行的每条命令及其结果:
没有改动任何 settings 源文件,因此无需执行 Base-conflict check · 基分支冲突检查: conflicted with main — resolved in this push. · 与 main 有冲突——已在本次推送中解决。 Re-review when you have a moment. After round 100 this bot stops and leaves the PR for a human. · 有空请复审;第 100 轮后本 bot 停止并将 PR 交给人工。 🧠 Handled by Qwen Code · model/模型 |
|
Qwen Code review did not complete successfully. The review pipeline failed before a review could be posted. A transient error is retried automatically; if you are seeing this, retry with |
qwen-code-ci-bot
left a comment
There was a problem hiding this comment.
Test Plan (not a blocker): src/commands/review/fetch-pr.test.ts — no such file or directory; src/commands/review/agent-prompt.test.ts — no such file or directory.
中文说明
Test Plan(非阻断):src/commands/review/fetch-pr.test.ts — no such file or directory; src/commands/review/agent-prompt.test.ts — no such file or directory。
— qwen3.8-max via Qwen Code /review (v0.21.13)
|
🔀 Base updated: red check(s) [Test (ubuntu-latest, Node 22.x)] pass on current main — merged current main via update-branch; CI will re-run. 中文说明🔀 已更新 base:红色检查 [Test (ubuntu-latest, Node 22.x)] 在当前 main 上通过 —— 已通过 update-branch 合入当前 main,CI 将重新运行。 |
qwen-code-ci-bot
left a comment
There was a problem hiding this comment.
No blocking issues. LGTM! ✅
Not explored to full depth (tool budget reached): "agent 3b": root-causing the intermittent --chunk test failure (which gate input flips under vitest; re-running the original 4-file parallel configuration to force reprod…; "agent 1a": full packages/cli suite run ( npm test shape for the review / core domains) — not executed; the flake investigation consumed the remaining run budget.; "agent 6a": pinpoint the exact interleaving vector for the flaky failure (further reproduction attempts / pool-instrumented runs).
Test Plan (not a blocker): src/commands/review/fetch-pr.test.ts — no such file or directory; src/commands/review/agent-prompt.test.ts — no such file or directory.
Deferred under the convergence posture (round 8, not a blocker) — recorded, not requested in this round:
packages/cli/src/commands/review/lib/test-utils.ts:64 — [review] makeDiff consolidation missed the capture-local.test.ts copy
中文说明
无阻断问题。LGTM!✅
未探索到全部深度(达到工具调用预算):"agent 3b":root-causing the intermittent --chunk test failure (which gate input flips under vitest; re-running the original 4-file parallel configuration to force reprod…;"agent 1a":full packages/cli suite run ( npm test shape for the review / core domains) — not executed; the flake investigation consumed the remaining run budget.;"agent 6a":pinpoint the exact interleaving vector for the flaky failure (further reproduction attempts / pool-instrumented runs)。
Test Plan(非阻断):src/commands/review/fetch-pr.test.ts — no such file or directory; src/commands/review/agent-prompt.test.ts — no such file or directory。
收敛姿态下延后(第 8 轮,非阻断)——已记录,本轮不要求修改:共 1 条(原文未翻译,列表见上方英文部分)。
— qwen3.8-max via Qwen Code /review (v0.21.13)
|
🤖 Reviewed the latest feedback — no changes needed. Why, point by point: · 已审阅最新反馈——无需改动。逐点说明原因如下: Autofix review round — no code changes this roundBoth feedback items in this round were triaged against the current branch head ( 1. Downgraded review citing CI failures (rv:4948227914) — declined, not reproducibleThe review states the code itself was reviewed and approved; the verdict was downgraded to Comment solely because CI was red. Reproduction attempt on the current head:
No code-level defect remains to fix; the workflow's independent CI remains the final verification gate. 2. Test Plan note: "no such file or directory" for two test files — declined, paths verified
3. Review pipeline fallback comment (ic:5311129431) — no action neededA transient review-pipeline error that is retried automatically; it involves no code change. 中文说明Autofix 审查轮次 — 本轮无代码变更本轮的两条反馈均已在当前分支头部( 1. 因 CI 失败而降级的审查(rv:4948227914)— 拒绝,无法复现该审查表明代码本身已经审查并通过;结论被降级为评论仅因当时 CI 为红。在当前分支头部上的复现尝试:
没有遗留的代码级缺陷需要修复;工作流的独立 CI 仍是最终验证关卡。 2. Test Plan 备注:两个测试文件 "no such file or directory" — 拒绝,路径已核实
3. 审查流水线兜底评论(ic:5311129431)— 无需处理这是一次会自动重试的审查流水线瞬时错误;不涉及任何代码变更。 Base-conflict check · 基分支冲突检查: no conflict with main. · 与 main 无冲突。 🧠 Handled by Qwen Code · model/模型 |
|
Released in v0.21.14. |
What this PR does
This is the single prose/coverage pass #9256 deferred until the round-cap stack had one settled state to describe. The PR keeps the change test/prose-only: it syncs the review skill prose with the clock-qualified 3-round huge tier, adds fetch-pr coverage for capture-time budget wiring, and pins the
--chunk/--all-chunksround gates against deadline-aware cap drift.Why it's needed
The prose items were deferred because each review round of the stack found more drift than it closed. With the stack landed, there is now one settled state to describe. The coverage items are not behavior gaps, but they are places where a regression would otherwise be invisible to mutation.
Reviewer Test Plan
How to verify
Run the review command tests that cover the changed prose and cap-clock paths:
npx vitest run src/commands/review/fetch-pr.test.ts,npx vitest run src/commands/review/agent-prompt.test.ts, and the broadernpx vitest run src/commands/review/suite if dependencies are available. Expected result: fetch-pr records a 5-round huge tier without a clock and 3 with one; the per-chunk and all-chunks gates refuse round 4 only when a deadline is present; no prompt record is built on the refused per-chunk path.Evidence (Before & After)
N/A for UI behavior — this is test/prose-only. Mutation probes on the branch showed the new pins fail when the deadline wiring is hardcoded away. Latest automation validation also ran Prettier and
git diff --check; the focused vitest command was blocked locally before test collection by the existing missingajv/dist/2020.jsdependency.Tested on
Environment (optional)
Unit tests from the branch author plus automation Prettier/diff checks. Current local focused vitest startup is blocked by missing
ajv/dist/2020.jsbefore this test file collects.Risk & Scope
Linked Issues
Part of #9256
中文说明
本 PR 做了什么
这是 #9256 在 round-cap 栈稳定后保留的唯一文案和覆盖率收尾。改动只涉及测试和文案:把 review skill 中剩余的 3 轮 huge tier 描述补上 clock 条件,补齐 fetch-pr 捕获预算接线的覆盖,并把
--chunk/--all-chunks的轮次 gate 固定在 deadline-aware cap 行为上。为什么需要
这些文案项之前被推迟,是因为栈的每轮 review 都还在发现新的漂移。现在实现状态稳定,可以一次性写清楚。覆盖率项不是当前行为缺口,但属于 mutation 能证明的静默回归点。
Reviewer Test Plan
How to verify
运行覆盖这些路径的 review 命令测试:
npx vitest run src/commands/review/fetch-pr.test.ts、npx vitest run src/commands/review/agent-prompt.test.ts,依赖完整时可运行npx vitest run src/commands/review/。预期:fetch-pr 在无 clock 时记录 5 轮 huge tier,有 deadline 时记录 3 轮;per-chunk 和 all-chunks gate 只在存在 deadline 时拒绝第 4 轮;per-chunk 拒绝路径不会生成 prompt 记录。Evidence (Before & After)
非 UI 行为,N/A。分支上的 mutation probe 已证明 deadline 接线被硬编码掉时这些 pin 会失败。本轮自动化还运行了 Prettier 和
git diff --check;本地 focused vitest 在收集测试前被既有的 missingajv/dist/2020.js依赖阻断。Tested on
Environment (optional)
分支作者已运行单测;本轮自动化完成 Prettier/diff 检查。当前本地 focused vitest 在测试收集前因缺少
ajv/dist/2020.js阻断。Risk & Scope
Linked Issues
Part of #9256