* fix(cli): 在所有地方使用本地时间测量洞察天数和小时数 by @ComplexSimply in https://github.com/QwenLM/qwen-code/pull/7670
* refactor(autofix): 提取审查验证运行器 by @qqqys in https://github.com/QwenLM/qwen-code/pull/7644
* fix(ci): 当没有需要清理的内容时,不使分类清理失败 by @wenshao in https://github.com/QwenLM/qwen-code/pull/7688
* feat(core): 对齐 GenAI 内容遥测字段 by @doudouOUC in https://github.com/QwenLM/qwen-code/pull/7667
* fix(ci): 更新运行器活动 npm 前缀中的 qwen by @yiliang114 in https://github.com/QwenLM/qwen-code/pull/7689
* feat(core): 添加 Goal v3 运行时编排 by @qqqys in https://github.com/QwenLM/qwen-code/pull/7664
* test(web-shell): 在可视化套件中捕获 git 模式的新分支子状态 by @wenshao in https://github.com/QwenLM/qwen-code/pull/7672
* feat(triage): 停止代理内 CI 轮询,在 CI 完成后完成证据和审批 by @wenshao in https://github.com/QwenLM/qwen-code/pull/7693
* fix(acp): 在每个提示轮次结束时清理审查 worktree 租约 by @wenshao in https://github.com/QwenLM/qwen-code/pull/7694
* feat(serve): 暴露工作区 Channel 管理 API by @qqqys in https://github.com/QwenLM/qwen-code/pull/7637
* fix(core): 写入状态 sidecar,使模型不再误读静默后台 shell by @ComplexSimply in https://github.com/QwenLM/qwen-code/pull/7669
* fix(core): exit_plan_mode 返回 execute() 中的指导错误,而非权限拒绝 by @qwen-code-dev-bot in https://github.com/QwenLM/qwen-code/pull/7673
* fix(core): 在用户手动退出计划模式时告知模型 by @zjunothing in https://github.com/QwenLM/qwen-code/pull/7682
* fix(core): 为同一仓库的插件分配不同的扩展 ID by @zjunothing in https://github.com/QwenLM/qwen-code/pull/7676
* fix(core): 允许无需确认提示即可读取已保存的计划文件 by @zjunothing in https://github.com/QwenLM/qwen-code/pull/7678
* feat(web-shell): 添加只读 GitHub pull requests 面板 by @wenshao in https://github.com/QwenLM/qwen-code/pull/7683
* fix(cli): 当代理在轮次中间自动恢复时,清除过期的重试错误 by @qwen-code-dev-bot in https://github.com/QwenLM/qwen-code/pull/7681
* fix(mcp): 增强 OAuth 回调处理 by @gauravyad86 in https://github.com/QwenLM/qwen-code/pull/7510
* fix(web-shell): 为 GitHub PR 列表行添加 :focus-visible 轮廓 by @wenshao in https://github.com/QwenLM/qwen-code/pull/7704
* perf(cli): 在守护进程路由中缓存 GitHub PR 列表,TTL 为 60s by @wenshao in https://github.com/QwenLM/qwen-code/pull/7705
* perf(core): 将易变的自动记忆部分保留在系统提示词的末尾 by @DragonnZhang in https://github.com/QwenLM/qwen-code/pull/7651
* perf(web-shell): 在 git 状态完成前渲染 composer git chip by @wenshao in https://github.com/QwenLM/qwen-code/pull/7680
* fix(triage): 在补丁时通过标记解析阶段注释 ID,增强模型注入 by @wenshao in https://github.com/QwenLM/qwen-code/pull/7703
* fix(triage): 从 open-PR 列表而非提交关联中解析待完成的 PR by @wenshao in https://github.com/QwenLM/qwen-code/pull/7706
* feat(integrations): 添加仅检索的外部上下文搜索 by @doudouOUC in https://github.com/QwenLM/qwen-code/pull/7586
* feat(review): 为现有线程分类添加 comment-status 辅助函数 by @wenshao in https://github.com/QwenLM/qwen-code/pull/7690
* feat(review): 通过清理触发器强制执行仅提交的写入契约 by @wenshao in https://github.com/QwenLM/qwen-code/pull/7691
* fix(cli): 对齐行内数学公式识别 by @CubeLander in https://github.com/QwenLM/qwen-code/pull/7701
* feat(serve): 热重载工作区信任更改 by @doudouOUC in https://github.com/QwenLM/qwen-code/pull/7268
* feat(core): 配置流速率限制重试延迟 by @jay666mnj in https://github.com/QwenLM/qwen-code/pull/7674
* refactor(core): 通过单一分层构建器组装系统提示词 by @DragonnZhang in https://github.com/QwenLM/qwen-code/pull/7707
* feat(stats): 显示生成时间指标 by @destire-mio in https://github.com/QwenLM/qwen-code/pull/7677
* fix(desktop): 扩展 formatBytes 以支持 GB 以上单位,避免太字节大小渲染为 "undefined" by @chinesepowered in https://github.com/QwenLM/qwen-code/pull/7623
* fix(core): 在 toOpenAPI30 中将 const 派生的枚举转换为字符串 by @chinesepowered in https://github.com/QwenLM/qwen-code/pull/7547
* fix(core): 转换以 schema 关键字命名的属性的子模式 by @chinesepowered in https://github.com/QwenLM/qwen-code/pull/7546
* feat(channels): 采用通知唤醒架构的 GitHub 轮询适配器 by @OrbitZore in https://github.com/QwenLM/qwen-code/pull/7632
* feat(core): 配置流速率限制重试延迟 by @hogeheer499-commits in https://github.com/QwenLM/qwen-code/pull/7666
* fix: 屏蔽从无头 shell 终端泄漏的 xterm.js 解析器诊断信息 by @mvanhorn in https://github.com/QwenLM/qwen-code/pull/7663
* fix(review): 处理审查技能合并后的 P2 审查反馈 by @wenshao in https://github.com/QwenLM/qwen-code/pull/7708
* fix(core): 在循环检测提前返回时触发 StopFailure 钩子 by @qwen-code-dev-bot in https://github.com/QwenLM/qwen-code/pull/7592
* test(web-shell): 覆盖恢复历史分页重试 by @jay666mnj in https://github.com/QwenLM/qwen-code/pull/7657
* fix(web-shell): 为 worktree 会话启用 Changes 和 History 对话框 by @wenshao in https://github.com/QwenLM/qwen-code/pull/7695
* fix(cli): 严格解析 heatmapDays by @VectorPeak in https://github.com/QwenLM/qwen-code/pull/7218
* fix(acp-bridge): 提高 live journal 上限并作为守护进程配置暴露 by @wenshao in https://github.com/QwenLM/qwen-code/pull/7715
* fix(web-shell): 允许对辅助工作区会话进行固定和分组 by @wenshao 在 https://github.com/QwenLM/qwen-code/pull/7716
* fix(review): 在同账号写入时不要过度声明提交门控绕过 by @wenshao 在 https://github.com/QwenLM/qwen-code/pull/7718
* fix(qqbot): 恢复 AcpBridge 会话加载 — 返回输入 sessionId,修补 catch 路径 by @Eric-GoodBoy-Tech 在 https://github.com/QwenLM/qwen-code/pull/7722
* feat(skills): 添加可覆盖的默认禁用状态 by @samuelhsin 在 https://github.com/QwenLM/qwen-code/pull/7357
* fix(core): 防止更新扩展提供的代理 by @destire-mio 在 https://github.com/QwenLM/qwen-code/pull/7245
* fix(core): 当内置 ripgrep 无法运行时回退到系统 rg by @harjothkhara 在 https://github.com/QwenLM/qwen-code/pull/7203
* fix(core): 在 DashScope 思考过程中避免使用必需工具 by @hogeheer499-commits 在 https://github.com/QwenLM/qwen-code/pull/7661
* fix(channels): 在 GitHub 适配器中使用 username 作为 senderId 以修复白名单门控 by @OrbitZore 在 https://github.com/QwenLM/qwen-code/pull/7727
* feat(webui): 添加工作区 Channel 管理钩子 by @qqqys 在 https://github.com/QwenLM/qwen-code/pull/7728
* fix(web-shell): 在 parseAnsi 中解析 256 色和真彩色 SGR 序列 by @chinesepowered 在 https://github.com/QwenLM/qwen-code/pull/7620
* test(cli): 覆盖底部固定虚拟列表的行为 by @jay666mnj 在 https://github.com/QwenLM/qwen-code/pull/7652
* perf(core): 按需懒加载首次使用的依赖 by @doudouOUC 在 https://github.com/QwenLM/qwen-code/pull/7686
* fix(triage): 仅机器人自身的批准计为已批准 by @wenshao 在 https://github.com/QwenLM/qwen-code/pull/7737
* fix(core): 停止使用 humanReadableCron 命名永远不会发生的间隔 by @chinesepowered 在 https://github.com/QwenLM/qwen-code/pull/7529
* ci: 当 npm 无法响应时保持 critical-audit 门控的真实性 by @wenshao 在 https://github.com/QwenLM/qwen-code/pull/7743
* docs(channels): 记录循环和主动投递机制 by @wenshao 在 https://github.com/QwenLM/qwen-code/pull/7628
* feat(review): 将中等工作量重新定义为平衡的已验证通过 by @wenshao 在 https://github.com/QwenLM/qwen-code/pull/7733
* feat(review): 在测试覆盖率通过阶段对测试进行变异测试(Agent 5) by @wenshao 在 https://github.com/QwenLM/qwen-code/pull/7735
* feat(review): 将维护者审查视角引入代理简报 by @wenshao 在 https://github.com/QwenLM/qwen-code/pull/7736
* feat(web-shell): 持久化终端历史记录的分页错误 by @PratikWayase 在 https://github.com/QwenLM/qwen-code/pull/7709
* fix(cli): 在页脚更新后保持 IME 光标对齐 by @water-in-stone 在 https://github.com/QwenLM/qwen-code/pull/7711
* fix(core): 在批准 exit_plan_mode 后从历史记录中脱敏计划参数 by @zjunothing 在 https://github.com/QwenLM/qwen-code/pull/7197
* fix(review): 修正借用的视角和空测试严重程度(#7735/#7736 的后续) by @wenshao 在 https://github.com/QwenLM/qwen-code/pull/7746
* fix(core): 可靠地传递手动退出计划通知 by @doudouOUC 在 https://github.com/QwenLM/qwen-code/pull/7744
* feat(triage): 添加沙盒化的 /verify 深度验证通道 by @wenshao 在 https://github.com/QwenLM/qwen-code/pull/7710
* fix(review): 当计划省略 Han 标记时,从实时 PR 恢复双语语域 by @wenshao 在 https://github.com/QwenLM/qwen-code/pull/7739
* fix(cli): 补全重复的技能斜杠命令 by @Sparkle6979 在 https://github.com/QwenLM/qwen-code/pull/7720
* fix(cli): 处理行内数学公式周围的转义美元符号 by @CubeLander 在 https://github.com/QwenLM/qwen-code/pull/7741
* test(integration): 修复工具控制权限测试用例的不稳定问题 by @yiliang114 在 https://github.com/QwenLM/qwen-code/pull/7725
* revert: 移除 stale-base 恢复机制 (#7602) by @wenshao 在 https://github.com/QwenLM/qwen-code/pull/7640
* perf(cli): 替换 comment-json 设置解析器 by @doudouOUC 在 https://github.com/QwenLM/qwen-code/pull/7747
* fix(cli): 在多工具紧凑摘要中显示工具描述 by @ovochouovo 在 https://github.com/QwenLM/qwen-code/pull/7589
* fix(ci): 重命名 triage 状态标记以避免重复守卫冲突 by @yiliang114 在 https://github.com/QwenLM/qwen-code/pull/7723
* fix(core): 将无 ID 的连续块路由到冲突的工具调用打开器槽位 by @he-yufeng 在 https://github.com/QwenLM/qwen-code/pull/6981
* feat(review): 赋予验证器探测能力 — 运行可执行声明,而非仅读取 by @wenshao 在 https://github.com/QwenLM/qwen-code/pull/7756
* feat(core): 为子代理生成添加模型等级选择 (#7685) by @yiliang114 在 https://github.com/QwenLM/qwen-code/pull/7702
* fix(autofix): 回复每个审查线程,仅解决实际已修复的 by @wenshao 在 https://github.com/QwenLM/qwen-code/pull/7758
## 新贡献者
* @jay666mnj 在 https://github.com/QwenLM/qwen-code/pull/7674 中首次贡献
* @harjothkhara 在 https://github.com/QwenLM/qwen-code/pull/7203 中首次贡献
* @PratikWayase 在 https://github.com/QwenLM/qwen-code/pull/7709 中首次贡献
* @Sparkle6979 在 https://github.com/QwenLM/qwen-code/pull/7720 中首次贡献
**完整更新日志**: https://github.com/QwenLM/qwen-code/compare/v0.21.0...v0.21.0-nightly.20260727.c003e1718
<!-- Release notes generated using configuration in .github/release.yml at release/v0.21.0-nightly.20260727.c003e1718 -->
## What's Changed
* fix(cli): measure insight days and hours in local time everywhere by @ComplexSimply in https://github.com/QwenLM/qwen-code/pull/7670
* refactor(autofix): extract review verification runner by @qqqys in https://github.com/QwenLM/qwen-code/pull/7644
* fix(ci): don't fail triage cleanup when there is nothing to clean by @wenshao in https://github.com/QwenLM/qwen-code/pull/7688
* feat(core): Align GenAI content telemetry fields by @doudouOUC in https://github.com/QwenLM/qwen-code/pull/7667
* fix(ci): update qwen in the runner's active npm prefix by @yiliang114 in https://github.com/QwenLM/qwen-code/pull/7689
* feat(core): add Goal v3 runtime orchestration by @qqqys in https://github.com/QwenLM/qwen-code/pull/7664
* test(web-shell): capture the git-mode new-branch sub-state in the visuals suite by @wenshao in https://github.com/QwenLM/qwen-code/pull/7672
* feat(triage): stop in-agent CI polling, finalize evidence and approval after CI completes by @wenshao in https://github.com/QwenLM/qwen-code/pull/7693
* fix(acp): sweep review worktree leases at the end of each prompt turn by @wenshao in https://github.com/QwenLM/qwen-code/pull/7694
* feat(serve): expose workspace Channel management API by @qqqys in https://github.com/QwenLM/qwen-code/pull/7637
* fix(core): write a status sidecar so models stop misreading quiet background shells by @ComplexSimply in https://github.com/QwenLM/qwen-code/pull/7669
* fix(core): exit_plan_mode returns guidance error from execute() instead of permission deny by @qwen-code-dev-bot in https://github.com/QwenLM/qwen-code/pull/7673
* fix(core): tell the model when the user manually exits plan mode by @zjunothing in https://github.com/QwenLM/qwen-code/pull/7682
* fix(core): give plugins from the same repository distinct extension ids by @zjunothing in https://github.com/QwenLM/qwen-code/pull/7676
* fix(core): allow reading saved plan files without a confirmation prompt by @zjunothing in https://github.com/QwenLM/qwen-code/pull/7678
* feat(web-shell): add read-only GitHub pull requests panel by @wenshao in https://github.com/QwenLM/qwen-code/pull/7683
* fix(cli): clear stale retry error when agent auto-recovers mid-turn by @qwen-code-dev-bot in https://github.com/QwenLM/qwen-code/pull/7681
* fix(mcp): harden OAuth callback handling by @gauravyad86 in https://github.com/QwenLM/qwen-code/pull/7510
* fix(web-shell): add :focus-visible outline to GitHub PR list rows by @wenshao in https://github.com/QwenLM/qwen-code/pull/7704
* perf(cli): cache GitHub PR list in the daemon route with a 60s TTL by @wenshao in https://github.com/QwenLM/qwen-code/pull/7705
* perf(core): keep the volatile auto-memory section last in the system prompt by @DragonnZhang in https://github.com/QwenLM/qwen-code/pull/7651
* perf(web-shell): paint the composer git chip before git status completes by @wenshao in https://github.com/QwenLM/qwen-code/pull/7680
* fix(triage): resolve stage comment ids by marker at patch time, harden model injection by @wenshao in https://github.com/QwenLM/qwen-code/pull/7703
* fix(triage): resolve finalize PRs from the open-PR list, not the commit association by @wenshao in https://github.com/QwenLM/qwen-code/pull/7706
* feat(integrations): add retrieval-only external context search by @doudouOUC in https://github.com/QwenLM/qwen-code/pull/7586
* feat(review): add comment-status helper for existing-thread triage by @wenshao in https://github.com/QwenLM/qwen-code/pull/7690
* feat(review): enforce the submit-only write contract with a cleanup tripwire by @wenshao in https://github.com/QwenLM/qwen-code/pull/7691
* fix(cli): align inline math recognition by @CubeLander in https://github.com/QwenLM/qwen-code/pull/7701
* feat(serve): Hot-reload workspace trust changes by @doudouOUC in https://github.com/QwenLM/qwen-code/pull/7268
* feat(core): configure stream rate-limit retry delays by @jay666mnj in https://github.com/QwenLM/qwen-code/pull/7674
* refactor(core): assemble the system prompt through one layered builder by @DragonnZhang in https://github.com/QwenLM/qwen-code/pull/7707
* feat(stats): show generation timing metrics by @destire-mio in https://github.com/QwenLM/qwen-code/pull/7677
* fix(desktop): scale formatBytes past GB so terabyte sizes don't render as "undefined" by @chinesepowered in https://github.com/QwenLM/qwen-code/pull/7623
* fix(core): stringify const-derived enums in toOpenAPI30 by @chinesepowered in https://github.com/QwenLM/qwen-code/pull/7547
* fix(core): convert subschemas of properties named after schema keywords by @chinesepowered in https://github.com/QwenLM/qwen-code/pull/7546
* feat(channels): GitHub polling adapter with notification-as-wakeup architecture by @OrbitZore in https://github.com/QwenLM/qwen-code/pull/7632
* feat(core): configure stream rate-limit retry delays by @hogeheer499-commits in https://github.com/QwenLM/qwen-code/pull/7666
* fix: silence xterm.js parser diagnostics leaking from headless shell terminals by @mvanhorn in https://github.com/QwenLM/qwen-code/pull/7663
* fix(review): address post-merge P2 review feedback on the review skill by @wenshao in https://github.com/QwenLM/qwen-code/pull/7708
* fix(core): fire StopFailure hook on loop detection early returns by @qwen-code-dev-bot in https://github.com/QwenLM/qwen-code/pull/7592
* test(web-shell): cover restored-history pagination retries by @jay666mnj in https://github.com/QwenLM/qwen-code/pull/7657
* fix(web-shell): enable Changes and History dialogs for worktree sessions by @wenshao in https://github.com/QwenLM/qwen-code/pull/7695
* fix(cli): parse heatmapDays strictly by @VectorPeak in https://github.com/QwenLM/qwen-code/pull/7218
* fix(acp-bridge): raise live journal caps and expose as daemon config by @wenshao in https://github.com/QwenLM/qwen-code/pull/7715
* fix(web-shell): allow pin and group for secondary workspace sessions by @wenshao in https://github.com/QwenLM/qwen-code/pull/7716
* fix(review): don't overclaim a submit-gate bypass on a same-account write by @wenshao in https://github.com/QwenLM/qwen-code/pull/7718
* fix(qqbot): restore AcpBridge session loading — return input sessionId, patch catch path by @Eric-GoodBoy-Tech in https://github.com/QwenLM/qwen-code/pull/7722
* feat(skills): add overridable default-disabled state by @samuelhsin in https://github.com/QwenLM/qwen-code/pull/7357
* fix(core): prevent updates to extension-provided agents by @destire-mio in https://github.com/QwenLM/qwen-code/pull/7245
* fix(core): fall back to system rg when bundled ripgrep cannot run by @harjothkhara in https://github.com/QwenLM/qwen-code/pull/7203
* fix(core): avoid required tools in DashScope thinking by @hogeheer499-commits in https://github.com/QwenLM/qwen-code/pull/7661
* fix(channels): use username as senderId in GitHub adapter to fix allowlist gate by @OrbitZore in https://github.com/QwenLM/qwen-code/pull/7727
* feat(webui): add workspace Channel management hook by @qqqys in https://github.com/QwenLM/qwen-code/pull/7728
* fix(web-shell): parse 256-color and truecolor SGR sequences in parseAnsi by @chinesepowered in https://github.com/QwenLM/qwen-code/pull/7620
* test(cli): cover bottom-stuck virtualized list behavior by @jay666mnj in https://github.com/QwenLM/qwen-code/pull/7652
* perf(core): Lazy-load first-use dependencies by @doudouOUC in https://github.com/QwenLM/qwen-code/pull/7686
* fix(triage): only the bot's own approval counts as already approved by @wenshao in https://github.com/QwenLM/qwen-code/pull/7737
* fix(core): stop humanReadableCron naming intervals that never happen by @chinesepowered in https://github.com/QwenLM/qwen-code/pull/7529
* ci: keep the critical-audit gate honest when npm cannot answer by @wenshao in https://github.com/QwenLM/qwen-code/pull/7743
* docs(channels): Document loops and proactive delivery by @wenshao in https://github.com/QwenLM/qwen-code/pull/7628
* feat(review): redefine medium effort as a balanced verified pass by @wenshao in https://github.com/QwenLM/qwen-code/pull/7733
* feat(review): mutation-test the tests in the test-coverage pass (Agent 5) by @wenshao in https://github.com/QwenLM/qwen-code/pull/7735
* feat(review): borrow maintainer review lenses into the agent briefs by @wenshao in https://github.com/QwenLM/qwen-code/pull/7736
* feat(web-shell): persist terminal history pagination errors by @PratikWayase in https://github.com/QwenLM/qwen-code/pull/7709
* fix(cli): keep IME cursor aligned after footer updates by @water-in-stone in https://github.com/QwenLM/qwen-code/pull/7711
* fix(core): redact the plan argument from history after an approved exit_plan_mode by @zjunothing in https://github.com/QwenLM/qwen-code/pull/7197
* fix(review): correct the borrowed lenses and vacuous-test severity (follow-up to #7735/#7736) by @wenshao in https://github.com/QwenLM/qwen-code/pull/7746
* fix(core): reliably deliver manual plan-exit notices by @doudouOUC in https://github.com/QwenLM/qwen-code/pull/7744
* feat(triage): add sandboxed /verify deep-verification lane by @wenshao in https://github.com/QwenLM/qwen-code/pull/7710
* fix(review): recover bilingual register from the live PR when the plan omits the Han flag by @wenshao in https://github.com/QwenLM/qwen-code/pull/7739
* fix(cli): complete repeated skill slash commands by @Sparkle6979 in https://github.com/QwenLM/qwen-code/pull/7720
* fix(cli): handle escaped dollars around inline math by @CubeLander in https://github.com/QwenLM/qwen-code/pull/7741
* test(integration): deflake tool-control permission cases by @yiliang114 in https://github.com/QwenLM/qwen-code/pull/7725
* revert: drop the stale-base un-park recovery (#7602) by @wenshao in https://github.com/QwenLM/qwen-code/pull/7640
* perf(cli): replace comment-json settings parser by @doudouOUC in https://github.com/QwenLM/qwen-code/pull/7747
* fix(cli): show tool descriptions in multi-tool compact summaries by @ovochouovo in https://github.com/QwenLM/qwen-code/pull/7589
* fix(ci): rename triage status marker to avoid duplicate-guard collision by @yiliang114 in https://github.com/QwenLM/qwen-code/pull/7723
* fix(core): route id-less continuation chunks to a colliding tool-call opener's slot by @he-yufeng in https://github.com/QwenLM/qwen-code/pull/6981
* feat(review): give the verifier a probe capability — run a runnable claim, don't just read it by @wenshao in https://github.com/QwenLM/qwen-code/pull/7756
* feat(core): add model grade selection for subagent spawn (#7685) by @yiliang114 in https://github.com/QwenLM/qwen-code/pull/7702
* fix(autofix): answer every review thread, resolve the ones actually fixed by @wenshao in https://github.com/QwenLM/qwen-code/pull/7758
## New Contributors
* @jay666mnj made their first contribution in https://github.com/QwenLM/qwen-code/pull/7674
* @harjothkhara made their first contribution in https://github.com/QwenLM/qwen-code/pull/7203
* @PratikWayase made their first contribution in https://github.com/QwenLM/qwen-code/pull/7709
* @Sparkle6979 made their first contribution in https://github.com/QwenLM/qwen-code/pull/7720
**Full Changelog**: https://github.com/QwenLM/qwen-code/compare/v0.21.0...v0.21.0-nightly.20260727.c003e1718