test(ci): stabilize cron interactive release check - #6016
Conversation
|
Thanks for the PR! Template looks good ✓ On direction: fully aligned — this is a focused CI stabilization that fixes a flaky cron interactive test blocking the release pipeline. Purely test infrastructure, no production code changes. On approach: the three changes are minimal and well-targeted. The sandbox flag parsing fix matches the pattern already used in One minor observation: the old Moving on to code review and testing. 🔍 中文说明感谢贡献! 模板完整 ✓ 方向:完全对齐——这是一个聚焦的 CI 稳定性修复,解决了阻塞 release 流水线的 cron interactive 测试不稳定问题。纯测试基础设施,无生产代码变更。 方案:三个改动都是最小化且精准定位的。sandbox 标志解析修复与 一个小观察:旧的 进入代码审查和测试 🔍 — Qwen Code · qwen3.7-max |
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. |
|
Code review: Clean. Three minimal, well-targeted changes:
Real-scenario testing: Ran the cron interactive test suite locally with The modified test ( The other 2 failures are a pre-existing environment issue — 中文说明代码审查: 干净。三个最小化、精准定位的改动:
真实场景测试: 本地运行 cron interactive 测试套件, 被修改的测试( 另外 2 个失败是预先存在的环境问题—— — Qwen Code · qwen3.7-max |
|
This PR does exactly what it says — stabilizes one flaky cron interactive test by removing an assertion that was stronger than the test's actual purpose. The modified test's goal is to prove session survival after a cron error turn. The old The sandbox parsing fix and locale pin are small correctness improvements that make the test more robust across environments. The targeted test passes locally (20.8s). The two unrelated failures are a pre-existing environment limitation (cron tools not registered), not a regression. Risk is low: this is test-only, net -10 lines, and scheduler persistence remains covered elsewhere. If I had to maintain this in six months, I'd thank the author for narrowing the assertion to what actually matters. Approving. ✅ 中文说明这个 PR 完全兑现了它的承诺——通过移除一个强于测试实际目的的断言来稳定一个不稳定的 cron interactive 测试。 被修改测试的目标是证明 cron 错误回合后会话存活。旧的 Sandbox 解析修复和 locale 固定是小的正确性改进,使测试在各种环境中更稳健。 目标测试本地通过(20.8s)。两个无关失败是预先存在的环境限制(cron 工具未注册),不是回归。 风险低:仅测试变更,净减 10 行,调度器持久性由其他测试覆盖。如果六个月后需要维护这段代码,我会感谢作者将断言收窄到真正重要的部分。 批准 ✅ — Qwen Code · qwen3.7-max |
qwen-code-ci-bot
left a comment
There was a problem hiding this comment.
LGTM, looks ready to ship. ✅
qwen-code-ci-bot
left a comment
There was a problem hiding this comment.
No review findings. LGTM! ✅
Downgraded from Approve to Comment: CI still running.
— qwen3.7-max via Qwen Code /review
wenshao
left a comment
There was a problem hiding this comment.
No issues found. LGTM! ✅
— qwen3.7-max via Qwen Code /review
What this PR does
Stabilizes the release interactive cron check so it verifies the behavior that matters: a cron-triggered error turn must not kill the interactive session, and the next user turn must still complete normally.
It also fixes the local sandbox flag parsing used by this test and pins the interactive test UI language to English so screen assertions do not inherit a developer machine locale.
Why it's needed
The latest Release workflow failure was not the Windows installer or Docker MCP issue fixed by #5994. The failing cron interactive test already showed the session survived the cron error turn by reaching the next
ALIVE99response, but then it asked the model to list cron jobs and required one active job to remain. That final assertion is stronger than the test's purpose and depends on model/tool behavior that is not required to prove the interactive loop survived.This keeps the release gate focused on the regression it is meant to catch and removes a model-sensitive postcondition that can fail after the important behavior has already passed.
Reviewer Test Plan
How to verify
Run the no-sandbox interactive integration suite and confirm the cron interactive group passes, especially
error during cron turn does not kill the loop. The expected behavior is that the cron prompt can produce the file-error marker, then a normal user prompt still receives the exactALIVE99response.Evidence (Before & After)
Before: Release run 28370787293 failed in
Integration Tests (No Sandbox)duringinteractive/cron-interactive.test.ts > cron interactive > error during cron turn does not kill the loopafter the test reached the follow-upALIVE99response but failed the extra active-job count assertion.After: Local no-sandbox interactive integration suite passes with all cron interactive tests passing.
Tested on
Environment (optional)
Local macOS, Node from the repository toolchain,
QWEN_SANDBOX=false, release-equivalent interactive no-sandbox integration command.Risk & Scope
Linked Issues
Related release failure: https://github.com/QwenLM/qwen-code/actions/runs/28370787293/job/84048505611
中文说明
What this PR does
稳定 release interactive cron 检查,让它只验证真正需要的行为:cron 触发的错误回合不能杀掉交互会话,后续用户回合仍然必须能正常完成。
同时修正这个测试里本地 sandbox 标志的解析,并把交互测试 UI 语言固定为英文,避免屏幕断言继承开发机 locale。
Why it's needed
最新的 Release workflow 失败不是 #5994 修过的 Windows installer 或 Docker MCP 问题。失败的 cron interactive 测试其实已经通过后续
ALIVE99响应证明会话在 cron 错误回合后仍然存活,但随后又要求模型列出 cron jobs,并断言必须还剩 1 个 active job。这个最终断言强于测试目的,并依赖模型/工具行为形态;它不是证明 interactive loop 存活所必需的条件。这个改动让 release gate 聚焦在它要防的回归上,去掉已经通过关键行为之后仍可能因模型敏感输出而失败的后置条件。
Reviewer Test Plan
How to verify
运行 no-sandbox interactive integration suite,并确认 cron interactive 组通过,尤其是
error during cron turn does not kill the loop。预期行为是 cron prompt 可以产生 file-error marker,然后普通用户 prompt 仍然能收到精确的ALIVE99响应。Evidence (Before & After)
Before: Release run 28370787293 在
Integration Tests (No Sandbox)的interactive/cron-interactive.test.ts > cron interactive > error during cron turn does not kill the loop失败;当时测试已经到达后续ALIVE99响应,但又因为额外的 active-job count 断言失败。After: 本地 no-sandbox interactive integration suite 通过,cron interactive 的所有测试都通过。
Tested on
Environment (optional)
本地 macOS,使用仓库 toolchain 的 Node,
QWEN_SANDBOX=false,运行与 release 对应的 interactive no-sandbox integration 命令。Risk & Scope
Linked Issues
相关 release 失败: https://github.com/QwenLM/qwen-code/actions/runs/28370787293/job/84048505611