<!-- 使用 .github/release.yml 中的配置生成(位于 release/v0.21.2-nightly.20260801.bc382c3ff)-->
## 更新内容
* 功能(hooks): 在生命周期钩子负载中包含会话来源 by @xurik in https://github.com/QwenLM/qwen-code/pull/8155
* 功能(review): 在审查工作流 PR 时检查缓存身份 by @wenshao in https://github.com/QwenLM/qwen-code/pull/8205
* 修复(cli): 允许在无 bearer token 的情况下使用临时工作区 by @wenshao in https://github.com/QwenLM/qwen-code/pull/8204
* 功能(channels): 按工作区隔离守护进程适配器状态 by @qqqys in https://github.com/QwenLM/qwen-code/pull/8178
* 修复(test): 通过 TEST_TIMEOUT 路由 setPermissionMode E2E 超时问题 (#8133) by @qwen-code-dev-bot in https://github.com/QwenLM/qwen-code/pull/8135
* 重构(web-shell): 简化插件页面操作按钮标签 by @ytahdn in https://github.com/QwenLM/qwen-code/pull/8174
* 功能(verify-pr): 提供一键捕获辅助工具 by @wenshao in https://github.com/QwenLM/qwen-code/pull/8114
* 修复(github-channel): 重试确定性的无写入交付 by @yiliang114 in https://github.com/QwenLM/qwen-code/pull/8087
* 修复(core): 容忍转录时间戳漂移 by @doudouOUC in https://github.com/QwenLM/qwen-code/pull/7886
* 功能(anthropic): 支持扩展的 1h cache_control TTL by @netbrah in https://github.com/QwenLM/qwen-code/pull/8048
* 修复(cli): 为 @ 补全选项卡切换添加 Ctrl+Tab 替代方案 by @qwen-code-dev-bot in https://github.com/QwenLM/qwen-code/pull/8074
* 修复(cli): 通过添加 uncaughtException 处理程序和错误可见性防止 VP 模式静默崩溃 by @chiga0 in https://github.com/QwenLM/qwen-code/pull/8088
* 修复(core): 当标记不匹配时,使 compactString 保持在限制范围内 by @chinesepowered in https://github.com/QwenLM/qwen-code/pull/7872
* 功能(ci): 当 CLI 入口被提升为块时,使启动包检查失败 by @wenshao in https://github.com/QwenLM/qwen-code/pull/8203
* 修复(web-shell): 将内置代理类型名称本地化为 zh-CN by @wenshao in https://github.com/QwenLM/qwen-code/pull/8209
* 修复(release): 保持注释锚定并限制发布正文 by @wenshao in https://github.com/QwenLM/qwen-code/pull/8199
* 修复(core): 剥离助手轮次预填充,并修复 4.6+ 模型的 thinking.display by @netbrah in https://github.com/QwenLM/qwen-code/pull/8040
* 修复(anthropic): 在混合内容用户消息中优先放置 tool_result 块 by @netbrah in https://github.com/QwenLM/qwen-code/pull/8165
* 修复(anthropic): 清理 tool_use.id / tool_result.tool_use_id by @netbrah in https://github.com/QwenLM/qwen-code/pull/8164
* 功能(gitlab-channel): 在代理工作时添加瞬态 👀 奖励表情 by @OrbitZore in https://github.com/QwenLM/qwen-code/pull/8119
* 功能(core): 规范化工具调用终端遥测数据 by @doudouOUC in https://github.com/QwenLM/qwen-code/pull/8176
* 修复(web-shell): 为长模型名称自适应下拉菜单宽度 by @wenshao in https://github.com/QwenLM/qwen-code/pull/8220
* 重构(core): 提取工作流运行所有权 by @qqqys in https://github.com/QwenLM/qwen-code/pull/8140
* 修复(integration-tests): 稳定异步 SDK MCP 工具处理程序 E2E (#8222) by @qwen-code-dev-bot in https://github.com/QwenLM/qwen-code/pull/8223
* 修复(test): 隔离 worktree 符号链接测试的临时同级目录 by @wenshao in https://github.com/QwenLM/qwen-code/pull/8228
* 修复(cli): 从四舍五入的数值中选取内存单位,而非原始字节 by @chinesepowered in https://github.com/QwenLM/qwen-code/pull/7871
* 修复(core): 防止子代理向用户提问 by @DragonnZhang in https://github.com/QwenLM/qwen-code/pull/8219
* 功能(hooks): 添加 SessionDelete 事件 by @xurik in https://github.com/QwenLM/qwen-code/pull/8059
* 修复(core): 在 splitCompoundCommand 中将裸 & 视为命令边界 by @chinesepowered in https://github.com/QwenLM/qwen-code/pull/7864
* 功能(serve): 支持在 POST /session 中由调用方提供 sessionId by @qwen-code-dev-bot in https://github.com/QwenLM/qwen-code/pull/7836
* 功能(cli): 在流式传输期间运行安全的斜杠命令 by @DragonnZhang in https://github.com/QwenLM/qwen-code/pull/8130
* 修复(cli): 在 macOS 上为剪贴板图像粘贴添加 Option+V by @qwen-code-dev-bot in https://github.com/QwenLM/qwen-code/pull/8120
* 功能(core): 添加主机工具调用守卫 by @chiga0 in https://github.com/QwenLM/qwen-code/pull/8032
* 功能(core): 添加 GenAI 首块时间追踪 by @doudouOUC in https://github.com/QwenLM/qwen-code/pull/8150
* 修复(ui): 在对话框过渡期间抑制过时的鼠标事件 by @kagura-agent in https://github.com/QwenLM/qwen-code/pull/8089
* 文档: 基于外部判断服务的 PreToolUse HTTP 钩子工作示例 by @babyblueviper1 in https://github.com/QwenLM/qwen-code/pull/8202
* 测试(integration): 将 acp-cron 迁移到 fake-openai-server (#8076) by @qwen-code-dev-bot in https://github.com/QwenLM/qwen-code/pull/8082
* 修复(ci): 避免验证捕获颜色冲突 by @ytahdn in https://github.com/QwenLM/qwen-code/pull/8236
* 修复(serve): 按选定工作区隔离托管内存 by @qqqys in https://github.com/QwenLM/qwen-code/pull/8056
* 修复(web-shell): 保持粘贴文本可见 by @ytahdn in https://github.com/QwenLM/qwen-code/pull/8230
* 修复(autofix): 保护审查线程解析 by @wenshao in https://github.com/QwenLM/qwen-code/pull/8231
* 测试(e2e): 在易失败的子代理案例中继承套件超时 (#8244) by @qwen-code-dev-bot in https://github.com/QwenLM/qwen-code/pull/8246
* 修复(autofix): 将建议处理扩展至十轮 by @wenshao in https://github.com/QwenLM/qwen-code/pull/8247
* 功能(triage): 在 PR 上启动 /triage 时并行启动 verify 通道 by @wenshao in https://github.com/QwenLM/qwen-code/pull/8249
* 功能(daemon): 将默认最大会话数从 20 提升至 32 by @wenshao in https://github.com/QwenLM/qwen-code/pull/8235
* 修复(core): 从纯文本内容中恢复 XML 风格工具调用 by @qwen-code-dev-bot in https://github.com/QwenLM/qwen-code/pull/8037
* 测试(e2e):跳过两个模型不稳定的 SDK E2E 测试用例 (#8256),由 @qwen-code-dev-bot 提交于 https://github.com/QwenLM/qwen-code/pull/8259
* 功能(web-shell):添加工件下载,由 @ytahdn 提交于 https://github.com/QwenLM/qwen-code/pull/8234
* 功能(memory):在分叉的 Dream 期间保护已固定的文件,由 @destire-mio 提交于 https://github.com/QwenLM/qwen-code/pull/7714
* 修复(external-context):加固 MCP 依赖,由 @doudouOUC 提交于 https://github.com/QwenLM/qwen-code/pull/8206
* 修复(anthropic):去重共享同一 tool_use_id 的重复 tool_result 块,由 @netbrah 提交于 https://github.com/QwenLM/qwen-code/pull/8163
* 修复(web-shell):静默后台任务轮询失败,由 @han-dreamer 提交于 https://github.com/QwenLM/qwen-code/pull/7923
* 修复(channel):唤醒后恢复 ACP 桥接,由 @yiliang114 提交于 https://github.com/QwenLM/qwen-code/pull/8211
* 重构(core):将描述符线程化,而非分叉文本读取辅助函数,由 @doudouOUC 提交于 https://github.com/QwenLM/qwen-code/pull/7967
* 修复(cli):在早期输入捕获中过滤 SGR 鼠标转义序列,由 @qwen-code-dev-bot 提交于 https://github.com/QwenLM/qwen-code/pull/8268
* 功能(core):添加项目级分叉配置,由 @destire-mio 提交于 https://github.com/QwenLM/qwen-code/pull/8148
* 功能(skills):添加禁用技能级别,由 @zhangxy-zju 提交于 https://github.com/QwenLM/qwen-code/pull/8057
* 修复(cli):稳定思考块高度,用内联 Ctrl+O 切换替代转录覆盖层,由 @chiga0 提交于 https://github.com/QwenLM/qwen-code/pull/8077
* 功能(autofix):在单一技能中统一本地和 CI 流程,由 @yiliang114 提交于 https://github.com/QwenLM/qwen-code/pull/8121
* 修复(cli):完善跨入口点的图像路由,由 @yiliang114 提交于 https://github.com/QwenLM/qwen-code/pull/7206
* 修复(integration):在 acp-cron 测试中使用 QWEN_CODE_TEST_CRON_FAST (#8237),由 @qwen-code-dev-bot 提交于 https://github.com/QwenLM/qwen-code/pull/8243
* 修复(anthropic):当 tool_use 成为孤儿时,级联剥离陈旧的同级思考块,由 @netbrah 提交于 https://github.com/QwenLM/qwen-code/pull/8166
* 修复(web-shell):在窄消息中紧凑化高级表格,由 @ytahdn 提交于 https://github.com/QwenLM/qwen-code/pull/8264
* 修复(web-shell):恢复后稳定移动端编辑器,由 @ytahdn 提交于 https://github.com/QwenLM/qwen-code/pull/8263
* 修复:使测试套件在 Windows 上可移植,由 @yiliang114 提交于 https://github.com/QwenLM/qwen-code/pull/8050
* 修复(triage):将验证报告渲染为清理后的 Markdown,而非转义的 pre 转储,由 @wenshao 提交于 https://github.com/QwenLM/qwen-code/pull/8147
* 功能(workflows):使工作流代理审批向上冒泡,由 @qqqys 提交于 https://github.com/QwenLM/qwen-code/pull/8240
* 重构(cli):移除 ACP 私有服务依赖,由 @yiliang114 提交于 https://github.com/QwenLM/qwen-code/pull/8141
* 修复(web-shell):按会话隔离自动回顾,由 @wenshao 提交于 https://github.com/QwenLM/qwen-code/pull/8262
* 功能(verify):扫描同级形状,校准重放,测量建议修复,由 @wenshao 提交于 https://github.com/QwenLM/qwen-code/pull/8242
* 修复(triage):用双语说明重跑摘要的测量内容,由 @wenshao 提交于 https://github.com/QwenLM/qwen-code/pull/8273
* 修复(ci):加固自托管运行器工作区所有权恢复,由 @qwen-code-dev-bot 提交于 https://github.com/QwenLM/qwen-code/pull/8115
* 功能(skills):添加自动技能策展人,由 @DragonnZhang 提交于 https://github.com/QwenLM/qwen-code/pull/7846
## 新贡献者
* @babyblueviper1 在 https://github.com/QwenLM/qwen-code/pull/8202 中完成了首次贡献
**完整更新日志**: https://github.com/QwenLM/qwen-code/compare/v0.21.2...v0.21.2-nightly.20260801.bc382c3ff
<!-- Release notes generated using configuration in .github/release.yml at release/v0.21.2-nightly.20260801.bc382c3ff -->
## What's Changed
* feat(hooks): include session source in lifecycle hook payloads by @xurik in https://github.com/QwenLM/qwen-code/pull/8155
* feat(review): check cache identity when reviewing workflow PRs by @wenshao in https://github.com/QwenLM/qwen-code/pull/8205
* fix(cli): allow scratch workspace without bearer token by @wenshao in https://github.com/QwenLM/qwen-code/pull/8204
* feat(channels): isolate daemon adapter state by workspace by @qqqys in https://github.com/QwenLM/qwen-code/pull/8178
* fix(test): route setPermissionMode E2E timeouts through TEST_TIMEOUT (#8133) by @qwen-code-dev-bot in https://github.com/QwenLM/qwen-code/pull/8135
* refactor(web-shell): simplify plugin page action button labels by @ytahdn in https://github.com/QwenLM/qwen-code/pull/8174
* feat(verify-pr): ship a one-command capture helper by @wenshao in https://github.com/QwenLM/qwen-code/pull/8114
* fix(github-channel): retry definite no-write deliveries by @yiliang114 in https://github.com/QwenLM/qwen-code/pull/8087
* fix(core): Tolerate transcript timestamp drift by @doudouOUC in https://github.com/QwenLM/qwen-code/pull/7886
* feat(anthropic): support extended 1h cache_control TTL by @netbrah in https://github.com/QwenLM/qwen-code/pull/8048
* fix(cli): add Ctrl+Tab alternative for @ completion tab switching by @qwen-code-dev-bot in https://github.com/QwenLM/qwen-code/pull/8074
* fix(cli): prevent silent VP-mode crash by adding uncaughtException handler and error visibility by @chiga0 in https://github.com/QwenLM/qwen-code/pull/8088
* fix(core): keep compactString within its limit when the marker does not fit by @chinesepowered in https://github.com/QwenLM/qwen-code/pull/7872
* feat(ci): fail the startup bundle check when the CLI entry is hoisted into a chunk by @wenshao in https://github.com/QwenLM/qwen-code/pull/8203
* fix(web-shell): localize built-in agent type names in zh-CN by @wenshao in https://github.com/QwenLM/qwen-code/pull/8209
* fix(release): keep notes anchored and cap the release body by @wenshao in https://github.com/QwenLM/qwen-code/pull/8199
* fix(core): strip assistant-turn prefill and fix thinking.display on 4.6+ models by @netbrah in https://github.com/QwenLM/qwen-code/pull/8040
* fix(anthropic): move tool_result blocks first in mixed-content user messages by @netbrah in https://github.com/QwenLM/qwen-code/pull/8165
* fix(anthropic): sanitize tool_use.id / tool_result.tool_use_id by @netbrah in https://github.com/QwenLM/qwen-code/pull/8164
* feat(gitlab-channel): add transient 👀 award emoji while agent is working by @OrbitZore in https://github.com/QwenLM/qwen-code/pull/8119
* feat(core): Normalize tool-call terminal telemetry by @doudouOUC in https://github.com/QwenLM/qwen-code/pull/8176
* fix(web-shell): adaptive dropdown width for long model names by @wenshao in https://github.com/QwenLM/qwen-code/pull/8220
* refactor(core): extract workflow run ownership by @qqqys in https://github.com/QwenLM/qwen-code/pull/8140
* fix(integration-tests): stabilize async SDK MCP tool handler E2E (#8222) by @qwen-code-dev-bot in https://github.com/QwenLM/qwen-code/pull/8223
* fix(test): isolate the worktree symlink test's temporary sibling directory by @wenshao in https://github.com/QwenLM/qwen-code/pull/8228
* fix(cli): pick the memory unit from the rounded figure, not the raw bytes by @chinesepowered in https://github.com/QwenLM/qwen-code/pull/7871
* fix(core): prevent subagents from asking users by @DragonnZhang in https://github.com/QwenLM/qwen-code/pull/8219
* feat(hooks): add SessionDelete event by @xurik in https://github.com/QwenLM/qwen-code/pull/8059
* fix(core): treat a bare & as a command boundary in splitCompoundCommand by @chinesepowered in https://github.com/QwenLM/qwen-code/pull/7864
* feat(serve): support caller-supplied sessionId in POST /session by @qwen-code-dev-bot in https://github.com/QwenLM/qwen-code/pull/7836
* feat(cli): run safe slash commands during streaming by @DragonnZhang in https://github.com/QwenLM/qwen-code/pull/8130
* fix(cli): add Option+V for clipboard image paste on macOS by @qwen-code-dev-bot in https://github.com/QwenLM/qwen-code/pull/8120
* feat(core): add a host tool invocation guard by @chiga0 in https://github.com/QwenLM/qwen-code/pull/8032
* feat(core): add GenAI time-to-first-chunk tracing by @doudouOUC in https://github.com/QwenLM/qwen-code/pull/8150
* fix(ui): suppress stale mouse events during dialog transitions by @kagura-agent in https://github.com/QwenLM/qwen-code/pull/8089
* docs: worked example for a PreToolUse HTTP hook backed by an external judgment service by @babyblueviper1 in https://github.com/QwenLM/qwen-code/pull/8202
* test(integration): migrate acp-cron to fake-openai-server (#8076) by @qwen-code-dev-bot in https://github.com/QwenLM/qwen-code/pull/8082
* fix(ci): avoid verify capture color conflict by @ytahdn in https://github.com/QwenLM/qwen-code/pull/8236
* fix(serve): isolate managed memory by selected workspace by @qqqys in https://github.com/QwenLM/qwen-code/pull/8056
* fix(web-shell): keep pasted text visible by @ytahdn in https://github.com/QwenLM/qwen-code/pull/8230
* fix(autofix): guard review thread resolution by @wenshao in https://github.com/QwenLM/qwen-code/pull/8231
* test(e2e): inherit suite timeout in flaky subagent cases (#8244) by @qwen-code-dev-bot in https://github.com/QwenLM/qwen-code/pull/8246
* fix(autofix): Extend suggestion handling to ten rounds by @wenshao in https://github.com/QwenLM/qwen-code/pull/8247
* feat(triage): start the verify lane alongside /triage on a pull request by @wenshao in https://github.com/QwenLM/qwen-code/pull/8249
* feat(daemon): raise default max sessions from 20 to 32 by @wenshao in https://github.com/QwenLM/qwen-code/pull/8235
* fix(core): recover XML-style tool calls from plain text content by @qwen-code-dev-bot in https://github.com/QwenLM/qwen-code/pull/8037
* test(e2e): skip two model-flaky SDK E2E cases (#8256) by @qwen-code-dev-bot in https://github.com/QwenLM/qwen-code/pull/8259
* feat(web-shell): add artifact downloads by @ytahdn in https://github.com/QwenLM/qwen-code/pull/8234
* feat(memory): protect pinned files during forked Dream by @destire-mio in https://github.com/QwenLM/qwen-code/pull/7714
* fix(external-context): harden MCP dependencies by @doudouOUC in https://github.com/QwenLM/qwen-code/pull/8206
* fix(anthropic): dedup duplicate tool_result blocks sharing a tool_use_id by @netbrah in https://github.com/QwenLM/qwen-code/pull/8163
* fix(web-shell): quiet background task polling failures by @han-dreamer in https://github.com/QwenLM/qwen-code/pull/7923
* fix(channel): recover ACP bridge after wake by @yiliang114 in https://github.com/QwenLM/qwen-code/pull/8211
* refactor(core): thread the descriptor instead of forking text-read helpers by @doudouOUC in https://github.com/QwenLM/qwen-code/pull/7967
* fix(cli): filter SGR mouse escape sequences in early input capture by @qwen-code-dev-bot in https://github.com/QwenLM/qwen-code/pull/8268
* feat(core): add project-level fork profiles by @destire-mio in https://github.com/QwenLM/qwen-code/pull/8148
* feat(skills): add disabled skill levels by @zhangxy-zju in https://github.com/QwenLM/qwen-code/pull/8057
* fix(cli): stabilize thinking block height, replace transcript overlay with inline Ctrl+O toggle by @chiga0 in https://github.com/QwenLM/qwen-code/pull/8077
* feat(autofix): unify local and CI flows in one skill by @yiliang114 in https://github.com/QwenLM/qwen-code/pull/8121
* fix(cli): complete image routing across entry points by @yiliang114 in https://github.com/QwenLM/qwen-code/pull/7206
* fix(integration): use QWEN_CODE_TEST_CRON_FAST in acp-cron test (#8237) by @qwen-code-dev-bot in https://github.com/QwenLM/qwen-code/pull/8243
* fix(anthropic): cascade-strip stale thinking siblings when their tool_use is orphaned by @netbrah in https://github.com/QwenLM/qwen-code/pull/8166
* fix(web-shell): compact advanced tables in narrow messages by @ytahdn in https://github.com/QwenLM/qwen-code/pull/8264
* fix(web-shell): stabilize mobile composer after resume by @ytahdn in https://github.com/QwenLM/qwen-code/pull/8263
* fix: make the test suite portable on Windows by @yiliang114 in https://github.com/QwenLM/qwen-code/pull/8050
* fix(triage): render the verify report as sanitized markdown, not an escaped pre dump by @wenshao in https://github.com/QwenLM/qwen-code/pull/8147
* feat(workflows): bubble workflow agent approvals by @qqqys in https://github.com/QwenLM/qwen-code/pull/8240
* refactor(cli): remove ACP private serve dependencies by @yiliang114 in https://github.com/QwenLM/qwen-code/pull/8141
* fix(web-shell): isolate automatic recap by session by @wenshao in https://github.com/QwenLM/qwen-code/pull/8262
* feat(verify): sweep sibling shapes, calibrate replays, measure suggested fixes by @wenshao in https://github.com/QwenLM/qwen-code/pull/8242
* fix(triage): say what the re-run summary measured, in both languages by @wenshao in https://github.com/QwenLM/qwen-code/pull/8273
* fix(ci): harden self-hosted runner workspace ownership recovery by @qwen-code-dev-bot in https://github.com/QwenLM/qwen-code/pull/8115
* feat(skills): add auto-skill curator by @DragonnZhang in https://github.com/QwenLM/qwen-code/pull/7846
## New Contributors
* @babyblueviper1 made their first contribution in https://github.com/QwenLM/qwen-code/pull/8202
**Full Changelog**: https://github.com/QwenLM/qwen-code/compare/v0.21.2...v0.21.2-nightly.20260801.bc382c3ff