<!-- qwen-release-notes:v1 -->
## 亮点
_详见下方的完整变更列表。_
## 破坏性变更
- refactor(node-repl)!: 将持久化 Node REPL 作为独立的 MCP 服务器交付 ([#9499](https://github.com/QwenLM/qwen-code/pull/9499)) by @LaZzyMan
## 完整变更列表
### 功能
- 在审查简报中添加了 temporal-reachability 和 incident-replay 透镜,以分析关键指标是否在正确的时间点存在,从而引导决策。 ([#9708](https://github.com/QwenLM/qwen-code/pull/9708)) by @wenshao
- 审查发现现在包含修复的具体测试验收标准,并明确判定不收敛的情况,以减少“审查-修复”循环。 ([#9596](https://github.com/QwenLM/qwen-code/pull/9596)) by @wenshao
- 守护进程会话现在在重启和分离后会恢复到上次选择的模型,而新会话继续使用当前设置中的默认值。 ([#9687](https://github.com/QwenLM/qwen-code/pull/9687)) by @doudouOUC
- 在 Aone 目标上发布 /review --comment 前验证内联锚点,将 Critical 发现移至摘要正文,若锚点无效则丢弃 Suggestions。 ([#9634](https://github.com/QwenLM/qwen-code/pull/9634)) by @wenshao
- 向 GoalRecord 添加了 tokensUsed 字段,用于在 lastGoal 摘要中报告 Goal 消耗的总 token 数及其轮次。 ([#9583](https://github.com/QwenLM/qwen-code/pull/9583)) by @qqqys
- 通过 tools.workflowsEnabled 用户设置启用动态工作流,替代了之前未记录的环境变量方法。 ([#9098](https://github.com/QwenLM/qwen-code/pull/9098)) by @qqqys
- 在 /review 命令中为 Aone Code 目标启用 PR 上下文获取,恢复完整的审查能力,包括原生审批和 Issue 保真。 ([#9621](https://github.com/QwenLM/qwen-code/pull/9621)) by @wenshao
- Web Shell 现在在切换后能正确刷新 composer 技能,防止已禁用的技能重新出现,并显示刷新失败而非过时建议。 ([#9131](https://github.com/QwenLM/qwen-code/pull/9131)) by @samuelhsin
- 审查技能现在支持 Aone Code 目标的 comment-status 和 presubmit 流程,生成与 GitHub 相同的 JSON 报告架构,用于 merge-gate 和 CI 状态检查。 ([#9627](https://github.com/QwenLM/qwen-code/pull/9627)) by @wenshao
- feat(models): 支持双角色图像生成模型 ([#9650](https://github.com/QwenLM/qwen-code/pull/9650)) by @callmeYe
- 审查编排现在在关键发现跨轮次持续存在时显示“带残留风险合并”的警告,提示需手动接受风险才能退出循环。 ([#9526](https://github.com/QwenLM/qwen-code/pull/9526)) by @wenshao
- Node.js 的 Computer Use SDK 已更新至 v0.20.0,在 macOS、Windows 和 Linux 平台上提供版本化的无障碍观察和稳定的元素 token。 ([#9587](https://github.com/QwenLM/qwen-code/pull/9587)) by @LaZzyMan
- 新增对 MCP 2026 核心协议的支持,并引入 MCP Apps 主机,用于在守护进程支持的 WebShell 会话中渲染内联应用程序。 ([#8992](https://github.com/QwenLM/qwen-code/pull/8992)) by @samuelhsin
- 向 /review 技能验证器添加了 do-not-refute 列表和可构造的拒绝栏,以防止对推测性发现的不当拒绝。 ([#9799](https://github.com/QwenLM/qwen-code/pull/9799)) by @wenshao
- feat(core): 仅在 qwen serve 下声明 create_sub_session ([#9425](https://github.com/QwenLM/qwen-code/pull/9425)) by @DragonnZhang
- 新增支持通过提供可选的 sessionId 创建重用现有活跃会话的定时任务。 ([#9361](https://github.com/QwenLM/qwen-code/pull/9361)) by @yiliang114
- 紧凑模式现在将相邻的思考、工具活动和并行代理折叠为 Web Shell 中的单个可展开摘要行。 ([#9657](https://github.com/QwenLM/qwen-code/pull/9657)) by @ytahdn
- 新增 Kimi (Moonshot AI) 作为内置第三方提供商,支持国际和中国端点,并提供可编辑的模型目录。 ([#9814](https://github.com/QwenLM/qwen-code/pull/9814)) by @TianYuan1024
- Workflow 工具现在在执行前显示详细的审批对话框,包含脚本名称、阶段和参数。 ([#9837](https://github.com/QwenLM/qwen-code/pull/9837)) by @qqqys
- WebShell 现在暴露一个可选回调,用于向嵌入主机报告活跃会话的完整子代理任务快照。 ([#9637](https://github.com/QwenLM/qwen-code/pull/9637)) by @callmeYe
- 为 Web Shell 主机添加了可选的异步 prepareSubmit 回调,以便在提交前动态解析上下文。 ([#9802](https://github.com/QwenLM/qwen-code/pull/9802)) by @dreamWB
- 新增四种内置输出风格(简洁、主动、解释、学习),用于控制代理在整个会话中报告工作的方式。 ([#9565](https://github.com/QwenLM/qwen-code/pull/9565)) by @qqqys
- 引入 qwen serve --open-with-auth,使用提供的或自动生成的 token 以 bearer 认证方式打开回环 Web Shell。 ([#9738](https://github.com/QwenLM/qwen-code/pull/9738)) by @doudouOUC
- 采用共享的 WebShell 转录渲染器作为 VS Code 伴侣端中默认且唯一的对话时间线,替换了旧版渲染器。 ([#9719](https://github.com/QwenLM/qwen-code/pull/9719)) by @yiliang114
- 将内置的 Computer Use 工具替换为捆绑技能,首次使用时自动配置外部 Node REPL MCP 服务器和 CUA SDK。 ([#9856](https://github.com/QwenLM/qwen-code/pull/9856)) by @LaZzyMan
- 将 language-pitfall 和 wrapper/proxy 检查从 Agent 1a 提升至专用的高耗时 Step 3A 角色,以实现更彻底的代码审查。 ([#9805](https://github.com/QwenLM/qwen-code/pull/9805)) by @wenshao
- 当识别出整体方案而非当前补丁是主要开放问题时,/review 命令现在会添加一条建议说明。 ([#9340](https://github.com/QwenLM/qwen-code/pull/9340)) by @qqqys
- 新增 find-simplifications 扫描技能,用于识别死代码和孤立资源,并生成有证据支持的提案供维护者审核。([#9384](https://github.com/QwenLM/qwen-code/pull/9384)) by @qqqys
- 通过定义五种特定触发器,要求在启动工作流前必须获得用户明确同意,以防止意外的多智能体编排。([#9806](https://github.com/QwenLM/qwen-code/pull/9806)) by @qqqys
- 审查执行现在在由操作员策略定义的容器边界内运行仓库自身的命令,而非依赖本地安装。([#9723](https://github.com/QwenLM/qwen-code/pull/9723)) by @wenshao
- feat(core): 新增按项目隔离的外部仓库制品落地页 ([#9776](https://github.com/QwenLM/qwen-code/pull/9776)) by @wenshao
- feat(review): 以类型化契约的形式向客户端报告发现结果 ([#9794](https://github.com/QwenLM/qwen-code/pull/9794)) by @wenshao
- 在连续两轮持续发现率后即刻触发严重性阈值下限,而非等待固定的第 6 轮调度。([#9938](https://github.com/QwenLM/qwen-code/pull/9938)) by @wenshao
- 由于代码已分叉至 OpenWork 仓库,移除了 Electron 桌面包及相关同步脚本。([#9085](https://github.com/QwenLM/qwen-code/pull/9085)) by @yiliang114
- 新增通过 ACP 通道对守护进程子进程进行可选的存活检查,包含重试和超时机制,以检测故障并避免主机挂起导致的误报。([#9976](https://github.com/QwenLM/qwen-code/pull/9976)) by @doudouOUC
- 新增内置钉钉工作空间通道,支持使用经过身份验证的 DWS CLI 配置进行私聊、@提及、文档通知和待办事项跟踪。([#9394](https://github.com/QwenLM/qwen-code/pull/9394)) by @qqqys
- feat(review): 新增 --topology 最小单次遍历 A/B 测试分支 ([#9919](https://github.com/QwenLM/qwen-code/pull/9919)) by @wenshao
- feat(cli): 管理智能体视图会话生命周期 ([#9986](https://github.com/QwenLM/qwen-code/pull/9986)) by @ZijianZhang989
- feat(goal): 将 get_goal 的默认视图改为摘要而非完整目录 ([#9973](https://github.com/QwenLM/qwen-code/pull/9973)) by @qqqys
- feat(goal): 当目标的检查点连续停滞三次时自动停止该目标 ([#9975](https://github.com/QwenLM/qwen-code/pull/9975)) by @qqqys
- feat(web-shell): 将紧凑视图设为唯一模式 ([#9993](https://github.com/QwenLM/qwen-code/pull/9993)) by @ytahdn
- feat(daemon): 支持当前会话的定时任务 ([#9838](https://github.com/QwenLM/qwen-code/pull/9838)) by @doudouOUC
- feat(core): 信任生成的脚本根目录以加载工作流 scriptPath ([#9987](https://github.com/QwenLM/qwen-code/pull/9987)) by @qqqys
- feat(providers): 在编辑前加载模型推荐 ([#9980](https://github.com/QwenLM/qwen-code/pull/9980)) by @qqqys
- feat(goal): 在用户重新设定的 token 预算处停止自主延续 ([#9891](https://github.com/QwenLM/qwen-code/pull/9891)) by @qqqys
- feat(acp): 启用托管的自动内存生命周期 ([#9992](https://github.com/QwenLM/qwen-code/pull/9992)) by @zgxkbtl
- feat(cli): 为无项目任务添加独立会话 ([#9978](https://github.com/QwenLM/qwen-code/pull/9978)) by @doudouOUC
- feat(web-shell): 新增会话 token 用量面板 ([#9988](https://github.com/QwenLM/qwen-code/pull/9988)) by @ytahdn
- feat(core): 在入站网关后接受跨会话消息 ([#9576](https://github.com/QwenLM/qwen-code/pull/9576)) by @qqqys
- feat(goal): 当目标不可行时允许提前停止 ([#10125](https://github.com/QwenLM/qwen-code/pull/10125)) by @qqqys
- feat(goal): 在预算耗尽停止目标前,允许一次交接回合 ([#10132](https://github.com/QwenLM/qwen-code/pull/10132)) by @qqqys
- feat(core): 新增内置的 goal-draft 技能,用于编写可被验证器评判的目标 ([#10002](https://github.com/QwenLM/qwen-code/pull/10002)) by @qqqys
### 错误修复
- 在会话概览面板中点击会话时,现在会正确地在原始工作区目录中打开它,而不是默认打开主工作区。 ([#9730](https://github.com/QwenLM/qwen-code/pull/9730)) by @wenshao
- Web Shell 现在会在流空闲时中途插入被拒绝的情况下,通过普通提示路径自动重试消息,从而避免不必要的错误提示。 ([#9732](https://github.com/QwenLM/qwen-code/pull/9732)) by @ytahdn
- 审查流水线现在不再在因较新版本运行开始而取消运行时发布回退评论,同时仍会对作业级超时进行评论。 ([#9716](https://github.com/QwenLM/qwen-code/pull/9716)) by @wenshao
- Web Shell 侧边栏中的固定会话现在会根据固定时间保持稳定的顺序,并在固定或取消固定时提供即时视觉反馈。 ([#9560](https://github.com/QwenLM/qwen-code/pull/9560)) by @yiliang114
- 将 qwen-autofix.yml 的工作流大小基线更新为 397656 字节,以匹配实际发布的文件大小并解除 CI 检查的阻塞。 ([#9747](https://github.com/QwenLM/qwen-code/pull/9747)) by @wenshao
- fix(ci): 根据审查载荷提供的字段限制分叉信号 ([#9469](https://github.com/QwenLM/qwen-code/pull/9469)) by @qqqys
- 拒绝与提示词示例字符串完全匹配的会话标题,从而触发 auto-title 和 /rename --auto 的现有回退行为。 ([#9709](https://github.com/QwenLM/qwen-code/pull/9709)) by @yiliang114
- 使用静态解析器替换工作流元字面量的 VM 评估,以防止恶意模型生成代码导致的挂起或无界内存分配。 ([#9325](https://github.com/QwenLM/qwen-code/pull/9325)) by @qqqys
- 启用使用相对守护进程基础 URL 下载工作区工件,以修复配置了同源路径的 Web Shell 集成中的无效 URL 错误。 ([#9734](https://github.com/QwenLM/qwen-code/pull/9734)) by @ytahdn
- 将修复尝试代理预算增加至 45 分钟,并调整相关步骤上限,以防止在确定性拒绝期间出现不透明的检查失败。 ([#9691](https://github.com/QwenLM/qwen-code/pull/9691)) by @qqqys
- 将工作流停滞看门狗窗口从 60 秒延长至 180 秒,以防止在长时间传输重试或模型响应缓慢时出现误超时。 ([#9397](https://github.com/QwenLM/qwen-code/pull/9397)) by @qqqys
- 将技能公告限制为模型是否明确声明了 Skill 工具,从而防止工具列表受限的子代理浪费回合。 ([#9718](https://github.com/QwenLM/qwen-code/pull/9718)) by @wenshao
- 在审查统计中将修复引发的重新报告计为新工作,以区分它们与现有发现的简单重新发布。 ([#9744](https://github.com/QwenLM/qwen-code/pull/9744)) by @wenshao
- 通过在通用文档处理之前正确分类,在 Web Shell 中启用 Markdown、HTML 和光栅图像的预览功能。 ([#9760](https://github.com/QwenLM/qwen-code/pull/9760)) by @ytahdn
- fix(daemon): 加载后保持恢复的 ask_user_question 有效 ([#9763](https://github.com/QwenLM/qwen-code/pull/9763)) by @doudouOUC
- 公共 GitHub 扩展现在可在 Git 版本低于 2.37 的系统上运行,方法是将 refs 解析为不可变提交,并通过安全归档路径而非原生 Git 进行下载。 ([#9690](https://github.com/QwenLM/qwen-code/pull/9690)) by @yiliang114
- 审查工作流现在会在清理残留工作树失败前修复权限并重试,确保作业不会因删除错误而失败。 ([#9748](https://github.com/QwenLM/qwen-code/pull/9748)) by @wenshao
- 会话标题回显比较现在对候选标题和示例标题均使用对称归一化,以防止误匹配。 ([#9809](https://github.com/QwenLM/qwen-code/pull/9809)) by @yiliang114
- 通过限制 performance.measure 的累积量并每 16,384 条记录清除一次时间线,修复了 Web Shell 中 React 开发模式的内存泄漏。 ([#9770](https://github.com/QwenLM/qwen-code/pull/9770)) by @wenshao
- 钉钉频道现在能正确解析转发聊天记录,并将其标题和摘要包含在代理的上下文中。 ([#9339](https://github.com/QwenLM/qwen-code/pull/9339)) by @qqqys
- 通过添加 remark-cjk-friendly 插件,Web Shell 现在能在强调标记与中日韩标点符号相邻时正确渲染粗体文本。 ([#9457](https://github.com/QwenLM/qwen-code/pull/9457)) by @cactuser-Lu
- 更新设置架构以接受包含 prompt 和 model 字段的提示词钩子,使 VS Code 验证与运行时行为保持一致。 ([#8779](https://github.com/QwenLM/qwen-code/pull/8779)) by @zjunothing
- 在创建会话前的 WebShell 欢迎状态中,为 qwen3.8-max 模型添加了只读的推理强度预览。 ([#9599](https://github.com/QwenLM/qwen-code/pull/9599)) by @callmeYe
- 当配置了 Google Cloud 项目但未设置 API 密钥时,启用使用应用默认凭据进行 Vertex AI 认证。 ([#9017](https://github.com/QwenLM/qwen-code/pull/9017)) by @axiom-of-choice
- 更新 cd-cua-driver.yml 的工作流大小基线,以防止因其发布的文件大小增加而导致的 CI 失败。 ([#9822](https://github.com/QwenLM/qwen-code/pull/9822)) by @wenshao
- 在调用完成回调之前立即清除工具显示列表,以防止 TUI 中出现重复渲染。 ([#9602](https://github.com/QwenLM/qwen-code/pull/9602)) by @qwen-code-dev-bot
- 规范化 MCP 批准键中的 Windows 驱动器字母大小写,以确保 CLI 和 VS Code 之间的服务器识别一致。 ([#9779](https://github.com/QwenLM/qwen-code/pull/9779)) by @zhou2024NAU
- 文件读取现在在信任扩展名之前通过魔数(magic bytes)验证图像内容,防止带有图像扩展名的文本文件被错误分类。 ([#9113](https://github.com/QwenLM/qwen-code/pull/9113)) by @rbalachandar
- Windows 上的会话导出现在能正确保留文件链接中的盘符路径,使其能在本地打开而非在浏览器中失败。 ([#8953](https://github.com/QwenLM/qwen-code/pull/8953)) by @yefuyou
- CLI 输入框边框现在可通过截断长标题来适应终端大小调整,防止布局溢出和行抖动。 ([#8991](https://github.com/QwenLM/qwen-code/pull/8991)) by @tlysanhuo
- 后台代理通知现在包含同一所有者剩余活跃代理的数量,以提升协调状态的可见性。 ([#9018](https://github.com/QwenLM/qwen-code/pull/9018)) by @tao943
- 推理努力层级现在会自动限制为各特定模型端点支持的最高级别,以防止请求错误。 ([#9501](https://github.com/QwenLM/qwen-code/pull/9501)) by @harjothkhara
- 麦克风权限检查现在仅在开始录音时触发,而非在语音预热期间,从而避免不必要的早期权限提示。 ([#8912](https://github.com/QwenLM/qwen-code/pull/8912)) by @Nas01010101
- 改进了循环检测机制,当模型在内容或推理流中重复长段原文时,将停止当前回合。 ([#9668](https://github.com/QwenLM/qwen-code/pull/9668)) by @yiliang114
- 通过确保在所有残留探测命令中已验证的 Git 身份保持一致,加强了审查流程的安全性。 ([#9742](https://github.com/QwenLM/qwen-code/pull/9742)) by @wenshao
- 修复了嵌套子代理审批请求未显示在 UI 上的问题,该问题曾导致后台代理挂起。 ([#9793](https://github.com/QwenLM/qwen-code/pull/9793)) by @wenshao
- 确保代理启动失败时能正确填充错误字段,以便作为失败的 tool call 进行报告。 ([#9519](https://github.com/QwenLM/qwen-code/pull/9519)) by @yiliang114
- 在处理队友关闭请求期间限制任务分配,从而防止出现幽灵挂起关闭状态。 ([#9550](https://github.com/QwenLM/qwen-code/pull/9550)) by @AaronZ345
- 缓存的分支快照现在按会话 ID 隔离,以防止在后台读取期间发生跨会话数据泄露。 ([#9471](https://github.com/QwenLM/qwen-code/pull/9471)) by @tomsen02
- 证据目录预览现在限制为 240 个 UTF-8 字节(而非字符),以防止非 ASCII 语言导致的目标失败。 ([#9835](https://github.com/QwenLM/qwen-code/pull/9835)) by @qqqys
- 在 ConPTY 环境下运行时跳过重绘优化器,从而修复 WSL 终端中的文本重复问题。 ([#7897](https://github.com/QwenLM/qwen-code/pull/7897)) by @C0d3N1nja97342
- 修复了令牌计数跟踪机制,当活动模型路由变更时使数据失效,从而确保会话限制和压缩提示准确无误。 ([#9506](https://github.com/QwenLM/qwen-code/pull/9506)) by @yiliang114
- 将条件关闭拒绝持有量限制为每会话 1,024 次,以防止过大响应破坏缓存保留机制。 ([#9820](https://github.com/QwenLM/qwen-code/pull/9820)) by @doudouOUC
- 通过使审批处理具备实例感知能力并防止过期事件影响较新实例,实现了钩子回弹后的工作流重新审批。 ([#9547](https://github.com/QwenLM/qwen-code/pull/9547)) by @AaronZ345
- 修复了守护进程模式下的调试日志路由,使其使用异步局部会话 ID,防止不同会话的日志被写入同一文件。 ([#9538](https://github.com/QwenLM/qwen-code/pull/9538)) by @tomsen02
- 新增支持按提供商设置 `streamIdleTimeoutMs`,以应对不同模型提供商的延迟需求差异。 ([#9795](https://github.com/QwenLM/qwen-code/pull/9795)) by @yu-xin-c
- 修复了内存管理问题,允许遗忘操作扫描与召回相同的无上限文档集合,防止过期条目持续存在。 ([#9530](https://github.com/QwenLM/qwen-code/pull/9530)) by @harjothkhara
- fix(core):将团队关闭操作设为仅领导者可用的工具 ([#9401](https://github.com/QwenLM/qwen-code/pull/9401)) by @yiliang114
- CI 现在通过重命名将无法删除的工作区残留物移至一旁,而非在标准删除方法遇到权限问题时直接失败。 ([#9868](https://github.com/QwenLM/qwen-code/pull/9868)) by @wenshao
- 实时任务桥接操作现在统一使用规范的小写 UUID,以防止因大小写不匹配导致会话查找失败。 ([#9819](https://github.com/QwenLM/qwen-code/pull/9819)) by @doudouOUC
- fix(core):以不区分大小写的方式映射 OpenAI 兼容的 finish_reason ([#9884](https://github.com/QwenLM/qwen-code/pull/9884)) by @yiliang114
- 重试耗尽后,系统现在会接受工具结果后的静默模型完成响应,而非因 API 错误中止运行。 ([#9196](https://github.com/QwenLM/qwen-code/pull/9196)) by @yiliang114
- 在架构的 `output.format` 设置允许值中新增 `stream-json`,确保 VS Code 设置与 CLI 运行时能力保持一致。 ([#8966](https://github.com/QwenLM/qwen-code/pull/8966)) by @harjothkhara
- 系统现在将已完成的 Anthropic 工具参数验证为严格 JSON 对象,拒绝格式错误的输入以防止执行无效调用。 ([#9013](https://github.com/QwenLM/qwen-code/pull/9013)) by @tlysanhuo
- 修复了 CI 清理逻辑,仅清除 A/B 签出目录而非整个工作区,防止 900 MB Git 历史重新下载及运行器挂起。 ([#9228](https://github.com/QwenLM/qwen-code/pull/9228)) by @qwen-code-dev-bot
- 禁用了默认的权限响应超时设置,使请求保持挂起状态直至用户做出决定,同时仍支持通过 `--permission-response-timeout-ms` 设置显式超时。 ([#9933](https://github.com/QwenLM/qwen-code/pull/9933)) by @doudouOUC
- 从 OpenAI 兼容请求的函数架构中移除了不受支持的 `uniqueItems` 约束,以防止 DashScope 端点拒绝请求。 ([#9869](https://github.com/QwenLM/qwen-code/pull/9869)) by @qqqys
- 统一所有界面中的目标续传提示词,采用受保护的 JSON 块以防止提示词注入并确保目标一致性。 ([#9834](https://github.com/QwenLM/qwen-code/pull/9834)) by @qqqys
- 禁止在覆盖率简报中包含未执行的变异声明,要求将未运行的变异标记为带有见证说明的假设。 ([#9923](https://github.com/QwenLM/qwen-code/pull/9923)) by @wenshao
- 当 PR 未修改已增长的文件时,将工作流大小棘轮(ratchet)失败降级为警告,防止因基线变更导致误报。 ([#9931](https://github.com/QwenLM/qwen-code/pull/9931)) by @wenshao
- 通过将流式思考文本排除在顶层渲染路径之外,并卸载折叠的工具详情,减少 Web Shell 中的渲染卡顿。 ([#9914](https://github.com/QwenLM/qwen-code/pull/9914)) by @ytahdn
- 在自动修复的 stdout 回显中中和现代 `::name::` 和旧版 `##[name]` 工作流命令,以防止作业日志中的注入攻击。 ([#9871](https://github.com/QwenLM/qwen-code/pull/9871)) by @wenshao
- 在注册运行前编译工作流脚本,确保无效脚本能干净地失败,而不会创建幽灵行或遥测事件。 ([#9873](https://github.com/QwenLM/qwen-code/pull/9873)) by @qqqys
- 修复持久化会话生命周期操作,以处理空、格式错误或孤立的话语文本文件,同时将冲突返回为会话级错误。 ([#9626](https://github.com/QwenLM/qwen-code/pull/9626)) by @doudouOUC
- CLI 现在能优雅地处理无法读取的提示词文件,通过记录警告并使用默认重写提示词来避免崩溃。 ([#9753](https://github.com/QwenLM/qwen-code/pull/9753)) by @yiliang114
- 目标所有权现在独立于会话元数据进行加载,使 Slash 命令能够更快加载,无需等待较慢的元数据请求。 ([#9977](https://github.com/QwenLM/qwen-code/pull/9977)) by @ytahdn
- `/goal resume` 命令现在通过重置证据游标同时保留目标和修订数据,正确恢复证据受限的目标。 ([#9840](https://github.com/QwenLM/qwen-code/pull/9840)) by @qqqys
- 将 Git 凭据配置限制为由 Qwen Code 发起的作用域操作内,确保凭据与 URL、日志和环境变量隔离。 ([#9870](https://github.com/QwenLM/qwen-code/pull/9870)) by @callmeYe
- 确保分支会话继承源会话的显示名称并附加数字后缀,而非随机 UUID,提升会话识别度和一致性。 ([#9764](https://github.com/QwenLM/qwen-code/pull/9764)) by @water-in-stone
- 通过在会话切换失败时使用显式事务修复遥测聚合错误,防止重放历史导致的使用记录膨胀。 ([#9844](https://github.com/QwenLM/qwen-code/pull/9844)) by @yiliang114
- 通过在专用集合中跟踪活动提示词而非依赖不可靠的流状态指示器,修正 QQ Bot 的 cron 消息处理。 ([#9971](https://github.com/QwenLM/qwen-code/pull/9971)) by @yiliang114
- fix(cli): 在横幅中标记预估压缩令牌数量 ([#9568](https://github.com/QwenLM/qwen-code/pull/9568)) by @yiliang114
- 通过在 API 负载中发出原生推理参数,确保 OpenRouter 请求在配置关闭时明确禁用推理功能。 ([#9758](https://github.com/QwenLM/qwen-code/pull/9758)) by @yiliang114
- fix(core): 针对实时提供程序验证技能命令以应对延迟附加 ([#9824](https://github.com/QwenLM/qwen-code/pull/9824)) by @yiliang114
- fix(cli): 在实时会话重放期间保持进行中的工具调用处于挂起状态 ([#9705](https://github.com/QwenLM/qwen-code/pull/9705)) by @yiliang114
- fix(core): 拒绝无法验证的已验证读取 inode ([#9857](https://github.com/QwenLM/qwen-code/pull/9857)) by @AaronZ345
- fix(review): 沙箱默认命名了一个不存在的镜像 ([#9972](https://github.com/QwenLM/qwen-code/pull/9972)) by @wenshao
- fix(web-shell): 本地化视觉桥接通知 ([#10003](https://github.com/QwenLM/qwen-code/pull/10003)) by @ytahdn
- fix(web-shell): 允许在会话创建前选择推理模式 ([#10008](https://github.com/QwenLM/qwen-code/pull/10008)) by @callmeYe
- fix(core): 将协调技能的队友数量限制在配置的上限内 ([#9403](https://github.com/QwenLM/qwen-code/pull/9403)) by @yiliang114
- fix: 修复 Windows 和 macOS 测试通道的失败问题 ([#9728](https://github.com/QwenLM/qwen-code/pull/9728)) by @wenshao
- fix(ci): 重新为 macOS 和 Windows 通道添加触发器 ([#9370](https://github.com/QwenLM/qwen-code/pull/9370)) by @wenshao
- fix(core): 使 `permissions.allow` 限制发送给模型的工具模式 ([#9829](https://github.com/QwenLM/qwen-code/pull/9829)) by @yiliang114
- fix(webui): 在事件启动期间保留已加载的目标状态 ([#10012](https://github.com/QwenLM/qwen-code/pull/10012)) by @ytahdn
- fix(cli): 在失败关闭轮次中将审查锚点向前嫁接 ([#9932](https://github.com/QwenLM/qwen-code/pull/9932)) by @wenshao
- fix(live): 移除桌面端后恢复 Live Host ([#9994](https://github.com/QwenLM/qwen-code/pull/9994)) by @yiliang114
- fix(goal): 引用本轮交付的输出而非拒绝覆盖它 ([#9880](https://github.com/QwenLM/qwen-code/pull/9880)) by @qqqys
- fix(serve): 使通道工作进程能够访问启用 TLS 的守护进程 ([#9392](https://github.com/QwenLM/qwen-code/pull/9392)) by @qqqys
- fix(cli): 删除破坏主构建的重复虚假属性 ([#10022](https://github.com/QwenLM/qwen-code/pull/10022)) by @yiliang114
- fix(core): 在权限别名表中注册 `report_findings` ([#10033](https://github.com/QwenLM/qwen-code/pull/10033)) by @yiliang114
- fix(cli): 保留中途媒体处理的桥接超时设置 ([#9995](https://github.com/QwenLM/qwen-code/pull/9995)) by @ytahdn
- fix(mcp): 恢复会话内和 CLI 中重启的 HTTP MCP 服务器 ([#9962](https://github.com/QwenLM/qwen-code/pull/9962)) by @yiliang114
- fix(core): 将已加载技能状态与历史驱逐同步 ([#9500](https://github.com/QwenLM/qwen-code/pull/9500)) by @ZijianZhang989
- fix(core): 为多模态 DeepSeek 保留图像 ([#9854](https://github.com/QwenLM/qwen-code/pull/9854)) by @shenyankm
- fix(ci): 在脚本测试之间让出事件循环,以避免 vitest RPC 超时 (#10037) ([#10050](https://github.com/QwenLM/qwen-code/pull/10050)) by @qwen-code-dev-bot
- fix(vscode): 同步伴生令牌限制 ([#9850](https://github.com/QwenLM/qwen-code/pull/9850)) by @AaronZ345
- fix(ui): 抑制单次交互中重复且相同的 TodoList 面板 ([#9692](https://github.com/QwenLM/qwen-code/pull/9692)) by @PratikWayase
- fix(ci): 重试沙箱镜像构建,并在发布构建失败时提交 issue ([#9916](https://github.com/QwenLM/qwen-code/pull/9916)) by @yiliang114
- fix(web-shell): 限制响应式侧边栏抽屉 ([#10020](https://github.com/QwenLM/qwen-code/pull/10020)) by @dreamWB
- fix(core): 通过规范标识符对分层记忆文件去重 ([#9600](https://github.com/QwenLM/qwen-code/pull/9600)) by @yiliang114
- fix(cua-driver): 支持沙箱化的 Windows SDK 客户端 ([#10120](https://github.com/QwenLM/qwen-code/pull/10120)) by @LaZzyMan
- fix(node-repl): 使包验证具备幂等性 ([#10133](https://github.com/QwenLM/qwen-code/pull/10133)) by @LaZzyMan
- fix(review): 为已取消的运行任务提供准确的回退内容,而非失败评论 ([#10114](https://github.com/QwenLM/qwen-code/pull/10114)) by @wenshao
- fix(cua-driver): 同步发布版本标记 ([#10135](https://github.com/QwenLM/qwen-code/pull/10135)) by @LaZzyMan
- fix(core): 将未覆盖白名单的工具保留为延迟注册状态,而非将其移除 (#10075) ([#10082](https://github.com/QwenLM/qwen-code/pull/10082)) by @yiliang114
- fix(daemon): 在计划任务绑定前持久化空会话 ([#10144](https://github.com/QwenLM/qwen-code/pull/10144)) by @doudouOUC
- fix(channels): 使同聊天交付具备会话感知能力 ([#10145](https://github.com/QwenLM/qwen-code/pull/10145)) by @doudouOUC
### Performance
- 终端虚拟滚动现在最高支持 60 FPS 渲染,相比之前 30 FPS 的上限,消除了卡顿现象并提升了大型 PTY 窗口的滚动流畅度。 ([#9681](https://github.com/QwenLM/qwen-code/pull/9681)) by @DragonnZhang
### Documentation
- 通过明确命名“rank 3”涉及的轴来澄清文档,解决修剪与保留操作之间的歧义。 ([#9759](https://github.com/QwenLM/qwen-code/pull/9759)) by @wenshao
- docs(agent): 澄清参数前置条件 ([#9580](https://github.com/QwenLM/qwen-code/pull/9580)) by @tao943
- 更正 VS Code 扩展 README,将实际最低要求版本从 1.85.0 更新为 1.96.0。 ([#9852](https://github.com/QwenLM/qwen-code/pull/9852)) by @AaronZ345
- docs(core): 修复目标评估器超时单位 ([#9861](https://github.com/QwenLM/qwen-code/pull/9861)) by @AaronZ345
- 更新 ReadFile 工具文档,将默认分页限制引用为 truncateToolOutputLines 设置,而非硬编码的行数。 ([#9863](https://github.com/QwenLM/qwen-code/pull/9863)) by @AaronZ345
- 修复 TypeScript SDK 超时示例,改用正确的 query({ prompt, options }) 工厂签名,替代过时的位置参数格式。 ([#9867](https://github.com/QwenLM/qwen-code/pull/9867)) by @AaronZ345
- docs: 整合多项文档修正 ([#9855](https://github.com/QwenLM/qwen-code/pull/9855)) by @AaronZ345
### Internal Changes
- 将 autofix 说明文档迁移至设计记录,以减小工作流文件大小,并实现了棘轮机制,以限制审查中未来增长的可见性。 ([#9677](https://github.com/QwenLM/qwen-code/pull/9677)) by @wenshao
- 新增测试,确认子代理注册表排除了 MCP 指令,确保 buildMcpServerInstructionsReminder 在不修改生产代码的情况下保持安全。 ([#9720](https://github.com/QwenLM/qwen-code/pull/9720)) by @wenshao
- 通过将领域耦合模块移出 CLI utils 叶子层,并添加 ESLint 规则以防止向上导入,强化了架构边界。 ([#9737](https://github.com/QwenLM/qwen-code/pull/9737)) by @yiliang114
- 重构 ACP 技能管理,将源获取与变更逻辑提取到内聚的内部模块中。 ([#8865](https://github.com/QwenLM/qwen-code/pull/8865)) by @callmeYe
- 图像生成现在通过使用正确的请求 schema 并处理 URL 和 base64 响应,支持 MiniMax 端点。 ([#8322](https://github.com/QwenLM/qwen-code/pull/8322)) by @octo-patch
- 重构目标继续提示词,使用单一核心渲染器,确保所有界面输出一致。 ([#9581](https://github.com/QwenLM/qwen-code/pull/9581)) by @qqqys
- 审查技能清单被拆分为核心主体与判决门控参考文件,以根据发布状态优化加载。 ([#9804](https://github.com/QwenLM/qwen-code/pull/9804)) by @wenshao
- chore(ci):刷新核心 issue 所有者池 ([#9808](https://github.com/QwenLM/qwen-code/pull/9808)) by @yiliang114
- 重构 core utils 为严格的叶子层,不依赖其他核心模块的运行时依赖,确保更清晰的架构边界。 ([#9778](https://github.com/QwenLM/qwen-code/pull/9778)) by @yiliang114
- 集中管理 core、CLI 和 SDK 中的审批模式契约,确保验证一致性,防止未来更新中出现静默不匹配。 ([#9796](https://github.com/QwenLM/qwen-code/pull/9796)) by @yiliang114
- 通过新的 deriveConfig 工厂边界及生命周期变更守卫,为派生 Config 实例建立明确的归属权。 ([#8100](https://github.com/QwenLM/qwen-code/pull/8100)) by @yiliang114
- ACP 定时任务测试现在在清理阶段终止整个 CLI 进程树,以防止在 POSIX 和 Windows 上出现目录删除错误。 ([#9815](https://github.com/QwenLM/qwen-code/pull/9815)) by @dream-creator
- 从核心内容生成器接口中移除未使用的 token 计数与摘要思考能力,以简化 provider 实现。 ([#9676](https://github.com/QwenLM/qwen-code/pull/9676)) by @DragonnZhang
- 更新 Vertex 模式懒加载生成器测试,使用 embedContent 替代已移除的 countTokens 方法,以修复 TypeScript 构建。 ([#9888](https://github.com/QwenLM/qwen-code/pull/9888)) by @AaronZ345
- 以 root 身份运行时跳过 unreadable-ledger 测试,因为权限检查会被绕过,从而确保 root 环境下的测试稳定性。 ([#9913](https://github.com/QwenLM/qwen-code/pull/9913)) by @wenshao
- 更新内部注释,正确说明重放安全性依赖于丢弃失败的尝试回合,而非从历史记录中排除思维部分。 ([#8861](https://github.com/QwenLM/qwen-code/pull/8861)) by @ComplexSimply
- 重构 Core 客户端,通过直接从定义处导入 approval-mode 枚举来移除运行时导入循环。 ([#9959](https://github.com/QwenLM/qwen-code/pull/9959)) by @DragonnZhang
- Workspace Git 和状态路由现在共享单一可信运行时解析器,以确保所有端点的安全验证一致。 ([#9958](https://github.com/QwenLM/qwen-code/pull/9958)) by @DragonnZhang
- chore(github):添加 @qqqys 为 core 包代码所有者 ([#9982](https://github.com/QwenLM/qwen-code/pull/9982)) by @yiliang114
- test(cli):使 session-swap 遥测模拟具备 /branch 标题先决条件 ([#9998](https://github.com/QwenLM/qwen-code/pull/9998)) by @yiliang114
- refactor(acp-bridge):缩小 workspace 事件能力范围 ([#9957](https://github.com/QwenLM/qwen-code/pull/9957)) by @DragonnZhang
- refactor(web-shell):提取共享上下文 ([#9954](https://github.com/QwenLM/qwen-code/pull/9954)) by @DragonnZhang
- refactor(web-shell):复用标准 todo 解析器 ([#9956](https://github.com/QwenLM/qwen-code/pull/9956)) by @DragonnZhang
- refactor(cli):移除未使用的 EnumSelector 组件 ([#9997](https://github.com/QwenLM/qwen-code/pull/9997)) by @qqqys
- ci:从 pull requests 中移除 macOS 和 Windows 构建流水线 ([#10059](https://github.com/QwenLM/qwen-code/pull/10059)) by @wenshao
- refactor(core):移除未使用的 LruCache 工具 ([#9926](https://github.com/QwenLM/qwen-code/pull/9926)) by @AaronZ345
- refactor(cli):移除未使用的 useInputHistoryStore 钩子 ([#10041](https://github.com/QwenLM/qwen-code/pull/10041)) by @qqqys
- chore(ci):将 CUA npm 包迁移至可信发布 ([#9836](https://github.com/QwenLM/qwen-code/pull/9836)) by @yiliang114
- chore(cua-driver):将 SDK 升级至 0.20.1 ([#10127](https://github.com/QwenLM/qwen-code/pull/10127)) by @LaZzyMan
## 新贡献者
- @cactuser-Lu 在 [#9457](https://github.com/QwenLM/qwen-code/pull/9457) 中首次贡献
- @axiom-of-choice 在 [#9017](https://github.com/QwenLM/qwen-code/pull/9017) 中首次贡献
- @zhou2024NAU 在 [#9779](https://github.com/QwenLM/qwen-code/pull/9779) 中首次贡献
- @octo-patch 在 [#8322](https://github.com/QwenLM/qwen-code/pull/8322) 中首次贡献
- @yefuyou 在 [#8953](https://github.com/QwenLM/qwen-code/pull/8953) 中首次贡献
- @tao943 在 [#9018](https://github.com/QwenLM/qwen-code/pull/9018) 中首次贡献
- @AaronZ345 在 [#9550](https://github.com/QwenLM/qwen-code/pull/9550) 中首次贡献
- @yu-xin-c 在 [#9795](https://github.com/QwenLM/qwen-code/pull/9795) 中首次贡献
- @dream-creator 在 [#9815](https://github.com/QwenLM/qwen-code/pull/9815) 中首次贡献
- @zgxkbtl 在 [#9992](https://github.com/QwenLM/qwen-code/pull/9992) 中首次贡献
**完整更新日志**: https://github.com/QwenLM/qwen-code/compare/v0.22.0...v0.22.2
<!-- qwen-release-notes:v1 -->
## Highlights
_See the complete change list below._
## Breaking Changes
- refactor(node-repl)!: deliver the persistent Node REPL as a standalone MCP server ([#9499](https://github.com/QwenLM/qwen-code/pull/9499)) by @LaZzyMan
## Complete Change List
### Features
- Added temporal-reachability and incident-replay lenses to review briefs to analyze whether values exist at the correct moments to steer decisions. ([#9708](https://github.com/QwenLM/qwen-code/pull/9708)) by @wenshao
- Review findings now include specific test acceptance criteria for their fixes and explicitly rule on non-convergence to reduce review-fix loops. ([#9596](https://github.com/QwenLM/qwen-code/pull/9596)) by @wenshao
- Daemon sessions now restore to their last selected model across restarts and detaches, while new sessions continue to use the current settings default. ([#9687](https://github.com/QwenLM/qwen-code/pull/9687)) by @doudouOUC
- Validates inline anchors for /review --comment on Aone targets before posting, relocating Critical findings to the summary body and discarding Suggestions if anchors are invalid. ([#9634](https://github.com/QwenLM/qwen-code/pull/9634)) by @wenshao
- Adds a tokensUsed field to GoalRecord to report the total tokens consumed by a Goal alongside its turn count in the lastGoal summary. ([#9583](https://github.com/QwenLM/qwen-code/pull/9583)) by @qqqys
- Enables dynamic workflows via the tools.workflowsEnabled user setting, replacing the previous undocumented environment variable method. ([#9098](https://github.com/QwenLM/qwen-code/pull/9098)) by @qqqys
- Enables PR context fetching for Aone Code targets in the /review command, restoring full review capabilities including native approval and issue fidelity. ([#9621](https://github.com/QwenLM/qwen-code/pull/9621)) by @wenshao
- Web Shell now correctly refreshes composer skills after toggles, preventing disabled skills from reappearing and surfacing failed refreshes instead of stale suggestions. ([#9131](https://github.com/QwenLM/qwen-code/pull/9131)) by @samuelhsin
- The review skill now supports comment-status and presubmit flows for Aone Code targets, generating the same JSON report schema as GitHub for merge-gate and CI state checks. ([#9627](https://github.com/QwenLM/qwen-code/pull/9627)) by @wenshao
- feat(models): support dual-role image generation models ([#9650](https://github.com/QwenLM/qwen-code/pull/9650)) by @callmeYe
- Review compose now surfaces a land-with-residual-risk advisory when critical findings persist across rounds, signaling that manual risk acceptance is required to exit the loop. ([#9526](https://github.com/QwenLM/qwen-code/pull/9526)) by @wenshao
- The Computer Use SDK for Node.js is now updated to v0.20.0, providing versioned accessibility observations and stable element tokens across macOS, Windows, and Linux platforms. ([#9587](https://github.com/QwenLM/qwen-code/pull/9587)) by @LaZzyMan
- Added support for MCP 2026 core protocol and introduced an MCP Apps host for rendering inline applications in daemon-backed WebShell sessions. ([#8992](https://github.com/QwenLM/qwen-code/pull/8992)) by @samuelhsin
- Adds a do-not-refute list and constructible rejection bar to the /review skill verifier to prevent invalid rejections of speculative findings. ([#9799](https://github.com/QwenLM/qwen-code/pull/9799)) by @wenshao
- feat(core): declare create_sub_session only under qwen serve ([#9425](https://github.com/QwenLM/qwen-code/pull/9425)) by @DragonnZhang
- Added support for creating scheduled tasks that reuse an existing live session by providing an optional sessionId. ([#9361](https://github.com/QwenLM/qwen-code/pull/9361)) by @yiliang114
- Compact mode now folds adjacent thinking, tool activity, and parallel agents into a single expandable summary row in the web shell. ([#9657](https://github.com/QwenLM/qwen-code/pull/9657)) by @ytahdn
- Kimi (Moonshot AI) is added as a built-in third-party provider with support for international and China endpoints and editable model catalogs. ([#9814](https://github.com/QwenLM/qwen-code/pull/9814)) by @TianYuan1024
- The Workflow tool now displays a detailed approval dialog showing the script's name, phases, and arguments before execution. ([#9837](https://github.com/QwenLM/qwen-code/pull/9837)) by @qqqys
- WebShell now exposes an optional callback to report the active session's complete subagent task snapshot for embedding hosts. ([#9637](https://github.com/QwenLM/qwen-code/pull/9637)) by @callmeYe
- Added an optional async prepareSubmit callback for Web Shell hosts to resolve context dynamically before submission. ([#9802](https://github.com/QwenLM/qwen-code/pull/9802)) by @dreamWB
- Adds four built-in output styles (Concise, Proactive, Explanatory, Learning) to control how the agent reports work throughout a session. ([#9565](https://github.com/QwenLM/qwen-code/pull/9565)) by @qqqys
- Introduces qwen serve --open-with-auth to open a loopback Web Shell with bearer authentication using a provided or auto-generated token. ([#9738](https://github.com/QwenLM/qwen-code/pull/9738)) by @doudouOUC
- Adopts the shared WebShell transcript renderer as the default and only conversation timeline in the VS Code companion, replacing the legacy renderer. ([#9719](https://github.com/QwenLM/qwen-code/pull/9719)) by @yiliang114
- Replaced built-in Computer Use tools with a bundled skill that automatically configures the external Node REPL MCP server and CUA SDK on first use. ([#9856](https://github.com/QwenLM/qwen-code/pull/9856)) by @LaZzyMan
- Promoted language-pitfall and wrapper/proxy checks from Agent 1a to dedicated high-effort Step 3A roles for more thorough code review. ([#9805](https://github.com/QwenLM/qwen-code/pull/9805)) by @wenshao
- The /review command now adds an advisory note when the overall approach, rather than the current patch, is identified as the primary open question. ([#9340](https://github.com/QwenLM/qwen-code/pull/9340)) by @qqqys
- Added a new find-simplifications sweep skill that identifies dead code and orphaned resources, generating evidence-backed proposals for maintainer review. ([#9384](https://github.com/QwenLM/qwen-code/pull/9384)) by @qqqys
- Required explicit user opt-in before launching workflows by defining five specific triggers to prevent unintended multi-agent orchestration. ([#9806](https://github.com/QwenLM/qwen-code/pull/9806)) by @qqqys
- Review executions now run the repository's own commands inside a container boundary defined by operator policy instead of relying on local installation. ([#9723](https://github.com/QwenLM/qwen-code/pull/9723)) by @wenshao
- feat(core): add a per-project outside-repo artifact landing ([#9776](https://github.com/QwenLM/qwen-code/pull/9776)) by @wenshao
- feat(review): report findings to clients as a typed contract ([#9794](https://github.com/QwenLM/qwen-code/pull/9794)) by @wenshao
- Engages the critical severity floor immediately after two consecutive rounds of sustained finding rates instead of waiting for the fixed round-6 schedule. ([#9938](https://github.com/QwenLM/qwen-code/pull/9938)) by @wenshao
- Removed the Electron desktop package and related sync scripts since the code has been forked to the OpenWork repository. ([#9085](https://github.com/QwenLM/qwen-code/pull/9085)) by @yiliang114
- Adds an opt-in liveness check for daemon child processes using ACP channels, with retries and timeouts to detect failures without false positives from host suspension. ([#9976](https://github.com/QwenLM/qwen-code/pull/9976)) by @doudouOUC
- Introduces a built-in DingTalk Workspace channel supporting direct messages, mentions, document notifications, and todo tracking using authenticated DWS CLI profiles. ([#9394](https://github.com/QwenLM/qwen-code/pull/9394)) by @qqqys
- feat(review): add a --topology minimal single-pass A/B arm ([#9919](https://github.com/QwenLM/qwen-code/pull/9919)) by @wenshao
- feat(cli): Manage agent view session lifecycle ([#9986](https://github.com/QwenLM/qwen-code/pull/9986)) by @ZijianZhang989
- feat(goal): make get_goal's default view a summary instead of the whole catalog ([#9973](https://github.com/QwenLM/qwen-code/pull/9973)) by @qqqys
- feat(goal): stop a Goal whose checkpoints stall three times in a row ([#9975](https://github.com/QwenLM/qwen-code/pull/9975)) by @qqqys
- feat(web-shell): make compact view the only mode ([#9993](https://github.com/QwenLM/qwen-code/pull/9993)) by @ytahdn
- feat(daemon): Support current-session scheduled tasks ([#9838](https://github.com/QwenLM/qwen-code/pull/9838)) by @doudouOUC
- feat(core): trust a generated-scripts root for workflow scriptPath loads ([#9987](https://github.com/QwenLM/qwen-code/pull/9987)) by @qqqys
- feat(providers): load model recommendations before editing ([#9980](https://github.com/QwenLM/qwen-code/pull/9980)) by @qqqys
- feat(goal): stop autonomous continuation at a token budget the user re-arms ([#9891](https://github.com/QwenLM/qwen-code/pull/9891)) by @qqqys
- feat(acp): enable managed auto-memory lifecycle ([#9992](https://github.com/QwenLM/qwen-code/pull/9992)) by @zgxkbtl
- feat(cli): Add standalone sessions for projectless tasks ([#9978](https://github.com/QwenLM/qwen-code/pull/9978)) by @doudouOUC
- feat(web-shell): add session token usage panel ([#9988](https://github.com/QwenLM/qwen-code/pull/9988)) by @ytahdn
- feat(core): accept cross-session messages behind an inbound gate ([#9576](https://github.com/QwenLM/qwen-code/pull/9576)) by @qqqys
- feat(goal): let a Goal stop early when its objective is infeasible ([#10125](https://github.com/QwenLM/qwen-code/pull/10125)) by @qqqys
- feat(goal): grant one hand-off turn before a spent budget stops the Goal ([#10132](https://github.com/QwenLM/qwen-code/pull/10132)) by @qqqys
- feat(core): add a bundled goal-draft skill that writes verifier-judgeable Goals ([#10002](https://github.com/QwenLM/qwen-code/pull/10002)) by @qqqys
### Bug Fixes
- Clicking a session in the Session Overview panel now correctly opens it within its original workspace directory instead of defaulting to the primary workspace. ([#9730](https://github.com/QwenLM/qwen-code/pull/9730)) by @wenshao
- Web Shell now automatically retries messages via the ordinary prompt path if a mid-turn insertion is rejected while the stream is idle, preventing unnecessary error toasts. ([#9732](https://github.com/QwenLM/qwen-code/pull/9732)) by @ytahdn
- The review pipeline no longer posts fallback comments when a run is cancelled because a newer superseding run started, while still commenting on job-level timeouts. ([#9716](https://github.com/QwenLM/qwen-code/pull/9716)) by @wenshao
- Pinned sessions in the Web Shell sidebar now maintain a stable order based on pinning time and provide instant visual feedback when pinned or unpinned. ([#9560](https://github.com/QwenLM/qwen-code/pull/9560)) by @yiliang114
- Updates the workflow size baseline for qwen-autofix.yml to 397656 bytes to match the actual shipped file size and unblock CI checks. ([#9747](https://github.com/QwenLM/qwen-code/pull/9747)) by @wenshao
- fix(ci): gate the fork signal on fields the review payload delivers ([#9469](https://github.com/QwenLM/qwen-code/pull/9469)) by @qqqys
- Rejects session titles that exactly match the prompt's example strings, triggering the existing fallback behavior for auto-title and /rename --auto. ([#9709](https://github.com/QwenLM/qwen-code/pull/9709)) by @yiliang114
- Replaces VM evaluation of workflow meta literals with a static parser to prevent hangs or unbounded allocation caused by malicious model-generated code. ([#9325](https://github.com/QwenLM/qwen-code/pull/9325)) by @qqqys
- Enables workspace artifact downloads using relative daemon base URLs to fix Invalid URL errors in Web Shell integrations configured with same-origin paths. ([#9734](https://github.com/QwenLM/qwen-code/pull/9734)) by @ytahdn
- Increases the repair attempt agent budget to 45 minutes and adjusts related step caps to prevent opaque check failures during deterministic rejections. ([#9691](https://github.com/QwenLM/qwen-code/pull/9691)) by @qqqys
- Extends the workflow stall watchdog window from 60s to 180s to prevent false timeouts during long transport retries or slow model responses. ([#9397](https://github.com/QwenLM/qwen-code/pull/9397)) by @qqqys
- Gates skill announcements on whether the model explicitly declared the Skill tool, preventing wasted turns for subagents with restricted tool lists. ([#9718](https://github.com/QwenLM/qwen-code/pull/9718)) by @wenshao
- Counts fix-induced re-reports as new work in review statistics, distinguishing them from simple re-posts of existing findings. ([#9744](https://github.com/QwenLM/qwen-code/pull/9744)) by @wenshao
- Enables previewing for Markdown, HTML, and raster images in Web Shell by correctly classifying them before generic document handling. ([#9760](https://github.com/QwenLM/qwen-code/pull/9760)) by @ytahdn
- fix(daemon): keep restored ask_user_question valid after load ([#9763](https://github.com/QwenLM/qwen-code/pull/9763)) by @doudouOUC
- Public GitHub extensions now work on systems with Git older than 2.37 by resolving refs to immutable commits and downloading via the secure archive path instead of native Git. ([#9690](https://github.com/QwenLM/qwen-code/pull/9690)) by @yiliang114
- The review workflow now repairs permissions and retries before failing to clean up leftover worktrees, ensuring jobs do not fail due to removal errors. ([#9748](https://github.com/QwenLM/qwen-code/pull/9748)) by @wenshao
- Session title echo comparisons now use symmetric normalization for both candidate and example titles to prevent false mismatches. ([#9809](https://github.com/QwenLM/qwen-code/pull/9809)) by @yiliang114
- Fixed a React dev-mode memory leak in Web Shell by capping performance.measure accumulation and clearing the timeline every 16,384 entries. ([#9770](https://github.com/QwenLM/qwen-code/pull/9770)) by @wenshao
- The DingTalk channel now correctly parses forwarded chat records and includes their titles and summaries in the agent's context. ([#9339](https://github.com/QwenLM/qwen-code/pull/9339)) by @qqqys
- Web Shell now renders bold text correctly when emphasis markers are adjacent to CJK punctuation by adding the remark-cjk-friendly plugin. ([#9457](https://github.com/QwenLM/qwen-code/pull/9457)) by @cactuser-Lu
- Updates the settings schema to accept prompt hooks with prompt and model fields, aligning VS Code validation with runtime behavior. ([#8779](https://github.com/QwenLM/qwen-code/pull/8779)) by @zjunothing
- Adds a read-only reasoning effort preview for the qwen3.8-max model in WebShell welcome state before session creation. ([#9599](https://github.com/QwenLM/qwen-code/pull/9599)) by @callmeYe
- Enables Vertex AI authentication using Application Default Credentials when a Google Cloud project is configured without an API key. ([#9017](https://github.com/QwenLM/qwen-code/pull/9017)) by @axiom-of-choice
- Updates the workflow size baseline for cd-cua-driver.yml to prevent CI failures caused by its increased shipped file size. ([#9822](https://github.com/QwenLM/qwen-code/pull/9822)) by @wenshao
- Clears the tool display list immediately before invoking the completion callback to prevent duplicate rendering in the TUI. ([#9602](https://github.com/QwenLM/qwen-code/pull/9602)) by @qwen-code-dev-bot
- Normalizes Windows drive-letter casing in MCP approval keys to ensure consistent server recognition between CLI and VS Code. ([#9779](https://github.com/QwenLM/qwen-code/pull/9779)) by @zhou2024NAU
- File reading now validates image content via magic bytes before trusting extensions, preventing text files with image extensions from being misclassified. ([#9113](https://github.com/QwenLM/qwen-code/pull/9113)) by @rbalachandar
- Session exports on Windows now correctly preserve drive-letter paths in file links, allowing them to open locally instead of failing in the browser. ([#8953](https://github.com/QwenLM/qwen-code/pull/8953)) by @yefuyou
- The CLI input box border now adapts to terminal resizing by truncating long titles, preventing layout overflow and row jitter. ([#8991](https://github.com/QwenLM/qwen-code/pull/8991)) by @tlysanhuo
- Background agent notifications now include counts of remaining active agents for the same owner to improve coordination status visibility. ([#9018](https://github.com/QwenLM/qwen-code/pull/9018)) by @tao943
- Reasoning effort tiers are now automatically capped to the maximum level supported by each specific model endpoint to prevent request errors. ([#9501](https://github.com/QwenLM/qwen-code/pull/9501)) by @harjothkhara
- Microphone permission checks now occur only when recording starts rather than during voice warmup, preventing unnecessary early permission prompts. ([#8912](https://github.com/QwenLM/qwen-code/pull/8912)) by @Nas01010101
- Fixed loop detection to halt turns when the model repeats long verbatim blocks in content or reasoning streams. ([#9668](https://github.com/QwenLM/qwen-code/pull/9668)) by @yiliang114
- Secured the review process by ensuring the verified git identity remains consistent across all residue probe commands. ([#9742](https://github.com/QwenLM/qwen-code/pull/9742)) by @wenshao
- Fixed an issue where nested sub-agent approval requests were not surfaced to the UI, causing background agents to hang. ([#9793](https://github.com/QwenLM/qwen-code/pull/9793)) by @wenshao
- Ensured agent launch failures now correctly populate the error field to be reported as failed tool calls. ([#9519](https://github.com/QwenLM/qwen-code/pull/9519)) by @yiliang114
- Prevented ghost shutdown pending states by gating task assignment during teammate shutdown request processing. ([#9550](https://github.com/QwenLM/qwen-code/pull/9550)) by @AaronZ345
- Cached fork snapshots are now isolated by session ID to prevent cross-session data leakage during background reads. ([#9471](https://github.com/QwenLM/qwen-code/pull/9471)) by @tomsen02
- Evidence catalog previews are now capped at 240 UTF-8 bytes instead of characters to prevent Goal failures in non-ASCII languages. ([#9835](https://github.com/QwenLM/qwen-code/pull/9835)) by @qqqys
- Fixed text duplication in WSL terminals by skipping the redraw optimizer when running under ConPTY. ([#7897](https://github.com/QwenLM/qwen-code/pull/7897)) by @C0d3N1nja97342
- Fixed token count tracking to invalidate data when the active model route changes, ensuring accurate session limits and compression banners. ([#9506](https://github.com/QwenLM/qwen-code/pull/9506)) by @yiliang114
- Bounded conditional-close refusal holds to a 1,024-hold per-Session limit to prevent oversized responses from breaking cache retention. ([#9820](https://github.com/QwenLM/qwen-code/pull/9820)) by @doudouOUC
- Enabled workflow reapproval after hook bounces by making approval handling incarnation-aware and preventing stale events from affecting newer instances. ([#9547](https://github.com/QwenLM/qwen-code/pull/9547)) by @AaronZ345
- Fixed debug log routing in daemon mode to use async-local session IDs, preventing logs from different sessions being written to the same file. ([#9538](https://github.com/QwenLM/qwen-code/pull/9538)) by @tomsen02
- Added support for per-provider streamIdleTimeoutMs settings to handle varying latency requirements across different model providers. ([#9795](https://github.com/QwenLM/qwen-code/pull/9795)) by @yu-xin-c
- Fixes memory management by allowing forget operations to scan the same uncapped document universe as recall, preventing stale entries from persisting. ([#9530](https://github.com/QwenLM/qwen-code/pull/9530)) by @harjothkhara
- fix(core): make team shutdown a leader-only tool ([#9401](https://github.com/QwenLM/qwen-code/pull/9401)) by @yiliang114
- CI now moves undeletable workspace residue aside via rename instead of failing when standard deletion methods encounter permission issues. ([#9868](https://github.com/QwenLM/qwen-code/pull/9868)) by @wenshao
- Live task bridge operations now consistently use canonical lowercase UUIDs to prevent session lookup failures caused by case mismatches. ([#9819](https://github.com/QwenLM/qwen-code/pull/9819)) by @doudouOUC
- fix(core): map OpenAI-compatible finish_reason case-insensitively ([#9884](https://github.com/QwenLM/qwen-code/pull/9884)) by @yiliang114
- After retry exhaustion, the system now accepts quiet model completions following a tool result instead of aborting the run with an API error. ([#9196](https://github.com/QwenLM/qwen-code/pull/9196)) by @yiliang114
- Added stream-json to the allowed values for the output.format setting in the schema, ensuring VS Code settings match the CLI runtime capabilities. ([#8966](https://github.com/QwenLM/qwen-code/pull/8966)) by @harjothkhara
- The system now validates completed Anthropic tool arguments as strict JSON objects, rejecting malformed inputs to prevent execution of invalid calls. ([#9013](https://github.com/QwenLM/qwen-code/pull/9013)) by @tlysanhuo
- Fixed CI to wipe only A/B checkout directories instead of the entire workspace, preventing 900 MB git history re-downloads and runner hangs. ([#9228](https://github.com/QwenLM/qwen-code/pull/9228)) by @qwen-code-dev-bot
- Disabled the default permission-response timeout so requests remain pending until user decision, while still supporting explicit timeouts via --permission-response-timeout-ms. ([#9933](https://github.com/QwenLM/qwen-code/pull/9933)) by @doudouOUC
- Removed unsupported uniqueItems constraints from function schemas for OpenAI-compatible requests to prevent DashScope endpoint rejections. ([#9869](https://github.com/QwenLM/qwen-code/pull/9869)) by @qqqys
- Unified Goal continuation prompts across all interfaces with a guarded JSON block to prevent prompt injection and ensure objective consistency. ([#9834](https://github.com/QwenLM/qwen-code/pull/9834)) by @qqqys
- Banned unexecuted mutation claims in coverage briefs, requiring unrun mutations to be labeled as hypotheses with witness notes. ([#9923](https://github.com/QwenLM/qwen-code/pull/9923)) by @wenshao
- Downgraded workflow-size ratchet failures to warnings when the PR did not modify the grown file, preventing false positives from baseline changes. ([#9931](https://github.com/QwenLM/qwen-code/pull/9931)) by @wenshao
- Reduces rendering jank in Web Shell by keeping streamed thinking text out of the top-level render path and unmounting collapsed tool details. ([#9914](https://github.com/QwenLM/qwen-code/pull/9914)) by @ytahdn
- Neutralizes both modern ::name:: and legacy ##[name] workflow commands in autofix stdout echoes to prevent injection attacks in job logs. ([#9871](https://github.com/QwenLM/qwen-code/pull/9871)) by @wenshao
- Compiles workflow scripts before registering runs to ensure invalid scripts fail cleanly without creating phantom rows or telemetry events. ([#9873](https://github.com/QwenLM/qwen-code/pull/9873)) by @qqqys
- Repairs persisted session lifecycle operations to handle empty, malformed, or orphaned transcript files while returning conflicts as per-session errors. ([#9626](https://github.com/QwenLM/qwen-code/pull/9626)) by @doudouOUC
- The CLI now gracefully handles unreadable prompt files by logging a warning and using the default rewrite prompt instead of crashing. ([#9753](https://github.com/QwenLM/qwen-code/pull/9753)) by @yiliang114
- Goal ownership now hydrates independently from session metadata, allowing Slash commands to load faster without waiting for slower metadata requests. ([#9977](https://github.com/QwenLM/qwen-code/pull/9977)) by @ytahdn
- The /goal resume command now correctly resumes evidence-limited Goals by resetting the evidence cursor while preserving objective and revision data. ([#9840](https://github.com/QwenLM/qwen-code/pull/9840)) by @qqqys
- Restricts Git credential configuration to scoped operations initiated by Qwen Code, ensuring credentials remain isolated from URLs, logs, and environment variables. ([#9870](https://github.com/QwenLM/qwen-code/pull/9870)) by @callmeYe
- Ensures branched sessions inherit the source session's display name with numeric suffixes instead of random UUIDs, improving session recognition and consistency. ([#9764](https://github.com/QwenLM/qwen-code/pull/9764)) by @water-in-stone
- Fixes telemetry aggregation errors during failed session swaps by using explicit transactions to prevent inflated usage records from replayed history. ([#9844](https://github.com/QwenLM/qwen-code/pull/9844)) by @yiliang114
- Corrects QQ Bot cron message handling by tracking active prompts in a dedicated set instead of relying on unreliable stream state indicators. ([#9971](https://github.com/QwenLM/qwen-code/pull/9971)) by @yiliang114
- fix(cli): mark estimated compression token counts in banners ([#9568](https://github.com/QwenLM/qwen-code/pull/9568)) by @yiliang114
- Ensures OpenRouter requests explicitly disable reasoning features when configured off, by emitting the native reasoning parameter in the API payload. ([#9758](https://github.com/QwenLM/qwen-code/pull/9758)) by @yiliang114
- fix(core): validate skill commands against the live provider to survive late attach ([#9824](https://github.com/QwenLM/qwen-code/pull/9824)) by @yiliang114
- fix(cli): keep in-flight tool calls pending during live session replay ([#9705](https://github.com/QwenLM/qwen-code/pull/9705)) by @yiliang114
- fix(core): reject unverifiable validated read inodes ([#9857](https://github.com/QwenLM/qwen-code/pull/9857)) by @AaronZ345
- fix(review): the sandbox default named an image that does not exist ([#9972](https://github.com/QwenLM/qwen-code/pull/9972)) by @wenshao
- fix(web-shell): localize vision bridge notices ([#10003](https://github.com/QwenLM/qwen-code/pull/10003)) by @ytahdn
- fix(web-shell): allow reasoning selection before session creation ([#10008](https://github.com/QwenLM/qwen-code/pull/10008)) by @callmeYe
- fix(core): subordinate the coordinate skill's teammate count to the configured cap ([#9403](https://github.com/QwenLM/qwen-code/pull/9403)) by @yiliang114
- fix: repair the Windows and macOS test lane failures ([#9728](https://github.com/QwenLM/qwen-code/pull/9728)) by @wenshao
- fix(ci): give the macOS and Windows lanes a trigger again ([#9370](https://github.com/QwenLM/qwen-code/pull/9370)) by @wenshao
- fix(core): make permissions.allow restrict the tool schemas sent to the model ([#9829](https://github.com/QwenLM/qwen-code/pull/9829)) by @yiliang114
- fix(webui): preserve hydrated Goal state during event startup ([#10012](https://github.com/QwenLM/qwen-code/pull/10012)) by @ytahdn
- fix(cli): graft the review anchor forward across fail-closed rounds ([#9932](https://github.com/QwenLM/qwen-code/pull/9932)) by @wenshao
- fix(live): restore Live Host after desktop removal ([#9994](https://github.com/QwenLM/qwen-code/pull/9994)) by @yiliang114
- fix(goal): cite this turn's delivered output instead of refusing over it ([#9880](https://github.com/QwenLM/qwen-code/pull/9880)) by @qqqys
- fix(serve): let channel workers reach TLS-enabled daemons ([#9392](https://github.com/QwenLM/qwen-code/pull/9392)) by @qqqys
- fix(cli): drop duplicate fake properties breaking the main build ([#10022](https://github.com/QwenLM/qwen-code/pull/10022)) by @yiliang114
- fix(core): register report_findings in the permission alias table ([#10033](https://github.com/QwenLM/qwen-code/pull/10033)) by @yiliang114
- fix(cli): preserve bridge timeouts for mid-turn media ([#9995](https://github.com/QwenLM/qwen-code/pull/9995)) by @ytahdn
- fix(mcp): recover restarted HTTP MCP servers in-session and in CLI ([#9962](https://github.com/QwenLM/qwen-code/pull/9962)) by @yiliang114
- fix(core): sync loaded-skill state with history eviction ([#9500](https://github.com/QwenLM/qwen-code/pull/9500)) by @ZijianZhang989
- fix(core): preserve images for multimodal DeepSeek ([#9854](https://github.com/QwenLM/qwen-code/pull/9854)) by @shenyankm
- fix(ci): yield the event loop between script tests to avoid vitest RPC timeouts (#10037) ([#10050](https://github.com/QwenLM/qwen-code/pull/10050)) by @qwen-code-dev-bot
- fix(vscode): sync companion token limits ([#9850](https://github.com/QwenLM/qwen-code/pull/9850)) by @AaronZ345
- fix(ui): suppress duplicate identical TodoList panels in a single turn ([#9692](https://github.com/QwenLM/qwen-code/pull/9692)) by @PratikWayase
- fix(ci): retry sandbox image builds and file an issue when a release build fails ([#9916](https://github.com/QwenLM/qwen-code/pull/9916)) by @yiliang114
- fix(web-shell): constrain responsive sidebar drawer ([#10020](https://github.com/QwenLM/qwen-code/pull/10020)) by @dreamWB
- fix(core): dedupe hierarchical memory files by canonical identity ([#9600](https://github.com/QwenLM/qwen-code/pull/9600)) by @yiliang114
- fix(cua-driver): support sandboxed Windows SDK clients ([#10120](https://github.com/QwenLM/qwen-code/pull/10120)) by @LaZzyMan
- fix(node-repl): make package verification idempotent ([#10133](https://github.com/QwenLM/qwen-code/pull/10133)) by @LaZzyMan
- fix(review): give cancelled runs an accurate fallback body instead of the failure comment ([#10114](https://github.com/QwenLM/qwen-code/pull/10114)) by @wenshao
- fix(cua-driver): synchronize release version marker ([#10135](https://github.com/QwenLM/qwen-code/pull/10135)) by @LaZzyMan
- fix(core): keep allowlist-uncovered tools registered as deferred instead of removing them (#10075) ([#10082](https://github.com/QwenLM/qwen-code/pull/10082)) by @yiliang114
- fix(daemon): Persist empty sessions before scheduled-task binding ([#10144](https://github.com/QwenLM/qwen-code/pull/10144)) by @doudouOUC
- fix(channels): Make same-chat delivery session-aware ([#10145](https://github.com/QwenLM/qwen-code/pull/10145)) by @doudouOUC
### Performance
- Terminal virtual scrolling now renders at up to 60 FPS, eliminating choppiness and improving scroll smoothness in large PTY windows compared to the previous 30 FPS cap. ([#9681](https://github.com/QwenLM/qwen-code/pull/9681)) by @DragonnZhang
### Documentation
- Clarifies documentation by explicitly naming axes when referring to "rank 3" to resolve ambiguity between trimming and keeping operations. ([#9759](https://github.com/QwenLM/qwen-code/pull/9759)) by @wenshao
- docs(agent): clarify parameter preconditions ([#9580](https://github.com/QwenLM/qwen-code/pull/9580)) by @tao943
- Corrected the VS Code extension README to state the actual minimum required version of 1.96.0 instead of 1.85.0. ([#9852](https://github.com/QwenLM/qwen-code/pull/9852)) by @AaronZ345
- docs(core): fix goal judge timeout unit ([#9861](https://github.com/QwenLM/qwen-code/pull/9861)) by @AaronZ345
- Updated the ReadFile tool documentation to reference the truncateToolOutputLines setting for the default paging limit instead of a hardcoded line count. ([#9863](https://github.com/QwenLM/qwen-code/pull/9863)) by @AaronZ345
- Fixed TypeScript SDK timeout examples to use the correct query({ prompt, options }) factory signature instead of the outdated positional argument format. ([#9867](https://github.com/QwenLM/qwen-code/pull/9867)) by @AaronZ345
- docs: consolidate assorted documentation corrections ([#9855](https://github.com/QwenLM/qwen-code/pull/9855)) by @AaronZ345
### Internal Changes
- Migrated autofix prose to a design record to reduce workflow file size and implemented a ratchet mechanism to limit future growth visibility in reviews. ([#9677](https://github.com/QwenLM/qwen-code/pull/9677)) by @wenshao
- Adds tests confirming subagent registries exclude MCP instructions, ensuring buildMcpServerInstructionsReminder remains safe without production code changes. ([#9720](https://github.com/QwenLM/qwen-code/pull/9720)) by @wenshao
- Enforced architectural boundaries by moving domain-coupled modules out of the CLI utils leaf layer and adding an ESLint rule to prevent upward imports. ([#9737](https://github.com/QwenLM/qwen-code/pull/9737)) by @yiliang114
- Refactors ACP skill management by extracting source acquisition and mutation logic into cohesive internal modules. ([#8865](https://github.com/QwenLM/qwen-code/pull/8865)) by @callmeYe
- Image generation now supports MiniMax endpoints by using the correct request schema and handling both URL and base64 responses. ([#8322](https://github.com/QwenLM/qwen-code/pull/8322)) by @octo-patch
- Refactored Goal continuation prompts to use a single core renderer for consistent output across all interfaces. ([#9581](https://github.com/QwenLM/qwen-code/pull/9581)) by @qqqys
- The review skill manifest is split into a core body and verdict-gated reference files to optimize loading based on posting status. ([#9804](https://github.com/QwenLM/qwen-code/pull/9804)) by @wenshao
- chore(ci): refresh the core issue-owner pool ([#9808](https://github.com/QwenLM/qwen-code/pull/9808)) by @yiliang114
- Refactors core utils to be a strict leaf layer with no runtime dependencies on other core modules, ensuring cleaner architectural boundaries. ([#9778](https://github.com/QwenLM/qwen-code/pull/9778)) by @yiliang114
- Centralizes approval mode contracts across core, CLI, and SDKs to ensure consistent validation and prevent silent mismatches in future updates. ([#9796](https://github.com/QwenLM/qwen-code/pull/9796)) by @yiliang114
- Establishes explicit ownership for derived Config instances via a new deriveConfig factory boundary and guards for lifecycle mutations. ([#8100](https://github.com/QwenLM/qwen-code/pull/8100)) by @yiliang114
- ACP cron tests now terminate the entire CLI process tree during cleanup to prevent directory deletion errors on POSIX and Windows. ([#9815](https://github.com/QwenLM/qwen-code/pull/9815)) by @dream-creator
- Removed unused token-counting and summarized-thinking capabilities from the core content generator interface to simplify provider implementations. ([#9676](https://github.com/QwenLM/qwen-code/pull/9676)) by @DragonnZhang
- Updated the Vertex-mode lazy generator test to use embedContent instead of the removed countTokens method to fix the TypeScript build. ([#9888](https://github.com/QwenLM/qwen-code/pull/9888)) by @AaronZ345
- Skipped the unreadable-ledger test when running as root since permission checks are bypassed, ensuring test stability in root environments. ([#9913](https://github.com/QwenLM/qwen-code/pull/9913)) by @wenshao
- Updated internal comments to correctly explain that replay safety relies on discarding failed attempt turns rather than excluding thought parts from history. ([#8861](https://github.com/QwenLM/qwen-code/pull/8861)) by @ComplexSimply
- Refactored the Core client to remove a runtime import cycle by importing the approval-mode enum directly from its definition. ([#9959](https://github.com/QwenLM/qwen-code/pull/9959)) by @DragonnZhang
- Workspace Git and status routes now share a single trusted-runtime resolver to ensure consistent security validation across all endpoints. ([#9958](https://github.com/QwenLM/qwen-code/pull/9958)) by @DragonnZhang
- chore(github): add @qqqys as core package codeowner ([#9982](https://github.com/QwenLM/qwen-code/pull/9982)) by @yiliang114
- test(cli): teach session-swap telemetry fakes the /branch title prerequisites ([#9998](https://github.com/QwenLM/qwen-code/pull/9998)) by @yiliang114
- refactor(acp-bridge): narrow workspace event capabilities ([#9957](https://github.com/QwenLM/qwen-code/pull/9957)) by @DragonnZhang
- refactor(web-shell): extract shared contexts ([#9954](https://github.com/QwenLM/qwen-code/pull/9954)) by @DragonnZhang
- refactor(web-shell): reuse canonical todo parser ([#9956](https://github.com/QwenLM/qwen-code/pull/9956)) by @DragonnZhang
- refactor(cli): remove unused EnumSelector component ([#9997](https://github.com/QwenLM/qwen-code/pull/9997)) by @qqqys
- ci: take the macOS and Windows lanes off pull requests ([#10059](https://github.com/QwenLM/qwen-code/pull/10059)) by @wenshao
- refactor(core): remove unused LruCache utility ([#9926](https://github.com/QwenLM/qwen-code/pull/9926)) by @AaronZ345
- refactor(cli): remove unused useInputHistoryStore hook ([#10041](https://github.com/QwenLM/qwen-code/pull/10041)) by @qqqys
- chore(ci): migrate CUA npm packages to trusted publishing ([#9836](https://github.com/QwenLM/qwen-code/pull/9836)) by @yiliang114
- chore(cua-driver): bump SDK to 0.20.1 ([#10127](https://github.com/QwenLM/qwen-code/pull/10127)) by @LaZzyMan
## New Contributors
- @cactuser-Lu made their first contribution in [#9457](https://github.com/QwenLM/qwen-code/pull/9457)
- @axiom-of-choice made their first contribution in [#9017](https://github.com/QwenLM/qwen-code/pull/9017)
- @zhou2024NAU made their first contribution in [#9779](https://github.com/QwenLM/qwen-code/pull/9779)
- @octo-patch made their first contribution in [#8322](https://github.com/QwenLM/qwen-code/pull/8322)
- @yefuyou made their first contribution in [#8953](https://github.com/QwenLM/qwen-code/pull/8953)
- @tao943 made their first contribution in [#9018](https://github.com/QwenLM/qwen-code/pull/9018)
- @AaronZ345 made their first contribution in [#9550](https://github.com/QwenLM/qwen-code/pull/9550)
- @yu-xin-c made their first contribution in [#9795](https://github.com/QwenLM/qwen-code/pull/9795)
- @dream-creator made their first contribution in [#9815](https://github.com/QwenLM/qwen-code/pull/9815)
- @zgxkbtl made their first contribution in [#9992](https://github.com/QwenLM/qwen-code/pull/9992)
**Full Changelog**: https://github.com/QwenLM/qwen-code/compare/v0.22.0...v0.22.2