fix(triage): make Stage 1-pre subsumption check large-file safe - #10396
fix(triage): make Stage 1-pre subsumption check large-file safe#10396yiliang114 wants to merge 18 commits into
Conversation
The Stage 1-pre duplicate check prescribed one contents-API download per production file. That endpoint silently returns HTTP 200 with empty content above ~1 MiB (content_len: 0, encoding: "none", no error), so a file at or above the ceiling can never be judged subsumed and the check breaks silently exactly where a duplicate is most expensive. The per-file downloads also spend one REST call per file against the shared CI PAT's rate limit and transit every full blob through the agent context. Replace the downloads with one constant-cost comparison: this PR's patch vs the merged closer's patch, two gh pr diff calls for any number of files. The line-set definition of subsumption is preserved, adapted to the two patches, and the closer patch's frozen merge base is called out (a later edit/revert of the same line still counts as covered; the close comment invites reopening for that case). gh pr diff is used because the agent's deny list forbids git fetch, so a shallow-fetch-and-diff variant is not executable in the triage runtime. Verified against the live API: package-lock.json (1,255,343 B) returns empty content via the contents endpoint, while gh pr diff streams the full 176KB lockfile section of PR #9703. Fixes #10322 Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
|
Re-run after the cutdown: this branch previously carried the issue's proposed two-frozen-patches design (~339 source diff lines at round 10, nine review rounds deep); the last two commits retire it in favor of the minimal fix — 21+/2− across the spec and its test. This pass reviews the reduced diff; the earlier stage comments here reviewed the old shape at
Moving on to code review. 🔍 中文说明缩减后的重新运行:本分支此前实现的是 issue 提出的"两份冻结补丁"方案(第 10 轮时源码 diff 约 339 行、历经九轮审查);最近两个 commit 放弃了该方案,改为最小修复——规范与测试共 21+/2−。本轮审查的是缩减后的 diff;本贴中较早的阶段评论审查的是
进入代码审查。🔍 — Qwen Code · qwen3.8-max Reviewed at |
Code reviewMy independent baseline for "the contents API JSON representation empties out at ≥1 MiB" is exactly what this PR does: request the raw media type. It lifts the ceiling without changing the comparison target or inventing patch-equivalence rules. The alternatives are worse here — the blobs API has the same representation ceiling, and the issue's two-patch comparison was already attempted on this very branch: it grew into ~339 lines of coverage machinery with its own false-close surface until round 9 asked whether the shape was still right, and the author cut it. The new test's The nine spec lines hold up on a full read:
The twelve test lines are real pins: every asserted substring matches the new spec text verbatim, in the TestingUnattended CI run (workflow_dispatch) — no PR code was built or executed in this session; the evidence below is the PR's own CI on
One row per check name (latest run); skipped checks omitted; failures sort first. / 每个检查名一行(取最新一次运行),省略 skipped,失败项排在最前。 Everything green on the reviewed head — including the web-shell smoke that was cancelled by its own timeout on the previous head, and the Test lane that carries the new pin (the macOS/windows matrix legs and the rest of the skipped entries are bot-orchestration or platform lanes that didn't trigger). Both What the green suite proves: the pins pass and nothing else regressed. It cannot prove a future triage agent will execute the new instructions correctly — no sandbox lane settles instruction fidelity for a workflow spec. The one behavioral premise in the PR was verified read-only during this run (no code executed): $ gh api "repos/QwenLM/qwen-code/contents/package-lock.json?ref=main" --jq '{size,encoding,content_len:(.content|length)}'
{"content_len":0,"encoding":"none","size":1257810} # JSON representation: silent ceiling
$ PATH_ENCODED=$(jq -rn --arg value "package-lock.json" '$value | @uri')
$ gh api -H "Accept: application/vnd.github.raw+json" --method GET \
"repos/QwenLM/qwen-code/contents/$PATH_ENCODED" -f ref=main | wc -c
1257810 # raw media type: complete
$ gh api -H "Accept: application/vnd.github.raw+json" --method GET \
"repos/QwenLM/qwen-code/contents/$(jq -rn --arg v 'packages/core/package.json' '$v | @uri')" -f ref=main -i | head -1
HTTP/2.0 200 OK # encoded nested path resolves
$ gh api -H "Accept: application/vnd.github.raw+json" --method GET \
"repos/QwenLM/qwen-code/contents/no-such-file" -f ref=main -i | head -1
HTTP/2.0 404 Not Found # absence is a clean 404中文说明代码审查:面对"contents API 的 JSON 表示在 ≥1 MiB 时静默清空",我独立想到的基线方案正是本 PR 的做法:改用 raw 媒体类型。它突破上限,同时不改变比较目标、也不发明补丁等价规则。备选方案都更差——blobs API 有同样的表示上限;issue 提出的双补丁对比已在本分支上尝试过:它长成约 339 行的覆盖机制、带来自身的误关闭面,直到第 9 轮审查质疑形态是否仍然正确,作者才将其砍掉。新测试中的 九行规范文本通读后成立:谓词不变——subsumption 仍是"每条新增生产行都存在于默认分支、每条删除行都已不存在",只有抓取表示从 JSON 换成 raw,没有新的等价语义混入;404 与抓取失败被区分对待——编码路径请求返回 404 即"已知缺失",谓词直接作用于该状态(PR 新增的文件在默认分支 404 → 剩余差异;PR 删除的文件 404 → 已覆盖),其他任何 raw 抓取失败则 subsumption 未验证:绝不关闭,标记并升级,在该闸门唯一的不可逆动作上失败关闭;路径经 十二行测试是真实锚点:每条断言子串都与新规范文本逐字吻合,且都落在 1-pre 段落范围内。非阻断、已在第 11 轮留档:两种失败结局(404 → 已知缺失、其他失败 → 升级)以自由子串锚定,二者语义互换仍能通过——这是散文子串锚点的固有局限,记录于审查台账,本轮不作为修改要求。 测试:无人值守 CI 运行(workflow_dispatch)——本会话未构建或执行任何 PR 代码;证据为经 API 获取的 绿套件证明的是锚点通过且无其他回归,无法证明未来 triage agent 会正确执行新指令——没有任何沙箱通道能为工作流规范验证"指令保真度"。PR 中唯一的行为性前提已在本轮以只读方式复核(未执行代码):1,257,810 字节的 lockfile 在 JSON 表示下内容为空,raw 表示下完整返回;编码后的嵌套路径可解析;缺失路径返回干净 404(见上方英文部分的 console 输出)。 — Qwen Code · qwen3.8-max Reviewed at |
|
Confidence: 4/5 — solid minimal fix for a measured failure; the reservations below are non-blocking. Stepping back: this PR's history is the review process working — eventually. The issue proposed replacing the per-file downloads with a two-patch comparison; this branch implemented that, and nine review rounds later the mechanism had grown to ~339 lines of patch-equivalence rules, each closing a false-close hole the previous round found, until round 9 asked a human whether the shape of the change was still right. The answer arrived as the last two commits: cut back to the smallest thing that fixes the observed bug. Keep the existing predicate, change the fetch representation, fail closed on anything that isn't a clean 404. Twenty-three lines instead of three hundred thirty-nine. That is the right call — the rate-limit and context-transit concerns the issue also raised have never been reproduced as failures, and a fix without a reproduced failure is a hypothesis. Against my independent proposal (raw media type with the same 404/failure split) the implementation matches; the premise re-verified live this run (1,257,810-byte lockfile: JSON empty, raw complete; encoded nested paths resolve; absence is a clean 404); CI is fully green on the reviewed head with nothing pending. Round 11's review of this exact head posted no findings; the standing What keeps this at 4 rather than 5: the two failure-mode outcomes are pinned as free substrings, so a swap between them survives green (recorded by round 11, inherent to substring pinning); merging closes #10322 including its secondary request-count concern that this PR deliberately leaves open — worth a follow-up issue if that's still wanted; and the spec's real proof is the first live Stage 1-pre run that exercises it. Approving, pinned to the reviewed commit. 中文说明信心:4/5 —— 针对实测故障的扎实最小修复;以下顾虑均为非阻断。 整体看:这个 PR 的历程说明审查机制最终起了作用。issue 提议用双补丁对比替换逐文件下载;本分支照此实现,九轮审查之后该机制长成约 339 行的补丁等价规则——每一轮都在补上一轮发现的误关闭漏洞——直到第 9 轮请人判断这次改动的整体形态是否仍然正确。答案以最近两个 commit 的形式出现:砍回到能修复已观测 bug 的最小方案。保留既有谓词,只更换抓取表示,除干净的 404 外一律失败关闭。二十三层行,而不是三百三十九行。这是正确的选择——issue 同时提出的配额与上下文开销关切从未有已复现的失败支撑,没有复现的修复只是假设。 与我独立的方案(raw 媒体类型 + 同样的 404/失败二分)相比,实现一致;前提在本轮线上复核成立(1,257,810 字节 lockfile:JSON 为空、raw 完整;编码嵌套路径可解析;缺失为干净 404);审查 head 上 CI 全绿且无待决项。第 11 轮审查针对的正是当前 head,未发布任何发现;挂着的 给 4 分而非 5 分的原因:两种失败结局以自由子串锚定,互换仍能通过(第 11 轮已留档,属子串锚点固有局限);合并将关闭 #10322,包括本 PR 刻意不处理的次要请求数关切——如仍需要,值得另开 follow-up issue;且该规范真正的检验是第一次走到 Stage 1-pre 的线上运行。 予以批准,锚定到所审查的 commit。 — Qwen Code · qwen3.8-max Reviewed at |
qwen-code-ci-bot
left a comment
There was a problem hiding this comment.
Partially reviewed — gaps disclosed.
Not reviewed: reverse audit — stopped before round 7 by the review time budget.
中文说明
仅完成部分审查,审查缺口已披露。
未审查:反向审计——评审时间预算不足,未能开始第 7 轮。
— qwen3.8-max via Qwen Code /review (v0.22.2)
Pick up the classify-release-notes helper-test fix (#10402) so CI runs green. Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
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. |
…closed - Rewrap the subsumption bullet so both pinned phrases stay contiguous; the red string-pin test 'defines subsumption over the full diff' goes green again. - Select the closer's repository in the closer GraphQL query and accept only merged closers from $REPO itself; a foreign-repo closer cannot be verified and is treated as unresolved instead of colliding with a same-number PR in this repo. - Run the closer query once per closed-as-completed issue (never once outside the loop, where bash leaves $N bound to the last element), bind MERGED_PR/MERGED_FLAG/MERGED_REPO at the query site, collect the resolved closers in ascending linked-issue order, and let the first subsuming closer win. - Guard both patch fetches (exit status + non-empty): a failed or empty fetch never reaches the judgment as an empty patch. - Restore structure to the subsumption criterion: per-file section matching, same-path coverage for sections with no line-level representation (rename/binary/mode/empty), and add+delete line cancellation, so rename-only diffs can no longer close vacuously. - Pin the new invariants in the stage 1-pre duplicate gate suite. Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
…h semantics Review feedback on the subsumption criterion: - The "Fully subsumed" quantifiers range over production sections only, while the remaining-delta bullet lists "any non-production addition", leaving a diff whose production lines are fully covered but which ALSO changes tests/docs ambiguously routable to the close exit. State that subsumption ranges over the ENTIRE diff so that shape routes to the remaining-delta exit, matching SKILL.md's "entire diff" boundary. - The close comment asserted the changes are "already on the default branch", which is false under the frozen-patch rule when the closer's lines were later edited or reverted. Reword it to "covered by #M's merged fix" (both languages), widen the reopen invitation to name the revert/edit case the frozen-patch sentence points at, and reword the blast-radius clause to match. Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
The stage 1-pre duplicate gate block pins every other 1-pre invariant in string-pin style, but nothing matched the patch paths or the "Do NOT download" prohibition. A future edit restoring per-file contents-API downloads would re-introduce the silent >=1 MiB failure mode (the endpoint answers HTTP 200 with empty content) while every existing assertion stays green. Pin both gh pr diff fetches and the prohibition so removing either turns the suite red. Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
qwen-code-ci-bot
left a comment
There was a problem hiding this comment.
Reviewed — no blockers. Suggestions are inline.
中文说明
已审查——无阻断问题。 建议见行内评论。
— qwen3.8-max via Qwen Code /review (v0.22.2)
One closer can close several linked issues, so the same closer number could enter $MERGED_PRS twice; the duplicate iteration's `>` truncated the already-fetched patch before `gh` retried, and a failed retry left an empty patch that flipped the verdict. Dedup at accumulation. A dropped (unfetchable) closer also never left $MERGED_PRS, making the "every closer fetch failed" escalation unreachable: the judgment branch fired on a non-empty list holding a 0-byte patch. Accumulate FETCHED_PRS inside the fetch loop and reassign $MERGED_PRS to the fetchable set so both the judgment iteration and the empty-set branch read it. Pin both guards in the stage 1-pre block; removing either turns the new test red (mutant-verified). Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
The foreign-repo rejection test pinned the GraphQL field and the read -r capture but not the gate condition that performs the rejection; deleting `&& [ "$MERGED_REPO" = "$REPO" ]` kept every pin green while a foreign closer's colliding number entered $MERGED_PRS. Pin the condition itself. The fail-closed test's name covered every patch fetch but its assertions pinned only the PR-patch guard; pin both closer-side guard lines so dropping either turns the suite red. Mutant-verified: each deleted clause fails its pin. Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
…anti-vacuity clauses
R1-6: the blast-radius sentence claimed an accidental linkage can
"never" reach a substantively wrong close, but subsumption is judged
against the closer's frozen patch, not the live default branch — a
later-reverted fix can still subsume a re-implementation. State the
true bound: at worst a duplicate close against a merged fix that
contains the change, reversible via the reopen invitation.
R2-1: "ascending linked-issue order" was false — $ISSUES comes from
lexicographic sort -u. Say "the deterministic $ISSUES order" in all
places and note the deduped list, pinned.
R2-5: the remaining-delta enumeration used union quantification ("a
line no closer's patch adds"), which is empty when a fix is split
across two closers; reword per closer to match the "Fully subsumed"
check it negates, pinned.
R2-4: pin the anti-vacuity clauses (add+delete cancellation,
matched-sections quantifiers, same-path coverage for sections without
line-level representation); deleting any clause now turns the suite
red.
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
qwen-code-ci-bot
left a comment
There was a problem hiding this comment.
Partially reviewed — gaps disclosed.
Not explored to full depth (tool budget reached): "agent 1b": running scripts/tests/qwen-triage-workflow.test.js through vitest itself — the worktree has no node_modules and npm install (which triggers the full prep….
Not reviewed: reverse audit — stopped before round 6 by the review time budget.
Deferred under the convergence posture (round 3, not a blocker) — recorded, not requested in this round:
.qwen/skills/triage/references/pr-workflow.md:355 — [review] Docs lumped into the non-production set contradicts the Stage 0 exclusion set this gate borrows.qwen/skills/triage/references/pr-workflow.md:407 — [probe] Rewritten close comment ships with zero test coverage, including the reopen invitation the safety argument depends on
Convergence: round 3 posted 5 inline comment(s), 4 of them reported for the first time; the previous round posted 9 (9 new). Findings keep coming back to the same files: .qwen/skills/triage/references/pr-workflow.md (findings in rounds 1, 2; 2 more now); scripts/tests/qwen-triage-workflow.test.js (findings in round 2; 2 more now). A cluster that keeps producing siblings usually means the fixes are treating instances of a shared root cause — triaging that cause before the next round, or splitting an independent cluster into its own pull request, tends to end the loop faster than fixing them one at a time. (Observation only — nothing was withheld from this review because of this observation.)
中文说明
仅完成部分审查,审查缺口已披露。
未探索到全部深度(达到工具调用预算):"agent 1b":running scripts/tests/qwen-triage-workflow.test.js through vitest itself — the worktree has no node_modules and npm install (which triggers the full prep…。
未审查:反向审计——评审时间预算不足,未能开始第 6 轮。
收敛姿态下延后(第 3 轮,非阻断)——已记录,本轮不要求修改:共 2 条(原文未翻译,列表见上方英文部分)。
收敛情况:第 3 轮发布了 5 条行内评论,其中 4 条是首次提出;上一轮发布了 9 条(其中 9 条首次提出)。发现反复回到同一批文件:.qwen/skills/triage/references/pr-workflow.md(第 1、2 轮已出过发现,本轮又有 2 条);scripts/tests/qwen-triage-workflow.test.js(第 2 轮已出过发现,本轮又有 2 条)。一个不断再生兄弟发现的簇,通常意味着逐条修复只在处理同一根因的实例——先定位并处理该根因,或把独立的簇拆成单独的 PR,通常比逐条修复更快结束循环。(仅为观察——本轮评审未因此扣留任何内容。)
— qwen3.8-max via Qwen Code /review (v0.22.2)
… issue The line-coverage quantifiers were set membership over line text: one occurrence in the closer's patch covered any number of identical deletions (or additions) in this PR's patch. Blank lines make the hole commonplace, and a closer deleting one occurrence of a duplicated line let the gate close a PR whose remaining occurrence never landed. Quantify by occurrences instead: every covered line must appear in the closer's patch at least as many times as this PR adds or deletes it. Also state which linked issue the singular close comment names when the chosen closer closed several: the FIRST one the closer closed, in $ISSUES order, so the irreversible comment is deterministic. Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
Pin the new occurrence-count clauses in the anti-vacuity test, and the three wiring lines whose deletion silently kills the duplicate gate while every existing pin stays green: the jq output interpolation that feeds MERGED_REPO, the dedup case arm that populates MERGED_PRS, and the close-comment selection rule for a closer of several linked issues. Each pin is mutant-verified red against the corresponding deletion. Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
qwen-code-ci-bot
left a comment
There was a problem hiding this comment.
Reviewed. Suggestions are inline.
1 Suggestion-level finding(s) this review confirmed are already reported on this PR and are not repeated:
- close-comment reopen-invitation clause unpinned (pr-workflow.md:417-419) — already reported in round 3's deferral list (review 5054598473)
Convergence: round 4 posted 2 inline comment(s), 1 of them reported for the first time; the previous round posted 5 (4 new). Findings keep coming back to the same files: scripts/tests/qwen-triage-workflow.test.js (findings in round 3; 1 more now). A cluster that keeps producing siblings usually means the fixes are treating instances of a shared root cause — triaging that cause before the next round, or splitting an independent cluster into its own pull request, tends to end the loop faster than fixing them one at a time. No Critical finding is open on this round, so merging and moving the remaining Suggestion threads to a follow-up issue is available as an ending — a merged pull request cannot diverge further. (Observation only — nothing was withheld from this review because of this observation.)
中文说明
已审查。 建议见行内评论。
本轮确认的 1 条建议级发现已在 PR 上报告过,不再重复发布(列表见上方英文部分)。
收敛情况:第 4 轮发布了 2 条行内评论,其中 1 条是首次提出;上一轮发布了 5 条(其中 4 条首次提出)。发现反复回到同一批文件:scripts/tests/qwen-triage-workflow.test.js(第 3 轮已出过发现,本轮又有 1 条)。一个不断再生兄弟发现的簇,通常意味着逐条修复只在处理同一根因的实例——先定位并处理该根因,或把独立的簇拆成单独的 PR,通常比逐条修复更快结束循环。本轮没有未决的 Critical,因此"合入后把剩余 Suggestion 线程转到后续 issue"是一个可选的结束方式——已合入的 PR 不会继续发散。(仅为观察——本轮评审未因此扣留任何内容。)
— qwen3.8-max via Qwen Code /review (v0.22.2)
The "Any remaining delta" enumeration named three shapes, but three more
fail subsumption without a nameable delta: an occurrence-count deficit
(the closer's patch adds or deletes a line fewer times than this PR
does), a non-production deletion ("any non-production addition" left
deletions unnamed), and a section with no line-level representation
(rename, binary, mode change, empty file) the closer's patch does not
equivalently change at the same path. Extend the enumeration to negate
the full "Fully subsumed" definition and pin the new clauses in the
per-closer quantification test, so deleting them turns it red.
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
qwen-code-ci-bot
left a comment
There was a problem hiding this comment.
No blocking issues. LGTM! ✅
Deferred under the convergence posture (round 5, not a blocker) — recorded, not requested in this round:
scripts/tests/qwen-triage-workflow.test.js:7031 — [probe] Closer gate's MERGED_FLAG condition unpinned — surviving mutation; sibling entrance of the R4-1 family whose option-(a) decision is on record
中文说明
无阻断问题。LGTM!✅
收敛姿态下延后(第 5 轮,非阻断)——已记录,本轮不要求修改:共 1 条(原文未翻译,列表见上方英文部分)。
— qwen3.8-max via Qwen Code /review (v0.22.3)
CanReader
left a comment
There was a problem hiding this comment.
The safety direction of this change is the right one, and I want to say why explicitly since the diff is mostly prose and easy to skim past.
The old rule gated the only irreversible action — closing a linked issue — on the PR's diff being "fully subsumed by the default branch". That predicate is evaluated against a moving target: main accumulates unrelated commits, so the set of changes it subsumes only ever grows, and the check gets weaker the longer a PR sits. Re-pointing it at the closer's own frozen patch makes the question constant-cost and time-invariant: either the merged fix that closed the issue contains this change or it does not, and that answer does not drift.
It also narrows the predicate, which is the correct direction for an irreversible step. A PR whose change reached main through some other commit is no longer judged subsumed, so it falls through to a request-changes review instead of a close. Failing toward the visible, reversible outcome is exactly what you want when the alternative is closing someone's PR as a duplicate of something that does not actually contain their work.
Two things I would still want pinned, since this is a skill document driving an automated action:
- The revised paragraph says the close is "reversible via the reopen invitation in the close comment". That is a social affordance, not a mechanism — it depends on the close comment actually carrying that invitation. If the structural test in
qwen-triage-workflow.test.jsdoes not already assert that the close template contains the reopen wording, that assertion is worth adding, because the paragraph's safety argument now rests on it. - Resolving "one closer candidate per closed-as-completed linked issue, in the deterministic
$ISSUESorder" is good, but the old text had an explicit note that only the LAST close event counts, since earlier closes belong to previous open/close cycles. Worth making sure that constraint survived the rewrite rather than being implied bytimelineItems(last: 20), which bounds the window but does not by itself pick the most recent event.
Adding repository { nameWithOwner } to the closer query is a good catch — a cross-repo closer would otherwise be indistinguishable from a local PR number.
qwen-code-ci-bot
left a comment
There was a problem hiding this comment.
Partially reviewed — gaps disclosed.
2 Suggestion-level finding(s) this review confirmed are already reported on this PR and are not repeated:
- MERGED_FLAG gate-condition pin gap (surviving mutation) — already recorded in round 5's deferral list (review 5056880994); the author's option-(a) decision on the R4-1 family is on record (comment 3885413853)
- close-comment reopen-invitation pin gap — already reported in round 3's deferral list (review 5054598473), re-noted in round 4 (review 5056175821)
Not reviewed: reverse audit — reached the 10-round cap without converging; rounds 4-8 and 10 each reported siblings of the section-equivalence class (round 10's finding verified and folded into class finding R6-7).
1 Suggestion(s) were drafted inline past the resolved critical posting floor; the CLI moved them into the deferral list below (floor enforcement).
Deferred under the convergence posture (round 6, not a blocker) — recorded, not requested in this round:
.qwen/skills/triage/references/pr-workflow.md:316 — [review] R6-6: The /tmp/stage-1pre-*.patch files this diff introduces are never cleaned: the workflow's "Clean stale agent state" glob matches only stage-*.md , and self-hosted ECS runn…
中文说明
仅完成部分审查,审查缺口已披露。
本轮确认的 2 条建议级发现已在 PR 上报告过,不再重复发布(列表见上方英文部分)。
未审查:reverse audit — reached the 10-round cap without converging; rounds 4-8 and 10 each reported siblings of the section-equivalence class (round 10's finding verified and folded into class finding R6-7)。
1 条 Suggestion 在已解析的 critical 发布下限之外被起草为行内评论;CLI 已将其移入下方延后清单(下限强制执行)。
收敛姿态下延后(第 6 轮,非阻断)——已记录,本轮不要求修改:共 1 条(原文未翻译,列表见上方英文部分)。
— qwen3.8-max via Qwen Code /review (v0.22.3)
…ze diffs to escalation Address the two unresolved R6 review criticals on the Stage 1-pre duplicate gate spec: R6-7 (certifies-falsely): the subsumption criterion compared line-text multisets and path only, so a diff whose remaining delta lived in the discarded section structure could be certified "Fully subsumed" and closed — e.g. a PR deleting a file was covered by a closer that empties the same file (same deleted lines, no deletion marker). Define section equivalence over the full structure each section carries: file existence (a deletion is covered only by a same-path deletion, a creation only by a creation), mode header values, the full rename from/to pair, resulting blob hash for line-less sections, and the trailing-newline marker — mirrored into the "Any remaining delta" enumeration so it stays the exact negation. R6-10 (fails-closed): gh pr diff hard-refuses diffs with more than 300 files (HTTP 406 PullRequest.diff too_large) on every retry, so the fail-closed exit 1 aborted every 1-pre run on such a PR before closer resolution — no close, no request-changes, no escalation, ever (PR 9811, 316 files merged, is real traffic of this shape). Route the permanent oversize class to the same unresolved-state escalation as an unfetchable closer; every other fetch failure still aborts fail-closed. Pins: five new anti-vacuity pins (one per equivalence criterion), two mirror pins, and a new oversize-routing pin; each verified red by mutation, and the pre-existing pins (fail-closed guards, remaining-delta enumeration) keep matching. Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
|
@qwen-code /triage |
|
Sandboxed verification: ✅ passed — merge-ready (agent verdict) - workflow run Ran the PR in an isolated, token-free container: A/B against the base build, mock-free harness assertions, targeted gates. Advisory evidence for human reviewers — not a review, an approval, or a CI check. Scripted assertions: 638 passed · 0 failed · 638 total Flakiness gate: ✅ 1 changed test file(s) x 5 identical rounds, no divergence 中文 — 判定:✅ 通过 · 可合入(agent 判定)沙箱验证在隔离、无凭证的容器中执行了该 PR 的代码(与 base 构建 A/B 对照、无 mock harness 断言、定向门禁)。仅作为评审证据,不构成评审、批准或 CI 检查。 脚本断言:638 通过 · 0 失败 · 638 总计 抖动门:✅ 1 changed test file(s) x 5 identical rounds, no divergence Verification reportVerdict: 中文摘要
Central claim and A/BCentral claim: the Stage 1-pre subsumption check no longer depends on the contents API (silent empty response ≥ ~1 MiB) and instead decides from two frozen Live red/green cells (anonymous public endpoints, read-only; witness:
Behavioral A/B of the embedded bash — both arms' snippets extracted verbatim from the specs (
S2 is the flip cell: base's query selects no repository and has no gate, so a cross-repo closing keyword resolving to a merged PR whose number collides in Vacuity of the new tests — mutation matrix (witness:
No survivors, no crosstalk (every row turned exactly its predicted test red). Each layer of the triple foreign-closer defense (M2, M3, and the query-side selection pinned in the same test) is caught by deleting that layer alone, and the combination row M11 confirms the set. The behavioral mutants in the A/B table (S5 no-dedup, S6 no-routing) are the runtime counterparts of M1 and M4. Corrections
FindingsF1 (Suggestion, coverage gap): the close-comment rewording is unpinned. The frozen-patch rewording of the terminal close comment — "covered by #M's merged fix" and the widened reopen invitation naming the later-edit/revert case, in both languages — is asserted by no test, while every clause the PR's own commits claim to pin is mutant-verified in the matrix above. Reverting the comment to the old "already on the default branch" wording (the exact inaccuracy commit 808e5f2 fixed, per its message) would leave all 175 tests green. Non-blocking: the wording is correct as written. The fixture that would pin it: F2 (Nit, observation): the OVERSIZE skip is comment-driven, not mechanical. Inside the fetch block, No blocker found. Notably checked and NOT holding: no verdict path reaches a close on an unfetchable or empty patch (S6/S7/S8 all route to escalation or abort); the dedup uses word-boundary matching so no number can substring-collide; the GraphQL Not covered
MethodologyEnvironment: the CI verify container ( Assertion accounting (all scripted, all executed): suites at head 175 + companion 119; control suites at base 167 + 119; A/B harness 20; mutation matrix 15; gates 15; live premise 8 → 638 pass / 0 fail. Flakiness gate logEvidence imagesHarness scripts and raw logs are in the workflow run artifacts (7-day retention). — Qwen Code · sandboxed verification |
|
Triage re-run completed without a new review.
The stage comments above were updated with the latest result. View workflow run. 上方各阶段评论已更新为最新结果。查看工作流运行。 |
qwen-code-ci-bot
left a comment
There was a problem hiding this comment.
2 Suggestion-level finding(s) this review confirmed are already reported on this PR and are not repeated:
- MERGED_FLAG gate-conjunct pin gap (conjunct deletion admits same-repo unmerged closers) — already recorded in round 5's deferral list (review 5056880994), re-noted in round 6's body (review 5061621463)
- close-comment reopen-invitation pin gap — already reported in round 3's deferral list (review 5054598473), re-noted in rounds 4 and 6
Deferred under the convergence posture (round 7, not a blocker) — recorded, not requested in this round:
.qwen/skills/triage/references/pr-workflow.md:422 — [review] remaining-delta enumeration omits the creation half of file existence.qwen/skills/triage/references/pr-workflow.md:328 — [probe] successful-but-empty PR patch is a permanent class routed to a bare abortscripts/tests/qwen-triage-workflow.test.js:7442 — [probe] OVERSIZE routing guard prefix pinned by no testscripts/tests/qwen-triage-workflow.test.js:7439 — [probe] OVERSIZE write-side redirects pinned by no test.qwen/skills/triage/references/pr-workflow.md:322 — [probe] OVERSIZE brace-group opener unpinnedscripts/tests/qwen-triage-workflow.test.js:7403 — [probe] emptiness guard's || exit 1 suffix pinned only ambiguouslyscripts/tests/qwen-triage-workflow.test.js:7316 — [probe] occurrence-count qualifier unpinned in the adds clausescripts/tests/qwen-triage-workflow.test.js:7354 — [probe] jq interpolation pin does not fix field order vs the read binding.qwen/skills/triage/references/pr-workflow.md:265 — [probe] closer gate's && join pinned by no testscripts/tests/qwen-triage-workflow.test.js:7348 — [probe] closer-resolution plumbing tokens pinned by no testscripts/tests/qwen-triage-workflow.test.js:7349 — [probe] closer herestring wire pinned by no test.qwen/skills/triage/references/pr-workflow.md:332 — [probe] closer-fetch loop header pinned by no test.qwen/skills/triage/references/pr-workflow.md:335 — [probe] --repo "$REPO" on the new gh pr diff fetches pinned by no testscripts/tests/qwen-triage-workflow.test.js:7348 — [probe] closer GraphQL query wiring pinned by no testscripts/tests/qwen-triage-workflow.test.js:7425 — [probe] FETCHED_PRS initializer pinned by no test
中文说明
本轮确认的 2 条建议级发现已在 PR 上报告过,不再重复发布(列表见上方英文部分)。
收敛姿态下延后(第 7 轮,非阻断)——已记录,本轮不要求修改:共 15 条(原文未翻译,列表见上方英文部分)。
— qwen3.8-max via Qwen Code /review (v0.22.3)
Address R6-1 on the Stage 1-pre duplicate gate spec: five of the six section-equivalence criteria were pinned, but line text was still compared as a per-file occurrence multiset, and two structural clauses were under-constrained. - Add the sixth criterion: covered occurrences are matched hunk by hunk, at a corresponding position with matching surrounding context lines, and fail closed when the same line text is added or deleted in more than one hunk of either patch — a closer deleting a line inside one function no longer covers this PR deleting the same line text inside a sibling function while the default branch still carries it. - Orient the mode-pair criterion: for an old mode/new mode pair the counterpart's old must match old and new must match new, since the unordered value pair cannot tell a change from its reversal. - Add the file-existence converse: when the counterpart section is a deletion or a creation, this PR's own section must be of the same kind, so a closer that deletes a file this PR merely modifies no longer covers the modification. - Mirror all three into the "Any remaining delta" enumeration so it stays the exact negation, and pin each criterion and each mirror; every pin turns red when its clause is removed (mutation-checked). Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
qwen-code-ci-bot
left a comment
There was a problem hiding this comment.
Partially reviewed — gaps disclosed.
4 Suggestion-level finding(s) this review confirmed are already reported on this PR and are not repeated:
- R8-1 empty-PR-patch guard consequence pinned ambiguously — already recorded in round 7's deferral list (review 5062272943, test.js:7403)
- RA8-1 occurrence-count pin anchored only to the deletion-side clause — already recorded in round 7's deferral list (review 5062272943, test.js:7316)
- RA8-3 PR-patch fetch establishment line pinned nowhere — already recorded in round 7's deferral list (review 5062272943, test.js:7439 and pr-workflow.md:322)
- RA3-1 close-comment reopen invitation pinned by no test — already reported in round 3's deferral list (review 5054598473), re-noted in rounds 4, 6 and 7
Not reviewed: reverse audit round 5 — the auditor returned nothing substantive twice (bare 'No issues found.' on both launches).
Not reviewed: reverse audit round 6 — the auditor returned nothing substantive twice (bare 'No issues found.' on both launches).
Not reviewed: reverse audit — its prompt was built, but no agent was launched with it — the pass that hunts what the rest of the review missed ran, if at all, without the method its brief carries, and cannot be certified.
Deferred under the convergence posture (round 8, not a blocker) — recorded, not requested in this round; 1 Critical(s) among them are deferred by their axes — fails-closed on new surface, where no wrong result is certified and the merge base had neither the surface nor the defect — and remain follow-up work recorded in the findings artifact:
.qwen/skills/triage/references/pr-workflow.md:377 — [probe] Critical [fails-closed] [new-surface] R6-1 (fix-induced) multi-hunk clause voids coverage unconditionally — the motivating #10322 duplicate class can never reach the close exit
中文说明
仅完成部分审查,审查缺口已披露。
本轮确认的 4 条建议级发现已在 PR 上报告过,不再重复发布(列表见上方英文部分)。
未审查:reverse audit round 5 — the auditor returned nothing substantive twice (bare 'No issues found.' on both launches)。
未审查:reverse audit round 6 — the auditor returned nothing substantive twice (bare 'No issues found.' on both launches)。
未审查:反向审计——它的 prompt 已构建,但没有 agent 用它启动——负责搜寻评审其余部分遗漏问题的这道工序,即便运行过,也缺失了 brief 承载的方法,无法作证。
收敛姿态下延后(第 8 轮,非阻断)——已记录,本轮不要求修改;其中 1 条 Critical 按其失败方向与对照基线延后——fails-closed 且 new-surface:未认证任何错误结果,且 merge base 既无该功能面也无该缺陷——作为后续工作记录在 findings 工件中:共 1 条(原文未翻译,列表见上方英文部分)。
— qwen3.8-max via Qwen Code /review (v0.22.3)
|
@qwen-code /triage |
|
Sandboxed verification: ✅ passed — merge-ready (agent verdict) - workflow run Ran the PR in an isolated, token-free container: A/B against the base build, mock-free harness assertions, targeted gates. Advisory evidence for human reviewers — not a review, an approval, or a CI check. Scripted assertions: 677 passed · 0 failed · 677 total Flakiness gate: ✅ 1 changed test file(s) x 5 identical rounds, no divergence 中文 — 判定:✅ 通过 · 可合入(agent 判定)沙箱验证在隔离、无凭证的容器中执行了该 PR 的代码(与 base 构建 A/B 对照、无 mock harness 断言、定向门禁)。仅作为评审证据,不构成评审、批准或 CI 检查。 脚本断言:677 通过 · 0 失败 · 677 总计 抖动门:✅ 1 changed test file(s) x 5 identical rounds, no divergence Verification report<!-- qwen-triage:verify --> Sandboxed verification: ✅ passed — merge-ready (agent verdict) — follow-up round to run 33336599810 Ran the PR in an isolated, token-free container: A/B against the base build, mock-free harness assertions, targeted gates. Advisory evidence for human reviewers — not a review, an approval, or a CI check. Scripted assertions: 677 passed · 0 failed · 677 total 中文 — 判定:✅ 通过 · 可合入(agent 判定)本轮为 run 33336599810(判定 merge-ready,638 断言)的后续轮:PR 头从
Verification reportVerdict: 中文摘要
Previous-finding status (follow-up round)
Central claim and A/BCentral claim: the Stage 1-pre subsumption check no longer depends on the contents API (silent empty response ≥ ~1 MiB) and instead decides from two frozen Live red/green cells (anonymous public endpoints, read-only; witness:
Behavioral A/B of the embedded bash — both arms' snippets extracted verbatim from the specs (
S2 is the flip cell: base's query selects no repository and has no gate, so a cross-repo closing keyword resolving to a merged PR whose number collides in Delta verification (the new commit's three criteria) — the hunk-by-hunk position criterion, the mode-pair orientation, and the existence-kind converse are prose (the executing agent performs the judgment), so they are verified two ways: (1) each criterion and each of its "Any remaining delta" mirrors is pinned by the suite and mutation-verified (rows M15–M23 below — deleting any clause turns exactly its pin red); (2) the enumeration stays the exact negation of the definition — the mirror pins (M20–M23) pass against the mirrored strings. No behavioral regression in the routing bash: the full A/B table re-ran at the new head with identical outcomes. FindingsF1 (Suggestion, carried over — coverage gap): the close-comment rewording is unpinned. Re-measured at F2 (Nit, carried over — observation): the OVERSIZE skip is comment-driven, not mechanical. Re-measured in the S6 cell: with No new blocker found. Notably checked and NOT holding: no verdict path reaches a close on an unfetchable or empty patch (S6/S7/S8 all route to escalation or abort); the dedup uses word-boundary matching so no number can substring-collide; the GraphQL Not covered
MethodologyEnvironment: the CI verify container ( Assertion accounting (all scripted, all executed): suites at head 175 + companion 119; control suites at base 167 + 119; A/B harness 34; mutation matrix 48; gates 5; live premise 9; F1 revert 1 → 677 pass / 0 fail. Flakiness gate logEvidence imagesHarness scripts and raw logs are in the workflow run artifacts (7-day retention). — Qwen Code · sandboxed verification |
qwen-code-ci-bot
left a comment
There was a problem hiding this comment.
LGTM, looks ready to ship. ✅ — Stage 1-pre subsumption is now constant-cost, large-file safe, and fail-closed; the review above names two non-blocking follow-ups.
qwen-code-ci-bot
left a comment
There was a problem hiding this comment.
3 Suggestion-level finding(s) this review confirmed are already reported on this PR and are not repeated:
- MERGED_FLAG gate condition unpinned (scripts/tests/qwen-triage-workflow.test.js:7374) — already recorded in round 5's deferral list (review 5056880994), re-noted in rounds 6 and 7; the author's option-(a) decision on the R4-1 pin-completene…
- OVERSIZE routing guard prefix unpinned (scripts/tests/qwen-triage-workflow.test.js:7467) — already recorded in round 7's deferral list (review 5062272943, test.js:7442)
- close-comment reopen invitation unpinned (.qwen/skills/triage/references/pr-workflow.md:496) — already reported in round 3's deferral list (review 5054598473), re-noted in rounds 4, 6, 7 and 8 (RA3-1)
Not explored to full depth (tool budget reached): "agent 3b": none** — I finished every check I started (vitest itself couldn't run for lack of node_modules , but the tests are pure String.prototype.includes pins and I ….
Deferred under the convergence posture (round 9, not a blocker) — recorded, not requested in this round:
.qwen/skills/triage/references/pr-workflow.md:329 — [probe] OVERSIZE closer-fetch skip enforced only by a comment; the loop runs unconditionally
中文说明
本轮确认的 3 条建议级发现已在 PR 上报告过,不再重复发布(列表见上方英文部分)。
未探索到全部深度(达到工具调用预算):"agent 3b":none** — I finished every check I started (vitest itself couldn't run for lack of node_modules , but the tests are pure String.prototype.includes pins and I …。
收敛姿态下延后(第 9 轮,非阻断)——已记录,本轮不要求修改:共 1 条(原文未翻译,列表见上方英文部分)。
— qwen3.8-max via Qwen Code /review (v0.22.3)
The closer acceptance check verified the closer's merged state and repository, but not its base branch: a closer merged into a non-default branch (e.g. a release/* backport) still satisfied the frozen-patch subsumption judgment, letting the gate close a default-branch PR as a duplicate of a fix the default branch never received. Select baseRefName in the closer query, bind it, and require MERGED_BASE to equal the already-computed DEFAULT_BRANCH; pin the guard end to end in the stage 1-pre duplicate gate suite. Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com> Patrol-Run: qwen-pr-closeout/jmtiej7n89k
qwen-code-ci-bot
left a comment
There was a problem hiding this comment.
Reviewed.
8 Suggestion-level finding(s) this review confirmed are already reported on this PR and are not repeated:
- CLOSER=$( capture / herestring pin gap (test.js:7368) — already recorded in round 7's deferral list (review 5062272943)
- occurrence-count adds-clause pin gap (test.js:7316) — already recorded in round 7's deferral list (review 5062272943), re-noted round 8 (RA8-1)
- jq (.number) first-field pin gap (test.js:7375) — already recorded in round 7's deferral list (review 5062272943)
- empty-patch guard '|| exit 1' pin ambiguity (test.js:7454) — already recorded in round 7's deferral list (review 5062272943), re-noted round 8 (R8-1)
- OVERSIZE guard disjunct pin gap (test.js:7489) — already recorded in round 7's deferral list (review 5062272943)
- MERGED_FLAG gate conjunct pin gap (test.js:7378) — already recorded in round 5's deferral list (review 5056880994), re-noted rounds 6, 7 and 9
- OVERSIZE closer-fetch skip enforced only by a comment (pr-workflow.md:336) — already recorded in round 9's deferral list (review 5075711324)
- successful-but-empty PR patch routed to a bare abort (pr-workflow.md:335) — already recorded in round 7's deferral list (review 5062272943)
Not explored to full depth (tool budget reached): "agent 1b": none — rg is unavailable on this host, so hidden-path sweeps used grep -r over the worktree including dot-directories instead; all planned checks completed..
Deferred under the convergence posture (round 10, not a blocker) — recorded, not requested in this round:
.qwen/skills/triage/references/pr-workflow.md:471 — [review] escalation bullet's cause enumeration omits the gate's non-default-branch and query-failure rejection causes.qwen/skills/triage/references/pr-workflow.md:316 — [probe] OVERSIZE prose names only the 300-file trigger; the endpoint also refuses >20,000 diff linesscripts/tests/qwen-triage-workflow.test.js:7390 — [probe] baseRefName pin is not unique to the closer GraphQL selection set
中文说明
已审查。
本轮确认的 8 条建议级发现已在 PR 上报告过,不再重复发布(列表见上方英文部分)。
未探索到全部深度(达到工具调用预算):"agent 1b":none — rg is unavailable on this host, so hidden-path sweeps used grep -r over the worktree including dot-directories instead; all planned checks completed.。
收敛姿态下延后(第 10 轮,非阻断)——已记录,本轮不要求修改:共 3 条(原文未翻译,列表见上方英文部分)。
— qwen3.8-max via Qwen Code /review (v0.22.3)
Keep the original default-branch comparison and request GitHub raw content so files at or above 1 MiB do not silently appear empty. Escalate when the raw fetch cannot verify subsumption, and remove the patch-equivalence rules introduced earlier. Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
Encode Contents API paths before treating a 404 as known absence, and send the default-branch ref as an encoded GET query parameter. Other fetch failures still escalate without closing. Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
qwen-code-ci-bot
left a comment
There was a problem hiding this comment.
Partially reviewed — gaps disclosed.
Not reviewed: reverse audit — stopped before round 2 by the review time budget.
Not reviewed: reverse audit — stopped before round 1 by the review time budget.
2 Suggestion(s) were drafted inline past the resolved critical posting floor; the CLI moved them into the deferral list below (floor enforcement).
Deferred under the convergence posture (round 11, not a blocker) — recorded, not requested in this round:
scripts/tests/qwen-triage-workflow.test.js:7312 — [review] R11-1: The two failure-mode outcomes are pinned here as independent substrings with no binding to their conditions, so a semantics swap between them survives green. A later edit cou…scripts/tests/qwen-triage-workflow.test.js:7313 — [review] R11-2: This is the only assertion banning gh pr diff from the Stage 1-pre section, and it sits uncommented inside a test named for raw-contents reads — the sole uncommented test i…
— qwen3.8-max via Qwen Code /review (v0.22.3)
|
@qwen-code /triage |
|
Sandboxed verification: The verification ran, but its result artifact could not be retrieved for publishing, so there is nothing to report here. The run log still has the agent output; re-run 中文 — 判定:
|
|
@qwen-code /triage |
|
Sandboxed verification: ✅ passed — merge-ready (agent verdict) - workflow run Ran the PR in an isolated, token-free container: A/B against the base build, mock-free harness assertions, targeted gates. Advisory evidence for human reviewers — not a review, an approval, or a CI check. Scripted assertions: 620 passed · 0 failed · 620 total Flakiness gate: ✅ 1 changed test file(s) x 5 identical rounds, no divergence 中文 — 判定:✅ 通过 · 可合入(agent 判定)沙箱验证在隔离、无凭证的容器中执行了该 PR 的代码(与 base 构建 A/B 对照、无 mock harness 断言、定向门禁)。仅作为评审证据,不构成评审、批准或 CI 检查。 脚本断言:620 通过 · 0 失败 · 620 总计 抖动门:✅ 1 changed test file(s) x 5 identical rounds, no divergence Verification reportVerdict: 中文摘要
Previous-finding status (follow-up round)
Central claim and A/BCentral claim: Stage 1-pre's subsumption file fetch reads the raw contents representation of a URL-encoded path, so files at or above 1 MiB — where the default JSON representation answers HTTP 200 with empty content — become verifiable; a 404 from the encoded-path request is a known absence; any other fetch failure escalates instead of closing; the subsumption predicate itself (the PR's ENTIRE diff vs the default branch) is unchanged. Live A/B cells — anonymous read-only GETs against
G2 was the round's sharpest question: Encoding ladder — the spec's command Reviewer Test Plan walkthrough (all three steps performed): step 1 ( Vacuity and mutation checks (the new pin test)Witness:
Both mutations fail the intended assertion with a named expected/actual mismatch (not an import or fixture break), and each is surgical — exactly one test red. The test is not vacuous in either direction: it pins the mechanism's presence (M1) and the old mechanism's absence (M2). The Targeted gatesWitness:
The +1 test at HEAD is exactly the new pin; zero failures on either arm. Companion suite is identical across arms (re-measurement of carry-over C1). Consistency sweep: the 1-pre section contains no leftover mechanism-era concepts ( FindingsNone new. No blocker, no suggestion. Things explicitly checked and NOT holding as problems:
Not covered
MethodologyEnvironment: the CI verify container ( Assertion accounting (all scripted, all executed): live A/B + encoding ladder 30; head suite 168; base suite 167; companion 124 + 124; mutation expectations 2; stability-round expectations 5 → 620 pass / 0 fail. Flakiness gate logEvidence imagesHarness scripts and raw logs are in the workflow run artifacts (7-day retention). — Qwen Code · sandboxed verification |
qwen-code-ci-bot
left a comment
There was a problem hiding this comment.
LGTM, looks ready to ship. ✅











What this PR does
Keeps Stage 1-pre's existing default-branch subsumption check and requests file contents through GitHub's native raw media type:
A 404 from the encoded-path request is treated as known file absence; any other fetch failure escalates instead of closing the PR.
Why it's needed
The Contents API's default JSON representation returns HTTP 200 with
content: ""andencoding: "none"for files at or above 1 MiB. Stage 1-pre therefore cannot verify large files and fails silently at the gate's only irreversible action.The raw representation returns the complete file without changing the comparison target or inventing patch-equivalence rules. The subsumption predicate remains what it was: is the PR's entire change already present on the current default branch?
Reviewer Test Plan
How to verify
Run the same large-file probe from #10322:
Run the focused regression test:
npx vitest run --config ./scripts/tests/vitest.config.ts ./scripts/tests/qwen-triage-workflow.test.js -t "reads large default-branch files through the raw contents response"Expected: one test passes and the Stage 1-pre instructions contain the raw media type, fail-closed escalation, and no patch-to-patch comparison.
Evidence (Before & After)
Before: the default JSON representation reports an empty
contentfield for the 1,257,810-byte lockfile.After: the raw representation streams exactly 1,257,810 bytes.
Tested on
Risk & Scope
Linked Issues
Fixes #10322