Skip to content

fix(ci): retry the transient all-green macOS E2E shard death once (#11131) - #11134

Closed
qwen-code-dev-bot wants to merge 7 commits into
mainfrom
autofix/issue-11131
Closed

qwen-code-dev-bot wants to merge 7 commits into
mainfrom
autofix/issue-11131

Conversation

@qwen-code-dev-bot

Copy link
Copy Markdown
Collaborator

What this PR does

The macOS E2E leg gains the same single, budget-gated retry the Linux sandbox:none leg already carries (#10572): the shard command moves into a run_shard() shell function that runs once and, only after a failure, a second time. The retry is gated on remaining job budget — the job now states timeout-minutes: 360 (GitHub's default, made explicit) and the gate refuses a retry past 18000s elapsed (21600s minus a 60-minute reserve for one shard-time) — and a Record job start epoch step runs before setup so the gate sees install/unpack spend. The retry's semantics are witnessed by executing the step's script under bash -e with npx stubbed and the clock pinned (green path, transient-then-green, both-red, and the 18000s/18001s boundary), and its shape is pinned alongside the existing Linux pins in the workflow test suite.

Why it's needed

Run 33982750226 failed E2E Test - macOS - shard 1/2 at the Run E2E tests step with zero vitest FAIL lines — every test apparently green, yet the step red — while shard 2/2 of the same run passed (#11131). That is the exact signature of the transient shared-host-pressure class the sandbox:none leg died to three times before its retry landed: no failing test to fix, sibling shard green, green on re-run. The identical shard-1/2 file set also passes locally under the leg's own command (33 passed | 5 skipped files, 220 passed | 19 skipped tests). Because the macOS leg had no retry, one transient death fails the whole lane and opens a per-commit CI-failure issue. A deterministic failure still fails both attempts and keeps the leg red, so real regressions are not absorbed.

Reviewer Test Plan

How to verify

Confirm the retry fires once and only once, and that real failures stay red. The focused suites execute the workflow step itself under bash -e with the runner stubbed and the clock pinned: npx vitest run --config ./scripts/tests/vitest.config.ts scripts/tests/e2e-shard-retry.test.js scripts/tests/e2e-workflow.test.js — expect 48 passed, covering the macOS green path (one attempt, no retry noise), a transient-then-green shard (retried once, step green), a both-attempts-red shard (step stays red), and the budget gate admitting exactly 18000s and refusing 18001s, plus the YAML pins (epoch step before install and unconditional, single end-anchored retry, timeout-minutes: 360, no continue-on-error, default shell). The mutation probes were run and reverted during development: breaking the macOS || retry turned exactly the 8 macOS witnesses red, shifting the gate by one second turned the boundary witness red, and removing the epoch step or mis-stating the budget each turned their pin red. On CI, the macOS leg should show a ::warning:: plus a second attempt only when the first attempt fails, and never more than two attempts.

Evidence (Before & After)

N/A — CI-only change, no user-visible surface. Before: the macOS leg ran its shard command once, so a transient all-green death failed the lane (run 33982750226). After: the leg retries once behind the 18000s budget gate and only stays red when both attempts fail.

Tested on

OS Status
🍏 macOS ⚠️
🪟 Windows N/A
🐧 Linux ✅

Environment (optional)

The bash-driven workflow-step tests run under bash -e with the shard runner stubbed; the file is excluded from Windows lanes by scripts/tests/vitest.config.ts. A surrogate run of the exact macOS shard-1/2 file set (the leg's own vitest command and env, real model) was executed on Linux for the diagnosis: green.

Risk & Scope

  • Main risk or tradeoff: a genuinely broken macOS shard now costs up to two attempts before reporting red (~2x worst-case leg time, bounded by the 18000s gate); the tradeoff is deliberate and mirrors the accepted Linux precedent.
  • Not validated / out of scope: the actual macOS leg was not run (no macOS runner available locally); the original run log could not be fetched (no GitHub credentials in the fix environment) — if the failure turns out to be a deterministic macOS-only crash with no FAIL lines rather than the transient class, both attempts will fail and the issue will recur with the same signature, at which point the log must be read directly. No test code, parallelism, or memory settings were changed, as no evidence points to a specific code-level defect.
  • Breaking changes / migration notes: none. timeout-minutes: 360 states GitHub's existing default; job behavior is unchanged on the green path.

Linked Issues

Fixes #11131

中文说明

本 PR 做了什么

macOS E2E 分支获得了与 Linux sandbox:none 分支相同的一次性、带预算门控的重试(#10572):分片命令移入 run_shard() shell 函数,先运行一次,仅在失败后再运行第二次。重试受剩余作业预算门控——作业现在显式声明 timeout-minutes: 360(即 GitHub 默认值),门控在超过 18000 秒(21600 秒减去一个分片时长的 60 分钟余量)时拒绝重试——并且在安装之前记录 Record job start epoch 步骤,使门控能看到安装/解包耗时。重试的语义通过在 bash -e 下执行该步骤脚本(打桩 npx、固定时钟)来见证(绿色路径、先死后绿、两次皆红、18000/18001 秒边界),其形状则与既有 Linux 固定一并固定在工作流测试套件中。

为什么需要

运行 33982750226 中,E2E Test - macOS - shard 1/2 在 Run E2E tests 步骤失败,且日志中没有一行 vitest FAIL ——所有测试似乎都通过,步骤却是红色——而同一运行的 shard 2/2 通过(#11131)。这正是 sandbox:none 分支在获得重试之前三次死掉的瞬时共享主机压力类别的签名:没有可修复的失败测试、兄弟分片绿色、重跑即绿。完全相同的 shard 1/2 文件集合在本地用该分支自己的命令运行也通过(33 通过 | 5 跳过个文件,220 通过 | 19 跳过个测试)。由于 macOS 分支没有重试,一次瞬时死亡就会使整条分支变红并按提交开出 CI 故障 issue。确定性失败仍会让两次尝试都失败并保持红色,因此真实回归不会被吞掉。

评审者测试计划

如何验证

确认重试恰好触发一次,且真实失败保持红色。聚焦的测试套件在 bash -e 下执行工作流步骤本身(打桩运行器、固定时钟):npx vitest run --config ./scripts/tests/vitest.config.ts scripts/tests/e2e-shard-retry.test.js scripts/tests/e2e-workflow.test.js ——预期 48 通过,覆盖 macOS 绿色路径(一次尝试、无重试噪音)、先死后绿的分片(重试一次、步骤转绿)、两次皆红的分片(步骤保持红色),以及预算门控恰好放行 18000 秒、拒绝 18001 秒,外加 YAML 固定(epoch 步骤在安装之前且无条件、单个锚定末尾的重试、timeout-minutes: 360、无 continue-on-error、默认 shell)。开发过程中运行并还原了变异探针:破坏 macOS 的 || 重试使恰好 8 个 macOS 见证变红,将门控移动一秒使边界见证变红,删除 epoch 步骤或错报预算分别使其固定测试变红。在 CI 上,macOS 分支应仅在第一次尝试失败时显示一条 ::warning:: 加第二次尝试,且绝不超过两次尝试。

前后对比证据

N/A —— 仅 CI 变更,无用户可见界面。变更前:macOS 分支的分片命令只运行一次,一次瞬时的"全绿死亡"就会使分支变红(运行 33982750226)。变更后:分支在 18000 秒预算门控之后重试一次,只有两次尝试都失败才保持红色。

测试平台

操作系统 状态
🍏 macOS ⚠️
🪟 Windows N/A
🐧 Linux ✅

环境(可选)

bash 驱动的工作流步骤测试在 bash -e 下运行并打桩分片运行器;该文件按 scripts/tests/vitest.config.ts 在 Windows 车道上被排除。诊断时在 Linux 上用该分支自己的 vitest 命令与环境(真实模型)执行了与 macOS shard 1/2 完全相同的文件集合的替代运行:绿色。

风险与范围

  • 主要风险或权衡:一个真正损坏的 macOS 分片现在要花费最多两次尝试才会报红(最坏情况下分支耗时约 2 倍,由 18000 秒门控封顶);该权衡是有意为之,并与已接受的 Linux 先例一致。
  • 未验证/超出范围:实际的 macOS 分支未运行(本地无 macOS 运行器);原始运行日志无法拉取(修复环境无 GitHub 凭据)——如果该失败最终被证明是某种不产生 FAIL 行的确定性 macOS 特有崩溃而非瞬时类别,两次尝试都会失败,问题将以相同签名复发,届时必须直接读取日志。未改动任何测试代码、并行度或内存设置,因为没有证据指向具体的代码级缺陷。
  • 破坏性变更/迁移说明:无。timeout-minutes: 360 只是显式声明 GitHub 既有的默认值;绿色路径上的作业行为不变。

关联 Issue

Fixes #11131

…1131)

Run 33982750226 failed the macOS shard 1/2 leg at 'Run E2E tests' with
zero vitest FAIL lines — the all-green-under-host-pressure signature the
sandbox:none leg already retries (#10572) — while shard 2/2 of the same
run passed, and the identical shard file set passes locally under the
same command. The macOS leg carried no retry, so one transient death
fails the lane.

Give it the same bounded retry: the shard command moves into a
run_shard() invoked once and, behind a budget gate, a second time. The
gate subtracts a 60-minute reserve (over one shard-time even on this
slowest leg) from the job's 21600s budget — stated explicitly as
timeout-minutes: 360 — and refuses the retry past 18000s elapsed, where
the first attempt is hung rather than unlucky and GitHub would cancel
the retry at the timeout line. The job start epoch is recorded before
setup, as on Linux. e2e-shard-retry.test.js executes the macOS step
under bash -e with npx stubbed and the clock pinned (green path,
transient-then-green, both-red, and the 18000s/18001s boundary);
e2e-workflow.test.js pins the epoch step, the retry shape, the budget
operand, and the red-on-red semantics, mirroring the Linux pins.
@qwen-code-dev-bot

Copy link
Copy Markdown
Collaborator Author

Autofix E2E Report — Issue #11131

Issue

Main CI failed: E2E Tests on 07726bee3df9 — run 33982750226 failed the job E2E Test - macOS - shard 1/2 in step Run E2E tests. The failure tracker found no vitest FAIL lines in the job log, so the issue was filed per commit rather than per failing test.

Diagnosis

Evidence gathered (no GitHub credentials are available in this environment, so the run log itself could not be fetched; the macOS leg also cannot be executed locally — this is the CI-/platform-specific surrogate path):

  1. No FAIL lines in the job log. The per-commit issue body is only produced when the log analyzer extracts zero failing tests (main-failure-signature.mjs). The step failed red with every test apparently green.
  2. The sibling shard passed. The issue lists only shard 1/2 as failed; shard 2/2 of the same run is absent from the failed-jobs list. A deterministic break in shared setup (install, artifact unpack, bundle) would fail both shards.
  3. The identical shard passes elsewhere. The exact macOS shard-1/2 test-file set (75 files minus the three excludes, halved by vitest's sha1-path sharding — 38 files) was run locally on Linux with the leg's own command (QWEN_E2E_RENDERER=ink VERBOSE=true KEEP_OUTPUT=true QWEN_SANDBOX=false vitest run --root ./integration-tests … --shard=1/2): 33 passed | 5 skipped (38) test files, 220 passed | 19 skipped (239) tests, green exit. Nothing in this shard fails deterministically.
  4. The signature matches a documented transient class. The Linux sandbox:none leg died the same way three times (runs 33293739505, 33302550436, 33317457036 — red with no FAIL line, sibling shards green, green on re-run) and the maintainers' fix was a single budget-gated retry (fix(ci): retry transient sandbox:none E2E shard failures once (#10566) #10572). The macOS lane is known pressure-sensitive: integration-tests/vitest.config.ts already carries dangerouslyIgnoreUnhandledErrors for off-Linux runners because the worker→main RPC budget blows under shared-host load, so an all-green red is survivable only by the harness, not the job.
  5. The macOS leg had no retry. While sandbox:none gained its bounded retry in fix(ci): retry transient sandbox:none E2E shard failures once (#10566) #10572, the macOS leg kept a single attempt, so one transient host-pressure death fails the whole lane and files a per-commit issue.

Fix

The macOS leg gets the same bounded retry the maintainers built for sandbox:none (.github/workflows/e2e.yml):

  • The shard command moves into a run_shard() shell function, invoked once and — only after a failure — a second time. A deterministic failure fails both attempts and keeps the leg red.
  • The retry is gated on remaining job budget: the job now states timeout-minutes: 360 (GitHub's default, made explicit so the gate arithmetic has a pinned operand), and the gate refuses the retry past 18000s elapsed (21600s minus a 60-minute reserve — over one shard-time even on this slowest leg), where the first attempt is hung rather than unlucky and GitHub would cancel the retry mid-flight at the timeout line.
  • A Record job start epoch step runs before any setup, as on the Linux leg, so the gate sees install/unpack spend.

Coverage witnesses (scripts/tests/):

  • e2e-shard-retry.test.js now executes the macOS step's script under bash -e with npx stubbed and the clock pinned: green path runs once with no retry noise, a transient-then-green shard is retried once and passes, a both-attempts-red shard keeps the step red, and the budget gate admits exactly 18000s and refuses 18001s. The existing Linux witnesses are preserved; the harness was generalized (npm/npx stub name) without changing their semantics.
  • e2e-workflow.test.js gains a macOS shard retry describe mirroring the Linux pins: epoch step present, unconditional, and before Install dependencies; run_shard() wrapper; full command with shard and excludes retried; exactly one retry with end-anchored scope; budget-gate shape; timeout-minutes: 360; no continue-on-error at step or job level; default step shell.

Mutation probes (each applied, tests run, then reverted): ||→&& on the macOS retry turned exactly the 8 macOS witnesses red; 18000→18001 turned the one-second-past witness red; deleting the epoch step turned its pin red; timeout-minutes: 360→359 turned the budget pin red. The e2e.yml growth (30022→31841 bytes) is within the 4096-byte .size-baseline allowance, so no baseline bump was needed.

Remaining risk

If the failure was not the transient class (e.g., a macOS-only crash that kills the vitest main process before any FAIL line prints), the retry still absorbs one such death per run; a deterministic recurrence would fail both attempts and surface as a new tracked issue with the same signature — at which point the log itself must be read. This PR deliberately does not change test code, parallelism, or memory limits: there is no evidence for a specific code-level defect, and the maintainers' established remedy for this exact signature is the retry.

Verification

  • npx vitest run --config ./scripts/tests/vitest.config.ts scripts/tests/e2e-shard-retry.test.js scripts/tests/e2e-workflow.test.js — 48 passed (6 new macOS execution witnesses, 8 new macOS pins; all pre-existing Linux witnesses green).
  • npx vitest run --config ./scripts/tests/vitest.config.ts scripts/tests/workflow-size.test.js — 202 passed.
  • bash .github/scripts/check-workflow-size.sh — ✅ every workflow file under the gate and within 4096 bytes of its recorded baseline (e2e.yml +1819 bytes, no baseline bump required).
  • npx prettier --check .github/workflows/e2e.yml scripts/tests/e2e-shard-retry.test.js scripts/tests/e2e-workflow.test.js — passed.
  • npm run build — passed (exit 0).
  • npm run typecheck — passed (exit 0).
  • npm run lint — passed (exit 0).
  • Mutation probes (each reverted after the red run): macOS run_shard || {→&& { — exactly the 8 macOS witnesses failed; gate 18000→18001 — the boundary witness failed; epoch step removed — its pin failed; timeout-minutes: 360→359 — the budget pin failed. Suite re-run green after each restore.
  • Surrogate E2E run (the leg's own command and env on Linux, real model): QWEN_E2E_RENDERER=ink VERBOSE=true KEEP_OUTPUT=true QWEN_SANDBOX=false npx vitest run --root ./integration-tests --exclude "**/interactive/cron-interactive.test.ts" --exclude "**/channel-plugin.test.ts" --exclude "**/chat-transcript-document.test.ts" --shard=1/2 — 33 passed | 5 skipped (38) test files, 220 passed | 19 skipped (239) tests, green exit in ~8.5 minutes.
  • Not run: the macOS leg itself (no macOS runner available locally) and the real CI run log fetch (no GitHub credentials in this environment) — the diagnosis rests on the tracker's output, the sibling-shard result, and the surrogate run above; the workflow's independent CI remains the final gate.
中文说明

Autofix E2E 报告 — Issue #11131

问题

Main CI failed: E2E Tests on 07726bee3df9 — 运行 33982750226 中,作业 E2E Test - macOS - shard 1/2 在步骤 Run E2E tests 失败。故障追踪器在该作业日志中未发现任何 vitest FAIL 行,因此该问题按提交(per commit)而非按失败用例建档。

诊断

收集到的证据(本环境没有 GitHub 凭据,无法拉取运行日志;本地也无法执行 macOS 分支——这是按规则走的 CI/平台特异的替代验证路径):

  1. 日志中没有 FAIL 行。 只有当日志分析器提取到零个失败测试时,才会生成按提交建档的 issue 正文(main-failure-signature.mjs)。该步骤在所有测试似乎都通过的情况下变红。
  2. 兄弟分片通过。 issue 只列出 shard 1/2 失败;同一运行的 shard 2/2 不在失败作业列表中。共享准备阶段(安装、构建产物解包、bundle)若存在确定性故障,两个分片都会失败。
  3. 同一分片在别处可以通过。 在本地 Linux 上,用该分支自己的命令(QWEN_E2E_RENDERER=ink VERBOSE=true KEEP_OUTPUT=true QWEN_SANDBOX=false vitest run --root ./integration-tests … --shard=1/2)运行了与 macOS shard 1/2 完全相同的测试文件集合(75 个文件减去 3 个排除项,再按 vitest 的 sha1 路径分片折半——38 个文件):33 通过 | 5 跳过(38)个测试文件,220 通过 | 19 跳过(239)个测试,绿色退出。该分片中不存在确定性失败。
  4. 该签名与已记录的瞬时故障类别一致。 Linux sandbox:none 分支曾以同样方式死过三次(运行 33293739505、33302550436、33317457036——变红但无 FAIL 行、兄弟分片绿色、重跑即绿),维护者的修复是加一次带预算门控的重试(fix(ci): retry transient sandbox:none E2E shard failures once (#10566) #10572)。macOS 分支对压力敏感是已知的:integration-tests/vitest.config.ts 已为非 Linux 运行器携带 dangerouslyIgnoreUnhandledErrors,因为 worker→main 的 RPC 预算在共享主机负载下会被击穿——也就是说测试框架层面已经豁免了这类"全绿却红",但作业层面没有。
  5. macOS 分支没有重试。 sandbox:none 在 fix(ci): retry transient sandbox:none E2E shard failures once (#10566) #10572 获得了有界重试,而 macOS 分支始终只有一次尝试,因此一次瞬时主机压力死亡就会使整条分支变红并按提交建档。

修复

为 macOS 分支加上与维护者为 sandbox:none 构建的相同的有界重试(.github/workflows/e2e.yml):

  • 分片命令移入 run_shard() shell 函数,先执行一次;仅在失败后才执行第二次。确定性失败会让两次尝试都失败,分支保持红色。
  • 重试受剩余作业预算门控:作业现在显式声明 timeout-minutes: 360(即 GitHub 默认值,显式写出以便门控算式有被固定的操作数),门控在超过 18000 秒(21600 秒减去 60 分钟余量——即使在这条最慢的分支上也超过一个分片时长)时拒绝重试;超过该阈值说明第一次尝试是挂死而非不幸,GitHub 会在超时线处中途取消重试。
  • 与 Linux 分支一样,在任何安装步骤之前记录 Record job start epoch,使门控能看到安装/解包的耗时。

覆盖见证(scripts/tests/):

  • e2e-shard-retry.test.js 现在在 bash -e 下执行 macOS 步骤脚本,并打桩 npx、固定时钟:绿色路径只运行一次且无重试噪音;先死后绿的分片重试一次并通过;两次皆红的分片保持步骤红色;预算门控恰好放行 18000 秒、拒绝 18001 秒。现有 Linux 见证全部保留;执行台架仅做了泛化(npm/npx 桩名),未改变其语义。
  • e2e-workflow.test.js 新增 macOS shard retry 描述块,镜像 Linux 的各项固定:epoch 步骤存在、无条件、且在 Install dependencies 之前;run_shard() 包装;完整命令(含分片与排除项)被重试;恰好一次重试且作用域锚定在末尾;预算门控形状;timeout-minutes: 360;步骤级与作业级均无 continue-on-error;默认步骤 shell。

变异探针(每次注入后运行测试,随后还原):macOS 重试的 ||→&& 使恰好 8 个 macOS 见证变红;18000→18001 使"超过一秒"边界见证变红;删除 epoch 步骤使其固定测试变红;timeout-minutes: 360→359 使预算固定测试变红。e2e.yml 的增长(30022→31841 字节)在 .size-baseline 的 4096 字节宽限之内,因此无需更新基线。

残余风险

如果本次失败并非瞬时类别(例如某种 macOS 特有的崩溃,在打印任何 FAIL 行之前就杀死了 vitest 主进程),该重试每次运行仍能吸收一次此类死亡;若是确定性复发,两次尝试都会失败,并会以相同签名生成新的追踪 issue——届时必须直接读取日志。本 PR 刻意不改动测试代码、并行度或内存限制:目前没有指向具体代码级缺陷的证据,而维护者对这一确切签名的既定修复手段就是重试。

验证

  • npx vitest run --config ./scripts/tests/vitest.config.ts scripts/tests/e2e-shard-retry.test.js scripts/tests/e2e-workflow.test.js — 48 通过(6 个新的 macOS 执行见证、8 个新的 macOS 固定;所有既有 Linux 见证保持绿色)。
  • npx vitest run --config ./scripts/tests/vitest.config.ts scripts/tests/workflow-size.test.js — 202 通过。
  • bash .github/scripts/check-workflow-size.sh — ✅ 所有工作流文件低于门限,且与其记录基线相差在 4096 字节以内(e2e.yml +1819 字节,无需更新基线)。
  • npx prettier --check .github/workflows/e2e.yml scripts/tests/e2e-shard-retry.test.js scripts/tests/e2e-workflow.test.js — 通过。
  • npm run build — 通过(exit 0)。
  • npm run typecheck — 通过(exit 0)。
  • npm run lint — 通过(exit 0)。
  • 变异探针(每次变红运行后均已还原):macOS run_shard || {→&& { ——恰好 8 个 macOS 见证失败;门控 18000→18001 ——边界见证失败;删除 epoch 步骤——其固定测试失败;timeout-minutes: 360→359 ——预算固定测试失败。每次还原后套件重新跑绿。
  • 替代 E2E 运行(Linux 上以该分支自己的命令与环境、真实模型):QWEN_E2E_RENDERER=ink VERBOSE=true KEEP_OUTPUT=true QWEN_SANDBOX=false npx vitest run --root ./integration-tests --exclude "**/interactive/cron-interactive.test.ts" --exclude "**/channel-plugin.test.ts" --exclude "**/chat-transcript-document.test.ts" --shard=1/2 — 33 通过 | 5 跳过(38)个测试文件,220 通过 | 19 跳过(239)个测试,约 8.5 分钟绿色退出。
  • 未运行:macOS 分支本身(本地无 macOS 运行器)与真实 CI 日志拉取(本环境无 GitHub 凭据)——诊断依据是追踪器的输出、兄弟分片的结果以及上述替代运行;工作流的独立 CI 仍是最终关卡。

🧠 Handled by Qwen Code · model/模型 kimi-k3

@github-actions github-actions Bot added the review/self-reported The linked issue was opened by the PR author (self-reported) label Sep 5, 2026
@qwen-code-dev-bot

Copy link
Copy Markdown
Collaborator Author

🔀 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-dev-bot

qwen-code-dev-bot commented Sep 6, 2026 •

Copy link
Copy Markdown
Collaborator Author

⚠️ AutoFix round 4 ended without publishing a report — view run.

中文说明

⚠️ AutoFix 第 4 轮结束但未发布报告 —— 查看运行。

@qwen-code-dev-bot

Copy link
Copy Markdown
Collaborator Author

🤖 AutoFix ran out of time before finishing (timeout (7200000ms)) (attempt 1/10) — it will retry on the next scan.

⚠️ This change was NOT pushed — any commit referenced below was made only in the runner workspace and has been discarded. What the agent reported:
Qwen failed during address-review: timeout (7200000ms).

See the Qwen Autofix agent step logs for model/tool output.

中文说明

🤖 AutoFix 在完成前耗尽了时间(timeout (7200000ms))(第 1/10 次尝试)—— 将在下次扫描时重试。

Run log: https://github.com/QwenLM/qwen-code/actions/runs/34004134257


🧠 Handled by Qwen Code · model/模型 kimi-k3

@qwen-code-dev-bot

Copy link
Copy Markdown
Collaborator Author

🤖 AutoFix updated a stale base — the fix did not pass verification, but this PR was behind main, so it merged current main in via update-branch and will retry on the next scan. A stale base (a dependency or symbol main already changed) can fail the build without being the fix's fault; if it still fails once current, it hands off to a human.

What I found before stopping:
Qwen failed during address-review: status 143.

See the Qwen Autofix agent step logs for model/tool output.

中文说明

🤖 AutoFix 更新了一个过期的 base —— 修复未通过验证,但本 PR 落后于 main,因此已通过 update-branch 合入当前 main,并将在下次扫描时重试。过期的 base(main 已改动的依赖或符号)可能让构建失败而并非修复本身的错;若 base 更新后仍然失败,将移交人工处理。

Run log: https://github.com/QwenLM/qwen-code/actions/runs/34011247704


🧠 Handled by Qwen Code · model/模型 kimi-k3

@qwen-code-dev-bot

Copy link
Copy Markdown
Collaborator Author

🤖 AutoFix ran out of time before finishing (timeout (7200000ms)) (attempt 3/10) — it will retry on the next scan.

⚠️ This change was NOT pushed — any commit referenced below was made only in the runner workspace and has been discarded. What the agent reported:
Qwen failed during address-review: timeout (7200000ms).

See the Qwen Autofix agent step logs for model/tool output.

中文说明

🤖 AutoFix 在完成前耗尽了时间(timeout (7200000ms))(第 3/10 次尝试)—— 将在下次扫描时重试。

Run log: https://github.com/QwenLM/qwen-code/actions/runs/34021761297


🧠 Handled by Qwen Code · model/模型 kimi-k3

@qwen-code-dev-bot

Copy link
Copy Markdown
Collaborator Author

🤖 AutoFix stopped: this counting window now contains 3 agent time-budget exhaustions (pushed rounds in between included; this round itself may have failed differently). That is 3 full agent runs that pushed nothing. A human should split or reduce the PR (or raise the agent time budget AND its step backstop together), then comment @qwen-code /retry to re-arm. Until then future scans will skip this PR.

What I found before stopping:
Qwen failed during address-review: timeout (7200000ms).

See the Qwen Autofix agent step logs for model/tool output.

中文说明

🤖 AutoFix 已停止:当前计数窗口内已累计 3 次时间预算耗尽(含其间推送过的轮次;本轮本身可能以别的方式失败)。即 3 次完整 agent 运行没有推送任何内容。应由人工拆分或缩减该 PR(或同时提高 agent 时间预算与其步骤兜底),然后评论 @qwen-code /retry 重新武装。在此之前,后续扫描将跳过本 PR。

Run log: https://github.com/QwenLM/qwen-code/actions/runs/34028870816


🧠 Handled by Qwen Code · model/模型 kimi-k3

@qwen-code-dev-bot qwen-code-dev-bot added the autofix/needs-human The autofix loop stopped on this PR — a human must re-arm, split, merge, or close it label Sep 6, 2026
@qwen-code-dev-bot

Copy link
Copy Markdown
Collaborator Author

⏸️ AutoFix paused: this PR reached its automatic round cap (10/10) and the loop will not manage it further — new feedback and base conflicts stay unhandled. Comment @qwen-code /retry to re-arm a fresh window under the same cap, or @qwen-code /takeover to take it over with the raised cap.

中文说明

⏸️ AutoFix 已暂停:本 PR 达到自动轮次上限(10/10),循环不再管理——新反馈与 base 冲突将无人处理。评论 @qwen-code /retry 可在同一上限下重置计数窗口,或评论 @qwen-code /takeover 以更高上限接管。

@yiliang114

Copy link
Copy Markdown
Collaborator

Closing — the premise does not hold: the job log cited in triage shows the macOS shard died with a named FAIL plus AssertionError, not an all-green death, and macOS is already exempt from unhandled-error fatality in integration-tests/vitest.config.ts. The real root cause (the 90s waitForTelemetryEvent poll in context-compress-interactive.test.ts) is still on main; a fix should target that instead. This also now conflicts with the post-pnpm e2e.yml.

@yiliang114 yiliang114 closed this Sep 21, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

autofix/needs-human The autofix loop stopped on this PR — a human must re-arm, split, merge, or close it review/self-reported The linked issue was opened by the PR author (self-reported)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Main CI failed: E2E Tests on 07726bee3df9

2 participants