feat(core): enable loop/cron tools by default#4950
Conversation
Graduate cron/loop from experimental opt-in to enabled-by-default. Flip env var polarity from QWEN_CODE_ENABLE_CRON to QWEN_CODE_DISABLE_CRON for users who want to opt out. Update integration tests, docs, and VS Code schema accordingly.
|
Thanks for the PR! Template looks good ✓ On direction: this is a straightforward graduation — flipping a stable, well-tested feature from opt-in to default-on. The loop/cron tools have been shipping behind an experimental flag with no reported issues, and making them discoverable by default is the right call for users who would benefit from loop engineering patterns but never find the feature otherwise. Aligned with where the project is heading. On approach: the scope is minimal and exactly right — default flips in three places (core Moving on to code review. 🔍 中文说明感谢贡献! 模板完整 ✓ 方向:这是一个合理的毕业升级——将一个稳定、经过验证的功能从可选升级为默认启用。循环/定时任务工具在实验性标志后面运行期间没有报告问题,默认启用可以让那些受益于循环工程模式但不太可能主动发现该功能的用户使用到它。与项目发展方向一致。 方案:范围精简且准确——三处默认值翻转(核心 进入代码审查 🔍 — Qwen Code · qwen3.7-max |
Code ReviewThe diff matches exactly what I'd write to solve this problem — flip defaults in three places, swap env var polarity, update tests and docs. Ten files, +39/-51 (net deletion), no new abstractions. Clean. One thing I verified: the The No correctness bugs, no security concerns, no AGENTS.md violations. Real-Scenario TestingTested with Default-on (PR code, no settings override)Opt-out via env var (QWEN_CODE_DISABLE_CRON=1)Before (installed build, old default)All three scenarios behave as expected: old build has cron off by default, PR code has cron on by default, and the 中文说明代码审查diff 与我为解决这个问题会写的方案完全一致——三处默认值翻转、环境变量极性切换、更新测试和文档。10 个文件,+39/-51(净删除),没有新抽象。干净。 验证了一点:
没有正确性 bug,没有安全问题,没有违反 AGENTS.md。 真实场景测试使用 三种场景行为均符合预期:旧版本默认关闭 cron,PR 代码默认启用 cron, — Qwen Code · qwen3.7-max |
|
This is a textbook graduation PR. The feature is stable, the change is minimal, and the diff is exactly what you'd write from scratch — flip three defaults, swap one env var, update tests and docs. Net negative line count (-12) is a good sign. The testing confirmed all three paths work: cron off by default in the old build, cron on by default in the PR code, and the One note for the project: the repo's own Approving. ✅ 中文说明这是一个教科书级别的功能毕业 PR。功能稳定,变更最小,diff 与从头写的方案完全一致——翻转三个默认值、切换一个环境变量、更新测试和文档。净负行数(-12)是好信号。 测试确认了三条路径都正常工作:旧版本默认关闭 cron,PR 代码默认启用 cron, 项目备注:仓库自身的 批准。✅ — Qwen Code · qwen3.7-max |
qwen-code-ci-bot
left a comment
There was a problem hiding this comment.
LGTM, looks ready to ship. ✅
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.
No issues found. LGTM! ✅ — qwen3.7-max via Qwen Code /review
What this PR does
Graduates the
/loop(cron scheduling) feature from experimental opt-in to enabled by default. Previously, users had to setexperimental.cron: truein settings or exportQWEN_CODE_ENABLE_CRON=1to access loop tools. Now the feature is on out of the box, withQWEN_CODE_DISABLE_CRON=1available as an opt-out escape hatch.Why it's needed
The loop/cron tools (
cron_create,cron_list,cron_delete) and the/loopskill are a critical building block for loop harnesses — systems where the agent autonomously re-prompts itself on a schedule to poll deployments, babysit PRs, triage CI, or run recurring checks without manual intervention. Loop engineering (see Addy Osmani's writeup) is emerging as a key pattern for agentic workflows, and our/loopprimitive is the foundation that makes it possible. Keeping it behind an experimental flag means most users never discover it, which blocks adoption of these higher-level patterns.The feature has been stable across multiple releases with no reported issues beyond the double-execution bug fixed earlier. It's time to ship it as a default.
Reviewer Test Plan
How to verify
qwenwith no settings override. Type/loop— it should appear as an available skill and the cron tools should be registered.QWEN_CODE_DISABLE_CRON=1 qwen. Type/loop— it should not appear. The cron tools should not be registered."experimental": { "cron": false }in settings.json. Runqwen. Same as above —/loophidden, cron tools absent./loop 1m echo hello), verify it schedules, fires, and can be deleted.Evidence (Before & After)
N/A — behavioral change is config-level, no TUI changes.
Tested on
Environment (optional)
npm run build && npm run typecheck— clean pass.Risk & Scope
QWEN_CODE_DISABLE_CRON=1escape hatch andexperimental.cron: falsesetting.experimental.*— moving it would be a breaking change for existing users who haveexperimental.cron: truein their config. Left as-is for now.QWEN_CODE_ENABLE_CRONenv var no longer exists. Users who relied on it don't need it anymore (feature is on by default). Users who want to disable should switch toQWEN_CODE_DISABLE_CRON=1.中文说明
将
/loop(定时任务调度)功能从实验性可选升级为默认启用。此前用户需要在设置中配置experimental.cron: true或设置环境变量QWEN_CODE_ENABLE_CRON=1才能使用循环工具。现在该功能开箱即用,用户可通过QWEN_CODE_DISABLE_CRON=1环境变量选择退出。循环/定时任务工具(
cron_create、cron_list、cron_delete)和/loop技能是循环工程(loop engineering)的关键基础设施——这是一种让 Agent 按计划自动重复执行提示的模式,用于轮询部署状态、监控 PR、分类 CI 或运行定期检查。将其隐藏在实验性标志后面意味着大多数用户永远不会发现它,阻碍了这些高级模式的采用。该功能已在多个版本中保持稳定,没有报告的问题(除了之前已修复的双重执行 bug)。是时候将其作为默认功能发布了。
变更涉及 10 个文件:设置 schema 默认值翻转为
true、环境变量极性反转、删除"实验性"措辞、更新集成测试和文档。