<!-- qwen-release-notes:v1 -->
## 亮点
_详见下方的完整变更列表。_
## 不兼容变更
暂无已知的不兼容变更。
## 完整变更列表
### 新功能
- feat(web-shell): 恢复远程工作区添加流程 ([#12085](https://github.com/QwenLM/qwen-code/pull/12085)) by @yiliang114
- feat(web-shell): 暴露助手回合结算生命周期 ([#11251](https://github.com/QwenLM/qwen-code/pull/11251)) by @yiliang114
- 新增基于 bwrap 的内部 Linux 沙箱执行基础架构,支持结构化进程启动、监控及受限工作器支持。 ([#12067](https://github.com/QwenLM/qwen-code/pull/12067)) by @doudouOUC
- feat(web-shell): 从设置卡片中选择 Live Voice 模型和语音 ([#12199](https://github.com/QwenLM/qwen-code/pull/12199)) by @qqqys
- feat(web-shell): 将斜杠命令导出作为制品暴露 ([#12050](https://github.com/QwenLM/qwen-code/pull/12050)) by @ytahdn
- feat(browser-use): 支持共享 Chrome 配置文件的并发会话 ([#12229](https://github.com/QwenLM/qwen-code/pull/12229)) by @tanzhenxin
- feat(web-shell): 简化移动端 Composer 操作 ([#12252](https://github.com/QwenLM/qwen-code/pull/12252)) by @wenshao
- feat(cli,docs): 将每个上下文文件归因于其扩展名,并说明单个文件的成本 ([#12318](https://github.com/QwenLM/qwen-code/pull/12318)) by @yiliang114
- feat(core): 判断每条入站跨会话消息的目标会话 ([#12292](https://github.com/QwenLM/qwen-code/pull/12292)) by @qqqys
- feat(web-shell): 在新页面中打开链接制品 ([#12317](https://github.com/QwenLM/qwen-code/pull/12317)) by @ytahdn
- feat(web-shell): 在浏览器 Live Voice 通话期间显示麦克风音量级别 ([#12294](https://github.com/QwenLM/qwen-code/pull/12294)) by @qqqys
- feat(acp-bridge): 在分页转录回放中显示请求和工具的执行时间 ([#12304](https://github.com/QwenLM/qwen-code/pull/12304)) by @qqqys
- feat(serve): 从持久化历史中重试和重新运行工作流 ([#12291](https://github.com/QwenLM/qwen-code/pull/12291)) by @qqqys
- feat(web-shell): 将工作区和 Git 标签移出 Composer 工具栏 ([#12299](https://github.com/QwenLM/qwen-code/pull/12299)) by @ytahdn
- feat(core,docs): 添加条件扩展规则并限制上下文警告 ([#12034](https://github.com/QwenLM/qwen-code/pull/12034)) by @yiliang114
- feat(web-shell): 将分页转录事件投影到轨迹中 ([#12337](https://github.com/QwenLM/qwen-code/pull/12337)) by @qqqys
- feat(core): 为延迟工具保留提示词缓存 ([#10410](https://github.com/QwenLM/qwen-code/pull/10410)) by @DragonnZhang
- feat(core): 允许后台回合携带来自其他会话的消息 ([#12342](https://github.com/QwenLM/qwen-code/pull/12342)) by @qqqys
### 错误修复
- fix(ci): 回收 Docker 缓存并清理审查临时目录 ([#12135](https://github.com/QwenLM/qwen-code/pull/12135)) by @yiliang114
- fix(core): 处理权限规则中的简单 Bash 注释 ([#12096](https://github.com/QwenLM/qwen-code/pull/12096)) by @yiliang114
- fix(ci): 向失败监控的作业日志下载传递 --allow-escape-sequences 参数 ([#12117](https://github.com/QwenLM/qwen-code/pull/12117)) by @qwen-code-dev-bot
- fix(cli): 对未决工作区要求显式信任 ([#12198](https://github.com/QwenLM/qwen-code/pull/12198)) by @yiliang114
- fix(web-shell): 使发布后的包对消费者可解析 ([#12188](https://github.com/QwenLM/qwen-code/pull/12188)) by @yiliang114
- 更新 Web Shell Composer 中的活动 Plan 标签,使用中性背景和匹配主题的文字/图标,以更好地保持亮色/暗色主题的一致性。 ([#12241](https://github.com/QwenLM/qwen-code/pull/12241)) by @wenshao
- 为 Web Shell Composer 中的 Git 模式标签提供中性背景和边框,同时保留彩色 Git 图标以区分分支和工作树模式。 ([#12251](https://github.com/QwenLM/qwen-code/pull/12251)) by @wenshao
- 重构 /context 细分,使类别行划分请求内容并汇总至提供商报告的总数,从而提高令牌使用准确性。 ([#12119](https://github.com/QwenLM/qwen-code/pull/12119)) by @yiliang114
- fix(ci): 重试一次瞬态 E2E 构建制品下载失败 (#12125) ([#12128](https://github.com/QwenLM/qwen-code/pull/12128)) by @qwen-code-dev-bot
- fix(web-shell): 在 Plan 标签消失时移交键盘焦点 ([#12248](https://github.com/QwenLM/qwen-code/pull/12248)) by @wenshao
- fix(web-shell): 将内联消息编辑器限制在窄面板内 ([#12175](https://github.com/QwenLM/qwen-code/pull/12175)) by @Lilian0122
- fix(export): 提高转录增长时的文档运行时预算 ([#12298](https://github.com/QwenLM/qwen-code/pull/12298)) by @yiliang114
- fix(web-shell): 将 Live Voice 字符串排除在导出的转录渲染器之外 ([#12305](https://github.com/QwenLM/qwen-code/pull/12305)) by @qqqys
- fix(web-shell): 将 Live Voice 条目保留在实时边界内 ([#12319](https://github.com/QwenLM/qwen-code/pull/12319)) by @yiliang114
- fix(core): 隐藏不可用的图像缩放指引 ([#12271](https://github.com/QwenLM/qwen-code/pull/12271)) by @yiliang114
- fix(core): 限制队友指引和预算大型工具界面 ([#12142](https://github.com/QwenLM/qwen-code/pull/12142)) by @yiliang114
- fix(web-shell): 避免不必要的表格水平滚动 ([#12312](https://github.com/QwenLM/qwen-code/pull/12312)) by @ytahdn
- fix(web-shell): 根据 npm pack 列表检查发布制品 ([#12343](https://github.com/QwenLM/qwen-code/pull/12343)) by @yiliang114
- fix(workflows): 原子化写入运行快照 ([#12341](https://github.com/QwenLM/qwen-code/pull/12341)) by @qqqys
### 文档
- docs(session-recovery): 同步 shape-B 声明与已合并的溯源通道 ([#12203](https://github.com/QwenLM/qwen-code/pull/12203)) by @yiliang114
- 记录远程 webview 守护进程 URL 拒绝带方括号 IPv6 字面量的原因,指出 Chromium CSP 限制以及与现有守护进程 URL 处理方式的对齐。 ([#12140](https://github.com/QwenLM/qwen-code/pull/12140)) by @yiliang114
- docs(serve): 记录 ACP 子堆校准机制 ([#12265](https://github.com/QwenLM/qwen-code/pull/12265)) by @doudouOUC
### 内部变更
- 将 review-scratch 套件加入 CI yaml 导入防回退保护中,并修正套件数量注释,以保持快速通道导入检查的准确性。 ([#12259](https://github.com/QwenLM/qwen-code/pull/12259)) by @yiliang114
- 通过调整类 scp 的远程移除测试夹具,修复 Windows 测试失败问题,使其不再被解析为驱动器相对本地路径。 ([#12263](https://github.com/QwenLM/qwen-code/pull/12263)) by @yiliang114
- 通过共享 remote-add 和 connection-add 导航、保持守护进程链接限于标签页范围以及减少重复标签,简化 Web Shell 中的远程工作区流程。 ([#12264](https://github.com/QwenLM/qwen-code/pull/12264)) by @yiliang114
- test(core): 在 win32 上跳过 bwrap 执行套件 (#12281) ([#12282](https://github.com/QwenLM/qwen-code/pull/12282)) by @qwen-code-dev-bot
- ci(shepherd): 关闭合并后不会产生任何更改的机器人 PR ([#12150](https://github.com/QwenLM/qwen-code/pull/12150)) by @wenshao
- ci(pnpm): 全面使用 pnpm 进行安装,并弃用 package-lock.json ([#11859](https://github.com/QwenLM/qwen-code/pull/11859)) by @yiliang114
- test(web-shell): 对构建后的 transcript bundle 而非源代码树进行 Live strings 检查 ([#12316](https://github.com/QwenLM/qwen-code/pull/12316)) by @qqqys
- refactor(browser-use): 接受一组 Chrome 扩展 ID ([#12300](https://github.com/QwenLM/qwen-code/pull/12300)) by @tanzhenxin
- test(core): 报告 tool-surface 配置实际隐藏的内容 ([#12346](https://github.com/QwenLM/qwen-code/pull/12346)) by @yiliang114
**完整更新日志**: https://github.com/QwenLM/qwen-code/compare/v0.24.1...v0.24.2
<!-- qwen-release-notes:v1 -->
## Highlights
_See the complete change list below._
## Breaking Changes
No known breaking changes.
## Complete Change List
### Features
- feat(web-shell): restore remote workspace add flow ([#12085](https://github.com/QwenLM/qwen-code/pull/12085)) by @yiliang114
- feat(web-shell): expose assistant turn settlement lifecycle ([#11251](https://github.com/QwenLM/qwen-code/pull/11251)) by @yiliang114
- Adds an internal bwrap-based Linux sandbox execution foundation with structured process launching, supervision, and confined worker support. ([#12067](https://github.com/QwenLM/qwen-code/pull/12067)) by @doudouOUC
- feat(web-shell): choose the Live Voice model and voice from the setup card ([#12199](https://github.com/QwenLM/qwen-code/pull/12199)) by @qqqys
- feat(web-shell): expose slash-command exports as artifacts ([#12050](https://github.com/QwenLM/qwen-code/pull/12050)) by @ytahdn
- feat(browser-use): support concurrent sessions sharing a Chrome profile ([#12229](https://github.com/QwenLM/qwen-code/pull/12229)) by @tanzhenxin
- feat(web-shell): simplify mobile composer actions ([#12252](https://github.com/QwenLM/qwen-code/pull/12252)) by @wenshao
- feat(cli,docs): attribute each context file to its extension, and say what one costs ([#12318](https://github.com/QwenLM/qwen-code/pull/12318)) by @yiliang114
- feat(core): judge each inbound cross-session message for the session it is addressed to ([#12292](https://github.com/QwenLM/qwen-code/pull/12292)) by @qqqys
- feat(web-shell): open link artifacts in a new page ([#12317](https://github.com/QwenLM/qwen-code/pull/12317)) by @ytahdn
- feat(web-shell): show the microphone level during a browser Live Voice call ([#12294](https://github.com/QwenLM/qwen-code/pull/12294)) by @qqqys
- feat(acp-bridge): surface request and tool timing on paged transcript replay ([#12304](https://github.com/QwenLM/qwen-code/pull/12304)) by @qqqys
- feat(serve): retry and rerun workflow runs from persisted history ([#12291](https://github.com/QwenLM/qwen-code/pull/12291)) by @qqqys
- feat(web-shell): move the workspace and git chips out of the composer toolbar ([#12299](https://github.com/QwenLM/qwen-code/pull/12299)) by @ytahdn
- feat(core,docs): add conditional extension rules and cap context warnings ([#12034](https://github.com/QwenLM/qwen-code/pull/12034)) by @yiliang114
- feat(web-shell): project paged transcript events into a trajectory ([#12337](https://github.com/QwenLM/qwen-code/pull/12337)) by @qqqys
- feat(core): preserve prompt cache for deferred tools ([#10410](https://github.com/QwenLM/qwen-code/pull/10410)) by @DragonnZhang
- feat(core): let a background turn carry a message from another session ([#12342](https://github.com/QwenLM/qwen-code/pull/12342)) by @qqqys
### Bug Fixes
- fix(ci): reclaim Docker cache and clean review scratch directories ([#12135](https://github.com/QwenLM/qwen-code/pull/12135)) by @yiliang114
- fix(core): handle simple Bash comments in permission rules ([#12096](https://github.com/QwenLM/qwen-code/pull/12096)) by @yiliang114
- fix(ci): pass --allow-escape-sequences to the failure watcher's job-log download ([#12117](https://github.com/QwenLM/qwen-code/pull/12117)) by @qwen-code-dev-bot
- fix(cli): require explicit trust for undecided workspaces ([#12198](https://github.com/QwenLM/qwen-code/pull/12198)) by @yiliang114
- fix(web-shell): make the published package resolvable for consumers ([#12188](https://github.com/QwenLM/qwen-code/pull/12188)) by @yiliang114
- Updates the active Plan chip in the Web Shell composer to use neutral background and theme-matched text/icons for better light/dark theme consistency. ([#12241](https://github.com/QwenLM/qwen-code/pull/12241)) by @wenshao
- Gives the Git mode chip in the Web Shell composer a neutral background and border while keeping colored Git icons to distinguish branch and worktree modes. ([#12251](https://github.com/QwenLM/qwen-code/pull/12251)) by @wenshao
- Reworks the /context breakdown so category rows partition request content and sum to the provider-reported total, improving token usage accuracy. ([#12119](https://github.com/QwenLM/qwen-code/pull/12119)) by @yiliang114
- fix(ci): retry transient E2E build artifact download failures once (#12125) ([#12128](https://github.com/QwenLM/qwen-code/pull/12128)) by @qwen-code-dev-bot
- fix(web-shell): hand keyboard focus on when the Plan chip goes ([#12248](https://github.com/QwenLM/qwen-code/pull/12248)) by @wenshao
- fix(web-shell): contain the inline message editor in narrow panes ([#12175](https://github.com/QwenLM/qwen-code/pull/12175)) by @Lilian0122
- fix(export): raise the document runtime budget for transcript growth ([#12298](https://github.com/QwenLM/qwen-code/pull/12298)) by @yiliang114
- fix(web-shell): keep Live Voice strings out of the exported transcript renderer ([#12305](https://github.com/QwenLM/qwen-code/pull/12305)) by @qqqys
- fix(web-shell): keep Live Voice entry in live boundary ([#12319](https://github.com/QwenLM/qwen-code/pull/12319)) by @yiliang114
- fix(core): hide unavailable image zoom guidance ([#12271](https://github.com/QwenLM/qwen-code/pull/12271)) by @yiliang114
- fix(core): gate teammate guidance and budget large tool surfaces ([#12142](https://github.com/QwenLM/qwen-code/pull/12142)) by @yiliang114
- fix(web-shell): avoid unnecessary table horizontal scrolling ([#12312](https://github.com/QwenLM/qwen-code/pull/12312)) by @ytahdn
- fix(web-shell): check publish artifacts against the npm pack list ([#12343](https://github.com/QwenLM/qwen-code/pull/12343)) by @yiliang114
- fix(workflows): write run snapshots atomically ([#12341](https://github.com/QwenLM/qwen-code/pull/12341)) by @qqqys
### Documentation
- docs(session-recovery): sync shape-B claims with the landed provenance channel ([#12203](https://github.com/QwenLM/qwen-code/pull/12203)) by @yiliang114
- Documents why the remote webview daemon URL rejects bracketed IPv6 literals, noting Chromium CSP limitations and alignment with existing daemon URL handling. ([#12140](https://github.com/QwenLM/qwen-code/pull/12140)) by @yiliang114
- docs(serve): Document ACP child heap calibration ([#12265](https://github.com/QwenLM/qwen-code/pull/12265)) by @doudouOUC
### Internal Changes
- Adds the review-scratch suite to the CI yaml import ratchet guard and corrects the suite count comment to keep fast-lane import checks accurate. ([#12259](https://github.com/QwenLM/qwen-code/pull/12259)) by @yiliang114
- Fixes a Windows test failure by adjusting an scp-like remote removal fixture so it is not interpreted as a drive-relative local path. ([#12263](https://github.com/QwenLM/qwen-code/pull/12263)) by @yiliang114
- Simplifies remote workspace flow in Web Shell by sharing remote-add and connection-add navigation, keeping daemon links tab-scoped, and reducing duplicate labels. ([#12264](https://github.com/QwenLM/qwen-code/pull/12264)) by @yiliang114
- test(core): skip the bwrap execution suite on win32 (#12281) ([#12282](https://github.com/QwenLM/qwen-code/pull/12282)) by @qwen-code-dev-bot
- ci(shepherd): close bot PRs whose merge would change nothing ([#12150](https://github.com/QwenLM/qwen-code/pull/12150)) by @wenshao
- ci(pnpm): install with pnpm everywhere and retire package-lock.json ([#11859](https://github.com/QwenLM/qwen-code/pull/11859)) by @yiliang114
- test(web-shell): guard Live strings on the built transcript bundle, not the source tree ([#12316](https://github.com/QwenLM/qwen-code/pull/12316)) by @qqqys
- refactor(browser-use): accept a set of Chrome extension ids ([#12300](https://github.com/QwenLM/qwen-code/pull/12300)) by @tanzhenxin
- test(core): report what a tool-surface configuration actually withholds ([#12346](https://github.com/QwenLM/qwen-code/pull/12346)) by @yiliang114
**Full Changelog**: https://github.com/QwenLM/qwen-code/compare/v0.24.1...v0.24.2