<!-- qwen-release-notes:v1 -->
## 亮点
- 为 macOS 上的 WebShell 添加了实验性原生实时语音支持,可通过全局快捷键进行实时音频交互。([#7859](https://github.com/QwenLM/qwen-code/pull/7859))
- Web Shell 现在在活跃的后台子代理任务期间保持对话轮次展开,并允许立即执行只读信息命令。([#8413](https://github.com/QwenLM/qwen-code/pull/8413), [#8496](https://github.com/QwenLM/qwen-code/pull/8496))
- 通过修复 macOS 公证问题并更新 Tauri 签名密钥以生成有效的发布签名,恢复了桌面应用的发布能力。([#8511](https://github.com/QwenLM/qwen-code/pull/8511), [#8518](https://github.com/QwenLM/qwen-code/pull/8518))
- 通过修正冲突的推理参数并尊重显式退出选项,解决了 Qwen 模型的 DashScope API 请求失败问题。([#8488](https://github.com/QwenLM/qwen-code/pull/8488), [#8536](https://github.com/QwenLM/qwen-code/pull/8536))
- 通过优化大型拉取请求的包复用、并行上下文加载和反向审计管道,改进了自动修复和代码审查性能。([#8487](https://github.com/QwenLM/qwen-code/pull/8487), [#8548](https://github.com/QwenLM/qwen-code/pull/8548), [#8498](https://github.com/QwenLM/qwen-code/pull/8498))
- 修复了 GitHub 集成问题,包括大型 PR 的分页 API 处理、Channels 的凭据复用以及准确的版本报告。([#8438](https://github.com/QwenLM/qwen-code/pull/8438), [#8461](https://github.com/QwenLM/qwen-code/pull/8461), [#8431](https://github.com/QwenLM/qwen-code/pull/8431))
## 破坏性变更
暂无已知破坏性变更。
## 完整变更列表
### 新功能
- Chrome 扩展 Alpha 版现在包含守护进程和浏览器自动化引导状态、运行时 MCP 诊断,以及用于真实 Chrome 测试的自动化验收流程。([#6739](https://github.com/QwenLM/qwen-code/pull/6739)) by @yiliang114
- `record_artifact` 工具现在明确引导用户为拉取请求、问题和评论注册 URL 作为链接工件,以便后续访问。([#8453](https://github.com/QwenLM/qwen-code/pull/8453)) by @wenshao
- 将 web-shell 计划审批绑定到特定的 Todo 修订版,以防止过时的快照验证过时的计划。([#8393](https://github.com/QwenLM/qwen-code/pull/8393)) by @yiliang114
- 为托管服务部署添加了可选的外部工具守卫提供程序,以强制执行执行前的允许/拒绝策略。([#8125](https://github.com/QwenLM/qwen-code/pull/8125)) by @chiga0
- 添加了 `qwen review cost-ledger` 命令,用于聚合磁盘上现有审查记录中的模型使用统计信息。([#8471](https://github.com/QwenLM/qwen-code/pull/8471)) by @wenshao
- 为 macOS 上的 WebShell 添加了实验性原生实时语音支持,通过专用全局快捷键实现实时音频交互。([#7859](https://github.com/QwenLM/qwen-code/pull/7859)) by @LaZzyMan
- GitHub Channels 现在可以在未显式配置个人访问令牌时,复用守护进程主机上现有的 `gh auth login` 凭据。([#8461](https://github.com/QwenLM/qwen-code/pull/8461)) by @wenshao
- 如 `/stats`、`/about` 和 `/context` 等只读信息命令现在在 Web Shell 中立即执行,而无需等待流式传输完成。([#8496](https://github.com/QwenLM/qwen-code/pull/8496)) by @wenshao
- 审查测试现在覆盖代码更改的完整反向依赖闭包,以捕获依赖工作区中的行为回归。([#8490](https://github.com/QwenLM/qwen-code/pull/8490)) by @wenshao
### 错误修复
- Web Shell 现在会在任何后台子代理仍处于活动状态时保持对话轮次展开,防止在并行任务期间过早折叠。 ([#8413](https://github.com/QwenLM/qwen-code/pull/8413)) by @carffuca
- 桌面应用更新程序现在使用新轮换的 Tauri 签名密钥,以恢复发布签名版本的能力。 ([#8511](https://github.com/QwenLM/qwen-code/pull/8511)) by @yiliang114
- 添加了一条 CSS 规则,以恢复 Firefox 中消息内容文本选择的高亮显示(此前缺失)。 ([#8417](https://github.com/QwenLM/qwen-code/pull/8417)) by @C0d3N1nja97342
- 修复了针对 Qwen 3.8 模型的 DashScope API 请求,防止因推理参数冲突导致请求被拒绝。 ([#8488](https://github.com/QwenLM/qwen-code/pull/8488)) by @wenshao
- 通过在达到硬终止限制前停止反向审计循环,防止审查任务因超时而未报告结果。 ([#8468](https://github.com/QwenLM/qwen-code/pull/8468)) by @wenshao
- 修复了自动修复工作流,使其能正确处理包含 100 条以上评论或事件的 PR 的 GitHub API 分页响应。 ([#8438](https://github.com/QwenLM/qwen-code/pull/8438)) by @wenshao
- 通过正确尊重显式退出选项并保留旧版预算设置,解决了 DashScope 思考参数冲突问题。 ([#8536](https://github.com/QwenLM/qwen-code/pull/8536)) by @wenshao
- 稳定了审查测试有效性测试,防止因临时目录中残留的 vitest 二进制文件导致测试失败。 ([#8537](https://github.com/QwenLM/qwen-code/pull/8537)) by @wenshao
- 通过在 Tauri 构建前对捆绑的 ripgrep 和 Node.js 二进制文件进行代码签名,修复了 macOS 公证失败问题。 ([#8518](https://github.com/QwenLM/qwen-code/pull/8518)) by @yiliang114
- 为带有媒体内容的历史记录启用聊天压缩的提示词缓存复用,在保持安全回退机制的同时提升效率。 ([#8419](https://github.com/QwenLM/qwen-code/pull/8419)) by @DragonnZhang
- 确保 qwen review submit 在行内评论和摘要审查正文中一致地报告启动时的 CLI 版本。 ([#8431](https://github.com/QwenLM/qwen-code/pull/8431)) by @yiliang114
- 修复了行尾检测逻辑,改为分析整个文件而非单个切片,防止静默的 CRLF 转 LF 转换错误。 ([#8383](https://github.com/QwenLM/qwen-code/pull/8383)) by @doudouOUC
- 通过验证文件内容的魔数(magic bytes)而非仅依赖文件扩展名,增强了证据图片上传的安全性。 ([#8459](https://github.com/QwenLM/qwen-code/pull/8459)) by @wenshao
- 通过自动清理取消或超时的审查任务遗留的陈旧 Git worktrees 和分支,防止在复用运行器时 CI 失败。 ([#8474](https://github.com/QwenLM/qwen-code/pull/8474)) by @yiliang114
- 修复了 WebUI 会话恢复功能,使其能在实时日志截断事件后正确重建完整的对话轮次。 ([#8414](https://github.com/QwenLM/qwen-code/pull/8414)) by @doudouOUC
- 当锁文件受损时,改为记录警告而非抛出错误,防止因缺失锁文件导致守护进程崩溃。 ([#8442](https://github.com/QwenLM/qwen-code/pull/8442)) by @wenshao
- 修复了 Qwen Live Host 发布工作流,使其能正确复用现有的 Apple 签名密钥并生成临时钥匙串密码。 ([#8574](https://github.com/QwenLM/qwen-code/pull/8574)) by @LaZzyMan
- CLI 中的文本工具结果负载现在限制为 65,536 字节,以防止在 ACP 传输中出现过大的输出。 ([#8450](https://github.com/QwenLM/qwen-code/pull/8450)) by @doudouOUC
### Performance
- 通过在单次响应中并行发出独立的上下文和规则加载调用(而非串行执行),减少了审查设置时间。 ([#8487](https://github.com/QwenLM/qwen-code/pull/8487)) by @wenshao
- 优化了提示词缓存保留策略,将旧工具结果清理至低水位线,而非仅在阈值下方停止。 ([#8464](https://github.com/QwenLM/qwen-code/pull/8464)) by @doudouOUC
- 通过每次扫描仅构建一次 CLI 包并在所有并行审查阶段复用,加快了自动修复审查速度。 ([#8548](https://github.com/QwenLM/qwen-code/pull/8548)) by @wenshao
- 通过废弃空数据块并优化大型 Pull Request 的流水线验证循环,提升了反向审计性能。 ([#8498](https://github.com/QwenLM/qwen-code/pull/8498)) by @wenshao
### Documentation
- 文档现已涵盖无头 CLI 运行的 Goal v3 生命周期,包括状态持久化、自主延续限制以及流式事件处理。 ([#8503](https://github.com/QwenLM/qwen-code/pull/8503)) by @DragonnZhang
### Internal Changes
- 当维护者终止开关允许时,受信任的 fork PR 和无检出作业现在将路由至 ECS 运行器池,以确保一致的 Linux CI 执行。 ([#8502](https://github.com/QwenLM/qwen-code/pull/8502)) by @wenshao
- 将详细的事件叙述从 SKILL.md 移至 DESIGN.md,在通过引用保留规则依据的同时减少运行时上下文大小。 ([#8499](https://github.com/QwenLM/qwen-code/pull/8499)) by @wenshao
- 更新了 CI 测试,使其超时预期与审查工作流的外部化仓库变量保持一致。 ([#8485](https://github.com/QwenLM/qwen-code/pull/8485)) by @wenshao
- 将内置的 CUA Driver 更新至上游 0.17.0 版本,新增对类型化浏览器自动化和本地菜单操作的支持。 ([#8564](https://github.com/QwenLM/qwen-code/pull/8564)) by @LaZzyMan
- Windows 合并队列测试现在默认在已验证的 ecs-win 自托管运行器上运行,以减少对托管池的依赖。 ([#8386](https://github.com/QwenLM/qwen-code/pull/8386)) by @yiliang114
- GitHub 触发的审查工作流现在可选择安装 tmux 和 freeze 工具,以支持更高保真度的证据图片捕获。 ([#8454](https://github.com/QwenLM/qwen-code/pull/8454)) by @wenshao
**完整更新日志**: https://github.com/QwenLM/qwen-code/compare/v0.21.5...v0.21.6
<!-- qwen-release-notes:v1 -->
## Highlights
- Added experimental native Live Voice support to WebShell on macOS for real-time audio interactions via a global shortcut. ([#7859](https://github.com/QwenLM/qwen-code/pull/7859))
- Web Shell now keeps conversation turns expanded during active background subagent tasks and allows immediate execution of read-only info commands. ([#8413](https://github.com/QwenLM/qwen-code/pull/8413), [#8496](https://github.com/QwenLM/qwen-code/pull/8496))
- Restored desktop app release capabilities by fixing macOS notarization and updating the Tauri signing key for valid release signatures. ([#8511](https://github.com/QwenLM/qwen-code/pull/8511), [#8518](https://github.com/QwenLM/qwen-code/pull/8518))
- Resolved DashScope API request failures for Qwen models by correcting conflicting reasoning parameters and honoring explicit opt-outs. ([#8488](https://github.com/QwenLM/qwen-code/pull/8488), [#8536](https://github.com/QwenLM/qwen-code/pull/8536))
- Improved autofix and review performance by optimizing bundle reuse, parallel context loading, and reverse audit pipelines for large pull requests. ([#8487](https://github.com/QwenLM/qwen-code/pull/8487), [#8548](https://github.com/QwenLM/qwen-code/pull/8548), [#8498](https://github.com/QwenLM/qwen-code/pull/8498))
- Fixed GitHub integration issues including paginated API handling for large PRs, credential reuse for Channels, and accurate version reporting. ([#8438](https://github.com/QwenLM/qwen-code/pull/8438), [#8461](https://github.com/QwenLM/qwen-code/pull/8461), [#8431](https://github.com/QwenLM/qwen-code/pull/8431))
## Breaking Changes
No known breaking changes.
## Complete Change List
### Features
- The Chrome extension alpha now includes daemon and browser-automation onboarding states, runtime MCP diagnostics, and an automated acceptance flow for real-Chrome testing. ([#6739](https://github.com/QwenLM/qwen-code/pull/6739)) by @yiliang114
- The record_artifact tool now explicitly guides users to register URLs for pull requests, issues, and comments as link artifacts for later access. ([#8453](https://github.com/QwenLM/qwen-code/pull/8453)) by @wenshao
- Bound web-shell plan approvals to specific Todo revisions to prevent stale snapshots from validating outdated plans. ([#8393](https://github.com/QwenLM/qwen-code/pull/8393)) by @yiliang114
- Added an optional external tool guard provider for managed serve deployments to enforce pre-execution allow/deny policies. ([#8125](https://github.com/QwenLM/qwen-code/pull/8125)) by @chiga0
- Added the qwen review cost-ledger command to aggregate model usage statistics from existing review records on disk. ([#8471](https://github.com/QwenLM/qwen-code/pull/8471)) by @wenshao
- Adds experimental native Live Voice support to WebShell on macOS, enabling real-time audio interactions via a dedicated global shortcut. ([#7859](https://github.com/QwenLM/qwen-code/pull/7859)) by @LaZzyMan
- GitHub Channels can now reuse the daemon host's existing gh auth login credentials when no personal access token is explicitly configured. ([#8461](https://github.com/QwenLM/qwen-code/pull/8461)) by @wenshao
- Read-only info commands like /stats, /about, and /context now execute immediately mid-turn in Web Shell instead of waiting for streaming to finish. ([#8496](https://github.com/QwenLM/qwen-code/pull/8496)) by @wenshao
- Review tests now cover the full reverse-dependency closure of code changes to catch behavioral regressions in dependent workspaces. ([#8490](https://github.com/QwenLM/qwen-code/pull/8490)) by @wenshao
### Bug Fixes
- Web Shell now keeps conversation turns expanded while any background subagent remains active, preventing premature collapse during parallel tasks. ([#8413](https://github.com/QwenLM/qwen-code/pull/8413)) by @carffuca
- The desktop app updater now uses a newly rotated Tauri signing key to restore the ability to publish signed releases. ([#8511](https://github.com/QwenLM/qwen-code/pull/8511)) by @yiliang114
- Added a CSS rule to restore visible text selection highlights for message content in Firefox that were previously missing. ([#8417](https://github.com/QwenLM/qwen-code/pull/8417)) by @C0d3N1nja97342
- Fixed DashScope API requests for Qwen 3.8 models to prevent conflicting reasoning parameters that caused request rejections. ([#8488](https://github.com/QwenLM/qwen-code/pull/8488)) by @wenshao
- Prevented review jobs from timing out without reporting results by stopping the reverse-audit loop before the hard kill limit. ([#8468](https://github.com/QwenLM/qwen-code/pull/8468)) by @wenshao
- Fixed autofix workflows to correctly handle paginated GitHub API responses for PRs with over 100 comments or events. ([#8438](https://github.com/QwenLM/qwen-code/pull/8438)) by @wenshao
- Resolved DashScope thinking parameter conflicts by correctly honoring explicit opt-outs and preserving legacy budget settings. ([#8536](https://github.com/QwenLM/qwen-code/pull/8536)) by @wenshao
- Stabilized review test-efficacy tests to prevent failures caused by ambient vitest binaries in temporary directories. ([#8537](https://github.com/QwenLM/qwen-code/pull/8537)) by @wenshao
- Fixed macOS notarization failures by codesigning bundled ripgrep and Node.js binaries before the Tauri build. ([#8518](https://github.com/QwenLM/qwen-code/pull/8518)) by @yiliang114
- Enabled prompt cache reuse for chat compression with media-bearing histories to improve efficiency while maintaining safety fallbacks. ([#8419](https://github.com/QwenLM/qwen-code/pull/8419)) by @DragonnZhang
- Ensured qwen review submit consistently reports the startup CLI version in both inline comments and summary review bodies. ([#8431](https://github.com/QwenLM/qwen-code/pull/8431)) by @yiliang114
- Fixed line ending detection to analyze the entire file instead of a single slice, preventing silent CRLF-to-LF conversion errors. ([#8383](https://github.com/QwenLM/qwen-code/pull/8383)) by @doudouOUC
- Secured evidence image uploads by validating file content via magic bytes instead of relying solely on file extensions. ([#8459](https://github.com/QwenLM/qwen-code/pull/8459)) by @wenshao
- Prevents CI failures on reused runners by automatically cleaning up stale Git worktrees and branches left behind after cancelled or timed-out reviews. ([#8474](https://github.com/QwenLM/qwen-code/pull/8474)) by @yiliang114
- Fixes WebUI session recovery to correctly reconstruct complete conversation turns after live journal truncation events. ([#8414](https://github.com/QwenLM/qwen-code/pull/8414)) by @doudouOUC
- Prevents daemon crashes caused by missing lock files by logging warnings instead of throwing errors when lock compromises occur. ([#8442](https://github.com/QwenLM/qwen-code/pull/8442)) by @wenshao
- Fixes the Qwen Live Host release workflow to correctly reuse existing Apple signing secrets and generate ephemeral keychain passwords. ([#8574](https://github.com/QwenLM/qwen-code/pull/8574)) by @LaZzyMan
- Textual tool-result payloads in the CLI are now bounded to 65,536 bytes to prevent excessive output sizes in ACP transport. ([#8450](https://github.com/QwenLM/qwen-code/pull/8450)) by @doudouOUC
### Performance
- Reduced review setup time by issuing independent context and rule loading calls in a single response instead of serially. ([#8487](https://github.com/QwenLM/qwen-code/pull/8487)) by @wenshao
- Optimized prompt cache retention by clearing old tool results to a low watermark instead of stopping just below the threshold. ([#8464](https://github.com/QwenLM/qwen-code/pull/8464)) by @doudouOUC
- Speeds up autofix reviews by building the CLI bundle once per scan and reusing it across all parallel review legs. ([#8548](https://github.com/QwenLM/qwen-code/pull/8548)) by @wenshao
- Improves reverse audit performance by retiring dry chunks and optimizing the pipeline verification loop for large pull requests. ([#8498](https://github.com/QwenLM/qwen-code/pull/8498)) by @wenshao
### Documentation
- Documentation now covers the Goal v3 lifecycle for headless CLI runs, including state persistence, autonomous continuation limits, and streaming event handling. ([#8503](https://github.com/QwenLM/qwen-code/pull/8503)) by @DragonnZhang
### Internal Changes
- Trusted fork PRs and no-checkout jobs now route to the ECS runner pool when the maintainer kill-switch allows, ensuring consistent Linux CI execution. ([#8502](https://github.com/QwenLM/qwen-code/pull/8502)) by @wenshao
- Moved detailed incident narratives from SKILL.md to DESIGN.md to reduce runtime context size while preserving rule justifications via references. ([#8499](https://github.com/QwenLM/qwen-code/pull/8499)) by @wenshao
- Updated CI tests to align timeout expectations with externalized repository variables for review workflows. ([#8485](https://github.com/QwenLM/qwen-code/pull/8485)) by @wenshao
- Updates the vendored CUA Driver to upstream version 0.17.0, adding support for typed browser automation and native menu operations. ([#8564](https://github.com/QwenLM/qwen-code/pull/8564)) by @LaZzyMan
- Windows merge queue tests now run on the validated ecs-win self-hosted runner by default to reduce reliance on hosted pools. ([#8386](https://github.com/QwenLM/qwen-code/pull/8386)) by @yiliang114
- The GitHub-triggered review workflow now optionally installs tmux and freeze tools to enable higher-fidelity evidence image capture. ([#8454](https://github.com/QwenLM/qwen-code/pull/8454)) by @wenshao
**Full Changelog**: https://github.com/QwenLM/qwen-code/compare/v0.21.5...v0.21.6