<!-- qwen-release-notes:v2 -->
## 亮点
- Web Shell 通过限制对话记录保留量并裁剪过大的回放内容,防止了内存溢出崩溃。 ([#9303](https://github.com/QwenLM/qwen-code/pull/9303))
- 审查循环现在会通过引用存在重复发现或评论量未减少的具体文件来解释不稳定性。 ([#9461](https://github.com/QwenLM/qwen-code/pull/9461))
- Autofix 现在会审查 PR 方案的简洁性,而不是在超出增长预算时立即停止自动化。 ([#9262](https://github.com/QwenLM/qwen-code/pull/9262))
- Web Shell 在后台 Shell 运行时保持对话轮次展开,仅在完成后折叠。 ([#9632](https://github.com/QwenLM/qwen-code/pull/9632))
- 创建的 GitHub PR 现在会与原始会话绑定,并提供可搜索的列表和侧边栏徽标。 ([#9543](https://github.com/QwenLM/qwen-code/pull/9543))
- 非阻塞斜杠命令现在包含 /theme 和 /tools 等 11 个内置命令,支持在流式传输期间立即执行。 ([#9495](https://github.com/QwenLM/qwen-code/pull/9495))
## 破坏性变更
暂无已知的破坏性变更。
## Web Shell 体验
提升了 Web Shell 在活跃会话期间的稳定性、UI 响应速度、流式传输性能及对话处理能力。
- Web Shell 现在限制守护进程对话记录的保留量并裁剪过大的回放内容,以防止渲染器内存溢出崩溃。 ([#9303](https://github.com/QwenLM/qwen-code/pull/9303))
- Web Shell 在后台 Shell 运行时保持对话轮次展开,仅在完成后折叠。 ([#9632](https://github.com/QwenLM/qwen-code/pull/9632))
- 修复了 Web Shell UI,使子代理提示词可正确滚动,且并行代理组在完成后立即折叠。 ([#9640](https://github.com/QwenLM/qwen-code/pull/9640))
- 为 Web Shell 中的创建组图标添加了悬停提示,以便鼠标用户明确其功能。 ([#9400](https://github.com/QwenLM/qwen-code/pull/9400))
- 更新对话加载指示器以使用守护进程的 hasActivePrompt 状态,确保在长时间工具调用期间即使流式传输处于空闲状态也能保持可见。 ([#9631](https://github.com/QwenLM/qwen-code/pull/9631))
- 防止 Web Shell 工具审批对话框在用户正在可编辑元素中键入时抢占键盘焦点。 ([#9609](https://github.com/QwenLM/qwen-code/pull/9609))
- 通过减少主线程工作并在 15 秒无操作后重新加载过大的对话记录,优化了 Web Shell 的流式传输性能。 ([#9672](https://github.com/QwenLM/qwen-code/pull/9672))
- 基于会话活动而非目标状态来路由普通 Web Shell 消息,以改进轮次处理和插入逻辑。 ([#9667](https://github.com/QwenLM/qwen-code/pull/9667))
## 审查与 Autofix 逻辑
增强了审查循环解释、Autofix 审计、收敛观察及 PR 检测,以减少噪音并提高自动化可靠性。
- 审查循环现在会通过引用存在重复发现或评论量未减少的具体文件,来解释为何未能收敛。 ([#9461](https://github.com/QwenLM/qwen-code/pull/9461))
- Autofix 现在会审查 PR 方案的简洁性和最小化变更,而不是在超出增长预算时立即停止自动化。 ([#9262](https://github.com/QwenLM/qwen-code/pull/9262))
- 修复了 autofix 繁忙 PR 检测逻辑,将其纳入待处理的 workflow 运行,防止因 GitHub 状态报告延迟导致的重复分发。 ([#9662](https://github.com/QwenLM/qwen-code/pull/9662))
- 添加了如 root-cause-triage 和 batch-fixes 等机器可读的收敛观察代码,以支持自动化审查操作。 ([#9623](https://github.com/QwenLM/qwen-code/pull/9623))
- 为审查代理分配了专用的子代理类型,仅包含 6 个必需工具,以减少 token 消耗并提升性能。 ([#9678](https://github.com/QwenLM/qwen-code/pull/9678))
- 调整了审查正文裁剪优先级,在丢弃所有其他建议内容之前,保留关于发现率的收敛观察。 ([#9715](https://github.com/QwenLM/qwen-code/pull/9715))
- 将 /review 技能清理审计扩展至 Aone Code 目标,标记在审查窗口内通过非授权路径提交的评论或编辑。 ([#9633](https://github.com/QwenLM/qwen-code/pull/9633))
## Aone 与 GitHub 集成
修复了 Aone AGit-Flow 缓存、预提交检查及评论处理,同时将 GitHub PR 与会话绑定以提升可追溯性。
- 修复了 Aone AGit-Flow CR 的增量审查缓存问题,改为计算本地 HEAD 之间的差异,而非依赖在修改后可能失效的血缘测试。 ([#9630](https://github.com/QwenLM/qwen-code/pull/9630))
- 在 Aone 目标上启用了 /review 预提交检查,通过路由至 a1 CLI 并比对作者身份,以检测自我 MR 和 HEAD 漂移。 ([#9629](https://github.com/QwenLM/qwen-code/pull/9629))
- 更新了 Aone 目标上 /review --comment 的输出,明确披露已发布的评论未作标记,且仅加入通用讨论门控。 ([#9625](https://github.com/QwenLM/qwen-code/pull/9625))
- 通过可搜索列表和侧边栏徽章将创建的 GitHub PR 绑定到其原始会话,支持每个会话最多 10 个 PR,并按最新优先排序。 ([#9543](https://github.com/QwenLM/qwen-code/pull/9543))
- 修复了 Aone 审查支持,通过直接从平台生成标准 PR 链接,并更新测试计划路由和版本下限。 ([#9624](https://github.com/QwenLM/qwen-code/pull/9624))
- 清理了 Aone 写入路径上延迟的第五轮发现项,确保空的 --host 参数能明确失败,且测试固定点能正确防范回归。 ([#9604](https://github.com/QwenLM/qwen-code/pull/9604))
- 为在较旧 Git 版本上安装公共 GitHub 扩展增加了安全回退路径,通过 GitHub 匿名 API 解析提交并直接下载归档文件。 ([#9680](https://github.com/QwenLM/qwen-code/pull/9680))
## 斜杠命令与工具
扩展了非阻塞斜杠命令,稳定了流式传输期间的菜单选择,并恢复了会话恢复时的交互式 HITL(人在回路)提示。
- 将非阻塞斜杠命令扩展至 /theme 和 /tools 等十一个内置命令,允许在流式传输期间立即执行。 ([#9495](https://github.com/QwenLM/qwen-code/pull/9495))
- 通过防止因无关上下文更新而导致建议搜索不必要地重新运行,稳定了响应流式传输期间的斜杠命令菜单选择。 ([#9508](https://github.com/QwenLM/qwen-code/pull/9508))
- serve:在会话加载/恢复时恢复 ask_user_question HITL ([#9665](https://github.com/QwenLM/qwen-code/pull/9665))
- 将导入范围扩展逻辑集成到 fetch-pr --since 中,以简化增量范围计算并减少令牌使用。 ([#9332](https://github.com/QwenLM/qwen-code/pull/9332))
## 安全与依赖项
修补了高危 CVE,防止沙箱镜像被篡改,并执行更严格的依赖项和工作流安全门控。
- 沙箱镜像现在绑定到其特定的拉取摘要,以防止在解析和消费步骤之间通过可变标签进行篡改。 ([#9527](https://github.com/QwenLM/qwen-code/pull/9527))
- 升级了包括 OpenTelemetry 0.221.x 和 markdown-it 15 在内的依赖项以解决高危 CVE,并将安全门控强制执行硬性拦截。 ([#9584](https://github.com/QwenLM/qwen-code/pull/9584))
- 将 tar、protobufjs、dompurify 和 echarts 等存在漏洞的依赖项升级到已修补版本,以解决 CVE 审计问题,且无需更改代码或包范围。 ([#9703](https://github.com/QwenLM/qwen-code/pull/9703))
- core:将 list_directory 设为可选启用(默认禁用) ([#9424](https://github.com/QwenLM/qwen-code/pull/9424))
## SDK 与权限
更新 Python 和 Java SDK 以支持自动权限模式,使所有客户端库的工具调用审批行为保持一致。
- 更新 Python 和 Java SDK 以支持自动权限模式,使其与 CLI 和 TypeScript SDK 的基于 LLM 的工具调用审批行为对齐。 ([#9003](https://github.com/QwenLM/qwen-code/pull/9003))
## CI 与工件处理
修正了 CI 回退注释,修复了 Office 文件的工件下载逻辑,并通过正确的环境变量稳定了验证门控。
- CI 回退注释不再错误地声称审查失败,即使同一运行之前已成功发布过审查。 ([#9462](https://github.com/QwenLM/qwen-code/pull/9462))
- 修复了工件处理逻辑,将记录的目录扩展为逐文件下载,同时跳过隐藏或垃圾文件,并确保 Office 文档直接下载。 ([#9395](https://github.com/QwenLM/qwen-code/pull/9395))
- 在自动修复验证门控启动中恢复 CI=true,以防止因干净子进程中缺少环境变量而导致的测试不稳定。 ([#9649](https://github.com/QwenLM/qwen-code/pull/9649))
- 将空闲看门狗超时排除在累积超时上限之外,使其不再阻塞 PR,同时在日志中保持可见。 ([#9673](https://github.com/QwenLM/qwen-code/pull/9673))
## 常规修复
解决了多项杂项错误,包括会话恢复竞争条件、审查正文截断以及守护进程状态同步问题。
- 通过优先为 REST、守护进程 ACP 和嵌入式 ACP 加载操作使用活动存储副本,修复了跨归档竞争的会话恢复问题。 ([#9513](https://github.com/QwenLM/qwen-code/pull/9513))
- 移除了 packages/core 中的根 barrel 自导入,并添加了 ESLint 规则以防止循环依赖并强制执行架构边界。 ([#9635](https://github.com/QwenLM/qwen-code/pull/9635))
- 重构了 acp-integration 和 serve 内部实现以强制执行依赖边界,且未对用户行为造成预期改变。 ([#9144](https://github.com/QwenLM/qwen-code/pull/9144))
- 将 push-and-report 工作流逻辑移至单独的 shell 脚本中,在保持执行安全性的同时减小 YAML 体积。 ([#9653](https://github.com/QwenLM/qwen-code/pull/9653))
- 在所有九个 CLI 区域设置字典中添加了翻译后的 Unset 条目,以确保跨语言设置对话框显示一致。 ([#9714](https://github.com/QwenLM/qwen-code/pull/9714))
- review:报告驱动服务实际绑定的地址 ([#9655](https://github.com/QwenLM/qwen-code/pull/9655))
## 其他更改
- Release CI 现在在依赖安装期间禁用安装脚本,并要求核心维护者批准 security-checks 工作流更改。 ([#9577](https://github.com/QwenLM/qwen-code/pull/9577))
- 更正了工作流注释,准确说明自托管 ECS 池支持容器运行时执行。 ([#9575](https://github.com/QwenLM/qwen-code/pull/9575))
- 记录了 autofix 的新设计,将可信发布步骤与不受信任的代码执行隔离,以增强安全性。 ([#9525](https://github.com/QwenLM/qwen-code/pull/9525))
- 记录了内联终端图像预览的渲染方式,包括限制、回退机制以及会话恢复行为。 ([#8656](https://github.com/QwenLM/qwen-code/pull/8656))
- 记录了实验性 Session Workflow 设置,涵盖其默认状态、实时更新以及 Web Shell 展示。 ([#8554](https://github.com/QwenLM/qwen-code/pull/8554))
- 更新文档以明确 autofix 检查严格基于补丁文本,并概述 issue-autofix 的序列约束。 ([#9652](https://github.com/QwenLM/qwen-code/pull/9652))
- autofix: 添加 /takeover from N 的操作员指南 ([#9622](https://github.com/QwenLM/qwen-code/pull/9622))
- 更正 autofix round-seed 指南,明确任何前导空白字符(包括空格、制表符或换行符)都会导致命令无法识别。 ([#9663](https://github.com/QwenLM/qwen-code/pull/9663))
- 记录了按执行机制分类的架构不变量,包括 ESLint 规则、测试和 tsconfig 设置。 ([#9689](https://github.com/QwenLM/qwen-code/pull/9689))
---
## 中文摘要
### 亮点
- Web Shell 通过限制转录保留并修剪过大的重放来防止内存溢出崩溃。 ([#9303](https://github.com/QwenLM/qwen-code/pull/9303))
- 审查循环现在通过指出存在重复问题的文件或评论数量未减少的情况来说明不稳定的原因。 ([#9461](https://github.com/QwenLM/qwen-code/pull/9461))
- Autofix 现在在超出增长预算时审计 PR 方法的简洁性,而不是立即停止自动化。 ([#9262](https://github.com/QwenLM/qwen-code/pull/9262))
- Web Shell 现在会在后台 shell 运行时保持对话轮次展开,仅在完成后折叠。 ([#9632](https://github.com/QwenLM/qwen-code/pull/9632))
- 创建的 GitHub PR 现在绑定到其源会话,提供可搜索列表和侧边栏徽章。 ([#9543](https://github.com/QwenLM/qwen-code/pull/9543))
- 非阻塞斜杠命令现在扩展到 /theme 和 /tools 等十一个内置命令,允许在流式传输期间立即执行。 ([#9495](https://github.com/QwenLM/qwen-code/pull/9495))
### Web Shell 体验优化
提升 Web Shell 的稳定性、UI 响应速度、流式传输性能以及活跃会话期间的对话处理能力。
- Web Shell 现在限制了守护进程转录保留并修剪过大的重放,以防止渲染器内存溢出崩溃。 ([#9303](https://github.com/QwenLM/qwen-code/pull/9303))
- Web Shell 现在会在后台 shell 运行时保持对话轮次展开,仅在完成后折叠。 ([#9632](https://github.com/QwenLM/qwen-code/pull/9632))
- 修复 Web Shell UI,使子代理提示正常滚动且并行代理组在完成后立即折叠。 ([#9640](https://github.com/QwenLM/qwen-code/pull/9640))
- 为 Web Shell 中的 create-group 图标添加悬停提示,以便鼠标用户了解其功能。 ([#9400](https://github.com/QwenLM/qwen-code/pull/9400))
- 更新对话加载指示器以使用 daemon 的 hasActivePrompt 状态,确保在长时间工具调用期间即使流式传输空闲也能保持可见。 ([#9631](https://github.com/QwenLM/qwen-code/pull/9631))
- 防止 Web Shell 工具批准对话框在用户正在可编辑元素中输入时弹出并窃取键盘焦点。 ([#9609](https://github.com/QwenLM/qwen-code/pull/9609))
- 通过减少主线程工作并在空闲 15 秒后重载过大转录文本来优化 Web Shell 流式传输性能。 ([#9672](https://github.com/QwenLM/qwen-code/pull/9672))
- 根据会话活动而非 Goal 状态路由普通 Web Shell 消息,以改进轮次处理和插入逻辑。 ([#9667](https://github.com/QwenLM/qwen-code/pull/9667))
### 审查与自动修复逻辑
增强审查循环解释、Autofix 审计、收敛观察及 PR 检测功能,以减少噪音并提升自动化可靠性。
- 审查循环现在会说明未稳定的原因,指出存在重复问题的文件或评论数量未减少的情况。 ([#9461](https://github.com/QwenLM/qwen-code/pull/9461))
- Autofix 现在在超出增长预算时审计 PR 方法的简洁性和最小变更,而不是立即停止自动化。 ([#9262](https://github.com/QwenLM/qwen-code/pull/9262))
- 修复了 autofix 繁忙 PR 检测逻辑以包含 pending 状态的工作流运行,防止因 GitHub 状态报告延迟导致的重复分发。 ([#9662](https://github.com/QwenLM/qwen-code/pull/9662))
- 添加了 root-cause-triage 和 batch-fixes 等机器可读的收敛观察代码以支持自动化审查操作。 ([#9623](https://github.com/QwenLM/qwen-code/pull/9623))
- 为审查代理分配仅含六个必要工具的专用子代理类型,以减少令牌使用并提升性能。 ([#9678](https://github.com/QwenLM/qwen-code/pull/9678))
- 调整审查正文裁剪优先级,确保在丢弃其他建议内容前保留关于发现率的收敛观察。 ([#9715](https://github.com/QwenLM/qwen-code/pull/9715))
- 将 /review 技能清理审计扩展至 Aone Code 目标,标记在审查窗口内未经过批准路径提交的评论或编辑。 ([#9633](https://github.com/QwenLM/qwen-code/pull/9633))
### Aone 与 GitHub 集成
修复 Aone AGit-Flow 缓存、预提交检查及评论处理,并将 GitHub PR 绑定至会话以提升可追溯性。
- 修复了 Aone AGit-Flow CR 的增量审查缓存,通过计算本地头之间的差异而非依赖修正后失效的祖先测试。 ([#9630](https://github.com/QwenLM/qwen-code/pull/9630))
- 启用了 Aone 目标上的 /review presubmit 功能,通过 a1 CLI 路由并比对作者身份来检测 self-MR 和头部分支漂移。 ([#9629](https://github.com/QwenLM/qwen-code/pull/9629))
- 更新了 Aone 目标上 /review --comment 的输出,明确说明发布的评论未标记且仅加入通用讨论网关。 ([#9625](https://github.com/QwenLM/qwen-code/pull/9625))
- 将创建的 GitHub PR 绑定到其源会话,提供可搜索列表和侧边栏徽章,每会话支持最多 10 个 PR 并按最新优先排序。 ([#9543](https://github.com/QwenLM/qwen-code/pull/9543))
- 修复 Aone 审查支持,直接从平台生成规范 PR 链接,并更新 test-plan 路由和版本下限。 ([#9624](https://github.com/QwenLM/qwen-code/pull/9624))
- 清理 Aone 写入路径上延迟的第五轮发现,确保空 --host 参数明确失败且测试桩正确防护回归。 ([#9604](https://github.com/QwenLM/qwen-code/pull/9604))
- 为旧版 Git 添加安全回退路径,通过 GitHub 匿名 API 解析提交并直接下载归档,以安装公共 GitHub 扩展。 ([#9680](https://github.com/QwenLM/qwen-code/pull/9680))
### 斜杠命令与工具
扩展非阻塞斜杠命令,稳定流式传输期间的菜单选择,并在会话恢复时还原交互式 HITL 提示。
- 将非阻塞斜杠命令扩展到 /theme 和 /tools 等十一个内置命令,允许在流式传输期间立即执行。 ([#9495](https://github.com/QwenLM/qwen-code/pull/9495))
- 通过防止因无关上下文更新而重新运行建议搜索,稳定响应流式传输时的斜杠命令菜单选择。 ([#9508](https://github.com/QwenLM/qwen-code/pull/9508))
- serve: 在会话加载/恢复时还原 ask_user_question HITL ([#9665](https://github.com/QwenLM/qwen-code/pull/9665))
- 将导入扩展逻辑集成到 fetch-pr --since 中,以简化增量范围计算并减少 token 使用量。 ([#9332](https://github.com/QwenLM/qwen-code/pull/9332))
### 安全与依赖项
修补高危 CVE 漏洞,防止沙箱镜像被篡改,并执行更严格的依赖项与工作流安全网关。
- 沙箱镜像现在绑定到其特定的拉取摘要,以防止在解析和使用步骤之间通过可变标签进行篡改。 ([#9527](https://github.com/QwenLM/qwen-code/pull/9527))
- 升级了 OpenTelemetry 0.221.x 和 markdown-it 15 等依赖以修复高危 CVE,并将安全网关设为强制拦截。 ([#9584](https://github.com/QwenLM/qwen-code/pull/9584))
- 提升 tar、protobufjs、dompurify 和 echarts 等易受攻击依赖项至修补版本,以解决 CVE 审计问题,无需更改代码或包范围。 ([#9703](https://github.com/QwenLM/qwen-code/pull/9703))
- core: 将 list_directory 设为可选(默认禁用) ([#9424](https://github.com/QwenLM/qwen-code/pull/9424))
### SDK 与权限管理
更新 Python 和 Java SDK 以支持 auto 权限模式,统一所有客户端库的工具调用审批行为。
- 更新 Python 和 Java SDK 以支持 auto 权限模式,使其与 CLI 和 TypeScript SDK 在基于 LLM 的工具调用审批上保持一致。 ([#9003](https://github.com/QwenLM/qwen-code/pull/9003))
### CI 与工件处理
修正 CI 回退评论,修复 Office 文件的工件下载逻辑,并通过正确的环境变量稳定验证网关。
- CI 回退评论不再错误地声称审查失败,如果同一运行已成功发布审查。 ([#9462](https://github.com/QwenLM/qwen-code/pull/9462))
- 修复了工件处理逻辑,将目录展开为单文件下载并跳过隐藏文件,同时确保 Office 文档直接下载。 ([#9395](https://github.com/QwenLM/qwen-code/pull/9395))
- 恢复 autofix verification-gate 启动时的 CI=true,防止因清理子进程缺少环境变量导致的测试不稳定。 ([#9649](https://github.com/QwenLM/qwen-code/pull/9649))
- 将空闲看门狗超时排除在累计超时上限之外,使其不再阻塞 PR 但仍保留在日志中。 ([#9673](https://github.com/QwenLM/qwen-code/pull/9673))
### 常规修复
解决包括会话恢复竞争、审查正文裁剪及守护进程状态同步在内的各类杂项问题。
- 修复跨归档竞争的会话恢复,优先在 REST、daemon ACP 和 embedded ACP 加载操作中使用活动存储副本。 ([#9513](https://github.com/QwenLM/qwen-code/pull/9513))
- 移除 packages/core 中的根桶自导入并添加 ESLint 规则,防止循环依赖并强制架构边界。 ([#9635](https://github.com/QwenLM/qwen-code/pull/9635))
- 重构 acp-integration 和 serve 内部结构以强制依赖边界,对用户无预期行为变更。 ([#9144](https://github.com/QwenLM/qwen-code/pull/9144))
- 将 push-and-report 工作流逻辑移至单独的 Shell 脚本,在保持执行安全性的同时减小 YAML 文件体积。 ([#9653](https://github.com/QwenLM/qwen-code/pull/9653))
- 为所有九种 CLI 语言字典添加了 Unset 翻译条目,以确保设置对话框的多语言显示一致性。 ([#9714](https://github.com/QwenLM/qwen-code/pull/9714))
- review: report the address a drive's service actually bound ([#9655](https://github.com/QwenLM/qwen-code/pull/9655))
### 其他变更
- 发布 CI 现在在安装依赖时禁用安装脚本,并需要核心维护者批准 security-checks 工作流的更改。 ([#9577](https://github.com/QwenLM/qwen-code/pull/9577))
- 更正了工作流注释,准确说明自托管 ECS 池支持容器运行时执行。 ([#9575](https://github.com/QwenLM/qwen-code/pull/9575))
- 文档化了 autofix 的新设计,将可信发布步骤与不可信代码执行隔离以增强安全性。 ([#9525](https://github.com/QwenLM/qwen-code/pull/9525))
- 文档化了终端内联图片预览的渲染方式,包括限制、回退机制和会话恢复行为。 ([#8656](https://github.com/QwenLM/qwen-code/pull/8656))
- 文档化了实验性 Session Workflow 设置,涵盖其默认状态、实时更新和 Web Shell 展示方式。 ([#8554](https://github.com/QwenLM/qwen-code/pull/8554))
- 文档更新了 autofix 检查仅源自 patch 文本的说明,并概述了 issue-autofix 的时序约束。 ([#9652](https://github.com/QwenLM/qwen-code/pull/9652))
- autofix: add an operator guide for /takeover from N ([#9622](https://github.com/QwenLM/qwen-code/pull/9622))
- 修正 autofix round-seed 指南,明确任何前导空白(包括空格、制表符或换行)都会导致命令无法识别。 ([#9663](https://github.com/QwenLM/qwen-code/pull/9663))
- 文档化了按执行机制分类的架构不变量,包括 ESLint 规则、测试和 tsconfig 设置。 ([#9689](https://github.com/QwenLM/qwen-code/pull/9689))
<details>
<summary>完整变更列表 (50 个拉取请求)</summary>
### 功能特性
- review: 告知作者为何审查循环未能收敛 ([#9461](https://github.com/QwenLM/qwen-code/pull/9461)) by @wenshao
- web-shell: 后台 shell 运行时保持当前轮次展开 ([#9632](https://github.com/QwenLM/qwen-code/pull/9632)) by @ytahdn
- autofix: 审计该方法,而非在超出增长预算时停止 ([#9262](https://github.com/QwenLM/qwen-code/pull/9262)) by @wenshao
- review: 将单跳导入扩展合并至 fetch-pr --since ([#9332](https://github.com/QwenLM/qwen-code/pull/9332)) by @wenshao
- core: 使 list_directory 为可选开启(默认禁用) ([#9424](https://github.com/QwenLM/qwen-code/pull/9424)) by @DragonnZhang
- cli: 将非阻塞斜杠命令扩展至更多内置命令 ([#9495](https://github.com/QwenLM/qwen-code/pull/9495)) by @DragonnZhang
- review: 披露 Aone 帖子仅加入讨论门控 ([#9625](https://github.com/QwenLM/qwen-code/pull/9625)) by @wenshao
- review: 在预提交阶段检测 Aone 目标上的自提 MR ([#9629](https://github.com/QwenLM/qwen-code/pull/9629)) by @wenshao
- web-shell: 通过侧边栏徽章和搜索将 GitHub PR 绑定至会话 ([#9543](https://github.com/QwenLM/qwen-code/pull/9543)) by @wenshao
- review: 为收敛观察提供机器可读的半部分 ([#9623](https://github.com/QwenLM/qwen-code/pull/9623)) by @wenshao
- review: 报告驱动器服务实际绑定的地址 ([#9655](https://github.com/QwenLM/qwen-code/pull/9655)) by @wenshao
- review: 填补 Aone 剩余缺口 —— composeUrl、测试计划路由、a1 版本下限 ([#9624](https://github.com/QwenLM/qwen-code/pull/9624)) by @wenshao
- serve: 在会话加载/恢复时恢复 ask_user_question 人机协同(HITL) ([#9665](https://github.com/QwenLM/qwen-code/pull/9665)) by @doudouOUC
### 缺陷修复
- ci: 阻止回退评论拒绝其已发布的评审 ([#9462](https://github.com/QwenLM/qwen-code/pull/9462)) by @wenshao
- web-shell: 限制守护进程会话记录保留量,以防止渲染器内存溢出崩溃 ([#9303](https://github.com/QwenLM/qwen-code/pull/9303)) by @wenshao
- autofix: 将沙箱镜像绑定至其拉取的摘要 ([#9527](https://github.com/QwenLM/qwen-code/pull/9527)) by @wenshao
- web-shell: 解决并行代理折叠问题并统一代理详情会话记录 ([#9640](https://github.com/QwenLM/qwen-code/pull/9640)) by @ytahdn
- web-shell: 显示创建群组提示框 ([#9400](https://github.com/QwenLM/qwen-code/pull/9400)) by @deggs7
- artifacts: 将记录的目录扩展为按文件划分的制品 ([#9395](https://github.com/QwenLM/qwen-code/pull/9395)) by @zjgzx1988
- review: 使增量缓存适用于 Aone AGit-Flow CR ([#9630](https://github.com/QwenLM/qwen-code/pull/9630)) by @wenshao
- autofix: 在繁忙 PR 枚举中包含待处理运行 ([#9662](https://github.com/QwenLM/qwen-code/pull/9662)) by @wenshao
- web-shell: 使用守护进程实时状态 hasActivePrompt 作为加载指示器 (#9487) ([#9631](https://github.com/QwenLM/qwen-code/pull/9631)) by @yiliang114
- cli: 在响应流式传输期间保持斜杠菜单选择稳定 ([#9508](https://github.com/QwenLM/qwen-code/pull/9508)) by @yiliang114
- web-shell: 用户输入时不抢占审批焦点 ([#9609](https://github.com/QwenLM/qwen-code/pull/9609)) by @yiliang114
- core: 支持旧版 Git 的公共 GitHub 扩展 ([#9680](https://github.com/QwenLM/qwen-code/pull/9680)) by @yiliang114
- ci: 升级存在漏洞的依赖以解除 CVE 审计阻塞 ([#9703](https://github.com/QwenLM/qwen-code/pull/9703)) by @yiliang114
- review: 在清理操作的绕过触发器中审计 Aone 目标 ([#9633](https://github.com/QwenLM/qwen-code/pull/9633)) by @wenshao
- autofix: 停止将空闲超时计入超时上限 ([#9673](https://github.com/QwenLM/qwen-code/pull/9673)) by @wenshao
- web-shell: 按会话活动路由目标消息 ([#9667](https://github.com/QwenLM/qwen-code/pull/9667)) by @ytahdn
- autofix: 通过 gate 的 env -i 启动传递 CI=true ([#9649](https://github.com/QwenLM/qwen-code/pull/9649)) by @wenshao
- review: 停止优先丢弃收敛观察结果 ([#9715](https://github.com/QwenLM/qwen-code/pull/9715)) by @wenshao
- review: 从 Aone 写入路径中清除延迟的第 5 轮发现 ([#9604](https://github.com/QwenLM/qwen-code/pull/9604)) by @wenshao
- cli: 跨归档竞态条件恢复会话 ([#9513](https://github.com/QwenLM/qwen-code/pull/9513)) by @doudouOUC
- sdk: 支持 "auto" 权限模式 ([#9003](https://github.com/QwenLM/qwen-code/pull/9003)) by @shenyankm
### 性能
- web-shell: 优化流式会话记录渲染 ([#9672](https://github.com/QwenLM/qwen-code/pull/9672)) by @ytahdn
- review: 为评审代理分配独立的子代理类型 ([#9678](https://github.com/QwenLM/qwen-code/pull/9678)) by @wenshao
### 文档
- ci: ECS 池确实运行容器——更正两条声称不运行的注释 ([#9575](https://github.com/QwenLM/qwen-code/pull/9575)) by @wenshao
- autofix: 为携带 PAT 的步骤设计运行器级隔离 ([#9525](https://github.com/QwenLM/qwen-code/pull/9525)) by @wenshao
- 记录内联终端图像预览 ([#8656](https://github.com/QwenLM/qwen-code/pull/8656)) by @DragonnZhang
- 记录会话工作流设置 ([#8554](https://github.com/QwenLM/qwen-code/pull/8554)) by @DragonnZhang
- autofix: 将发布端检查固定至补丁文本 ([#9652](https://github.com/QwenLM/qwen-code/pull/9652)) by @wenshao
- autofix: 添加 /takeover from N 的操作员指南 ([#9622](https://github.com/QwenLM/qwen-code/pull/9622)) by @wenshao
- autofix: 更正关于前导空白的轮次种子指南 ([#9663](https://github.com/QwenLM/qwen-code/pull/9663)) by @wenshao
- 按执行机制对架构不变量进行分类 (#9152) ([#9689](https://github.com/QwenLM/qwen-code/pull/9689)) by @yiliang114
### 内部变更
- chore(ci): 在发布 CI 中禁用安装脚本并保护安全检查工作流 ([#9577](https://github.com/QwenLM/qwen-code/pull/9577)) by @yiliang114
- chore(deps): 清除高危 CVE 基线并加固安全网关 ([#9584](https://github.com/QwenLM/qwen-code/pull/9584)) by @yiliang114
- i18n(cli): 翻译设置对话框中的 Unset ([#9714](https://github.com/QwenLM/qwen-code/pull/9714)) by @yiliang114
- refactor(autofix): 将推送与报告逻辑移出工作流文件 ([#9653](https://github.com/QwenLM/qwen-code/pull/9653)) by @wenshao
- refactor(cli): 保持 acp-integration 关闭 serve 内部实现 (#8084) ([#9144](https://github.com/QwenLM/qwen-code/pull/9144)) by @yiliang114
- refactor(core): 移除根 barrel 自引用并强制执行边界 ([#9635](https://github.com/QwenLM/qwen-code/pull/9635)) by @yiliang114
</details>
## 新贡献者
- @deggs7 在 [#9400](https://github.com/QwenLM/qwen-code/pull/9400) 中首次贡献
**完整更新日志**: https://github.com/QwenLM/qwen-code/compare/v0.21.15...v0.22.0
<!-- qwen-code-dsw-swe-verified:start -->
### SWE-bench 验证
- 状态: **成功**
- 数据集: `swe-bench/swe-bench-verified@2`; 500/500 已完成
- 结果: 380 个已解决, 113 个未解决, 5 个执行错误, 2 个基础设施故障
- 得分: **77.08%**
- 得分分母: 有效评分器结果 (380 + 113 = 493)
- Qwen Code: `v0.22.0` (`1c3a385d9bc8`); 模型 `qwen3.7-plus`
- 运行: `pool-b3c14a381dad4f8f`; 调度工作流: https://github.com/QwenLM/qwen-code/actions/runs/32580293448
- 案例轨迹: `swe-bench-verified-v0.22.0-trajectories.tar.gz` (498 个案例)
<!-- qwen-code-dsw-swe-verified:end -->
<!-- qwen-code-dsw-terminal-bench-2.0:start -->
### Terminal-Bench 2.0
- 状态:**隔离**
- 数据集:`
[email protected]`;89/89 已完成
- 结果:43 已解决,29 未解决,15 执行错误,2 基础设施故障
- 得分:未公布(不可评分或隔离运行)
- 得分分母:有效评分器结果(43 + 29 = 72)
- Qwen Code:`v0.22.0` (`1c3a385d9bc8`);模型 `qwen3.7-plus`
- 运行:`pool-4564557c6b714d59`;触发工作流:https://github.com/QwenLM/qwen-code/actions/runs/32580293448
- 测试用例轨迹:`terminal-bench-2.0-v0.22.0-trajectories.tar.gz`(79 个案例)
<!-- qwen-code-dsw-terminal-bench-2.0:end -->
<!-- qwen-release-notes:v2 -->
## Highlights
- Web Shell prevents out-of-memory crashes by bounding transcript retention and trimming oversized replays. ([#9303](https://github.com/QwenLM/qwen-code/pull/9303))
- Review loops now explain instability by citing specific files with recurring findings or non-shrinking comment volumes. ([#9461](https://github.com/QwenLM/qwen-code/pull/9461))
- Autofix now audits PR approach for simplicity instead of stopping automation immediately upon a growth-budget breach. ([#9262](https://github.com/QwenLM/qwen-code/pull/9262))
- Web Shell keeps conversation turns expanded while background shells run, collapsing them only after completion. ([#9632](https://github.com/QwenLM/qwen-code/pull/9632))
- Created GitHub PRs are now bound to originating sessions with a searchable list and sidebar badge. ([#9543](https://github.com/QwenLM/qwen-code/pull/9543))
- Non-blocking slash commands now include eleven built-ins like /theme and /tools for immediate execution during streaming. ([#9495](https://github.com/QwenLM/qwen-code/pull/9495))
## Breaking Changes
No known breaking changes.
## Web Shell Experience
Improves Web Shell stability, UI responsiveness, streaming performance, and conversation handling during active sessions.
- Web Shell now bounds daemon transcript retention and trims oversized replays to prevent renderer out-of-memory crashes. ([#9303](https://github.com/QwenLM/qwen-code/pull/9303))
- Web Shell now keeps conversation turns expanded while their background shells are running, collapsing them only after completion. ([#9632](https://github.com/QwenLM/qwen-code/pull/9632))
- Fixes web-shell UI so subagent prompts scroll correctly and parallel-agent groups collapse immediately upon completion. ([#9640](https://github.com/QwenLM/qwen-code/pull/9640))
- Adds a hover tooltip to the create-group icon in Web Shell to clarify its function for mouse users. ([#9400](https://github.com/QwenLM/qwen-code/pull/9400))
- Updates the conversation loading indicator to use the daemon's hasActivePrompt state, ensuring it remains visible during long tool calls even when streaming is idle. ([#9631](https://github.com/QwenLM/qwen-code/pull/9631))
- Prevents the Web Shell tool-approval dialog from stealing keyboard focus when it appears while the user is actively typing in an editable element. ([#9609](https://github.com/QwenLM/qwen-code/pull/9609))
- Optimizes Web Shell streaming performance by reducing main-thread work and reloading oversized transcripts after 15 seconds of inactivity. ([#9672](https://github.com/QwenLM/qwen-code/pull/9672))
- Routes ordinary Web Shell messages based on session activity rather than Goal status to improve turn handling and insertion logic. ([#9667](https://github.com/QwenLM/qwen-code/pull/9667))
## Review & Autofix Logic
Enhances review loop explanations, Autofix auditing, convergence observations, and PR detection to reduce noise and improve automation reliability.
- Review loops now explain why they are not settling by citing specific files with recurring findings or comment volumes that are not shrinking. ([#9461](https://github.com/QwenLM/qwen-code/pull/9461))
- Autofix now audits the PR approach for simplicity and minimal change instead of stopping automation immediately upon a growth-budget breach. ([#9262](https://github.com/QwenLM/qwen-code/pull/9262))
- Fixed autofix busy-PR detection to include pending workflow runs, preventing duplicate dispatches caused by GitHub status reporting delays. ([#9662](https://github.com/QwenLM/qwen-code/pull/9662))
- Adds machine-readable convergence observation codes like root-cause-triage and batch-fixes to enable automated review actions. ([#9623](https://github.com/QwenLM/qwen-code/pull/9623))
- Assigns review agents a dedicated subagent type with only six required tools to reduce token usage and improve performance. ([#9678](https://github.com/QwenLM/qwen-code/pull/9678))
- Adjusts review body trimming priority to preserve convergence observations about finding rates until all other advisory content is dropped. ([#9715](https://github.com/QwenLM/qwen-code/pull/9715))
- Extends the /review skill cleanup audit to Aone Code targets, flagging comments or edits made within the review window that were not submitted via the sanctioned path. ([#9633](https://github.com/QwenLM/qwen-code/pull/9633))
## Aone & GitHub Integration
Fixes Aone AGit-Flow caching, presubmit checks, and comment handling while binding GitHub PRs to sessions for better traceability.
- Fixed incremental review caching for Aone AGit-Flow CRs by computing diffs between local heads instead of relying on ancestry tests that fail after amendments. ([#9630](https://github.com/QwenLM/qwen-code/pull/9630))
- Enabled /review presubmit on Aone targets to detect self-MRs and head drift by routing through the a1 CLI and comparing author identity. ([#9629](https://github.com/QwenLM/qwen-code/pull/9629))
- Updated /review --comment output on Aone targets to explicitly disclose that posted comments are unmarked and only join the generic discussion gate. ([#9625](https://github.com/QwenLM/qwen-code/pull/9625))
- Binds created GitHub PRs to their originating sessions with a searchable list and sidebar badge, supporting up to 10 PRs per session with latest-first ordering. ([#9543](https://github.com/QwenLM/qwen-code/pull/9543))
- Fixes Aone review support by generating canonical PR links directly from the platform and updating test-plan routing and version floors. ([#9624](https://github.com/QwenLM/qwen-code/pull/9624))
- Clears deferred Round-5 findings on the Aone write path, ensuring empty --host arguments fail distinctly and test pins correctly guard regressions. ([#9604](https://github.com/QwenLM/qwen-code/pull/9604))
- Adds a secure fallback path for installing public GitHub extensions on older Git versions by resolving commits via GitHub's anonymous API and downloading archives directly. ([#9680](https://github.com/QwenLM/qwen-code/pull/9680))
## Slash Commands & Tools
Expands non-blocking slash commands, stabilizes menu selection during streaming, and restores interactive HITL prompts on session resume.
- Extends non-blocking slash commands to eleven built-ins like /theme and /tools, allowing immediate execution during streaming. ([#9495](https://github.com/QwenLM/qwen-code/pull/9495))
- Stabilizes slash-command menu selection while a response streams by preventing unnecessary re-runs of the suggestion search due to unrelated context updates. ([#9508](https://github.com/QwenLM/qwen-code/pull/9508))
- serve: restore ask_user_question HITL on session load/resume ([#9665](https://github.com/QwenLM/qwen-code/pull/9665))
- Integrates import widening logic into fetch-pr --since to streamline incremental scope calculation and reduce token usage. ([#9332](https://github.com/QwenLM/qwen-code/pull/9332))
## Security & Dependencies
Patches high-severity CVEs, secures sandbox images against tampering, and enforces stricter dependency and workflow security gates.
- The sandbox image is now bound to its specific pulled digest to prevent tampering via mutable tags between resolve and consumption steps. ([#9527](https://github.com/QwenLM/qwen-code/pull/9527))
- Upgraded dependencies including OpenTelemetry 0.221.x and markdown-it 15 to resolve high-severity CVEs and enforced the security gate as a hard block. ([#9584](https://github.com/QwenLM/qwen-code/pull/9584))
- Bumps vulnerable dependencies including tar, protobufjs, dompurify, and echarts to patched versions to resolve CVE audits without changing code or package ranges. ([#9703](https://github.com/QwenLM/qwen-code/pull/9703))
- core: make list_directory opt-in (disabled by default) ([#9424](https://github.com/QwenLM/qwen-code/pull/9424))
## SDKs & Permissions
Updates Python and Java SDKs to support auto permission mode, aligning tool call approval behavior across all client libraries.
- Updates Python and Java SDKs to support the auto permission mode, aligning them with the CLI and TypeScript SDK for LLM-based tool call approval. ([#9003](https://github.com/QwenLM/qwen-code/pull/9003))
## CI & Artifact Handling
Corrects CI fallback comments, fixes artifact download logic for Office files, and stabilizes verification gates with proper environment variables.
- The CI fallback comment no longer incorrectly claims a review failed when the same run successfully posted a review earlier. ([#9462](https://github.com/QwenLM/qwen-code/pull/9462))
- Fixed artifact handling to expand recorded directories into per-file downloads while skipping hidden or junk files, and ensured Office documents download directly. ([#9395](https://github.com/QwenLM/qwen-code/pull/9395))
- Restores CI=true to autofix verification-gate launches to prevent test flakiness caused by missing environment variables in clean child processes. ([#9649](https://github.com/QwenLM/qwen-code/pull/9649))
- Excludes idle watchdog timeouts from the cumulative timeout cap so they no longer block PRs while remaining visible in logs. ([#9673](https://github.com/QwenLM/qwen-code/pull/9673))
## General Fixes
Addresses miscellaneous bugs including session recovery races, review body trimming, and daemon state synchronization issues.
- Fixes session recovery across archive races by prioritizing active storage copies for REST, daemon ACP, and embedded ACP load operations. ([#9513](https://github.com/QwenLM/qwen-code/pull/9513))
- Removes root barrel self-imports in packages/core and adds an ESLint rule to prevent circular dependencies and enforce architecture boundaries. ([#9635](https://github.com/QwenLM/qwen-code/pull/9635))
- Refactors acp-integration and serve internals to enforce dependency boundaries with no intended behavior change for users. ([#9144](https://github.com/QwenLM/qwen-code/pull/9144))
- Moves the push-and-report workflow logic to a separate shell script to reduce YAML size while maintaining execution security. ([#9653](https://github.com/QwenLM/qwen-code/pull/9653))
- Adds translated Unset entries to all nine CLI locale dictionaries for consistent settings dialog display across languages. ([#9714](https://github.com/QwenLM/qwen-code/pull/9714))
- review: report the address a drive's service actually bound ([#9655](https://github.com/QwenLM/qwen-code/pull/9655))
## Other Changes
- Release CI now disables install scripts during dependency installation and requires core maintainer approval for security-checks workflow changes. ([#9577](https://github.com/QwenLM/qwen-code/pull/9577))
- Corrected workflow comments to accurately state that the self-hosted ECS pool supports container runtime execution. ([#9575](https://github.com/QwenLM/qwen-code/pull/9575))
- Documents a new design for autofix that isolates trusted publishing steps from untrusted code execution to enhance security. ([#9525](https://github.com/QwenLM/qwen-code/pull/9525))
- Documents how inline terminal image previews render, including limits, fallbacks, and session-resume behavior. ([#8656](https://github.com/QwenLM/qwen-code/pull/8656))
- Documents the experimental Session Workflow setting, covering its default state, live updates, and Web Shell presentation. ([#8554](https://github.com/QwenLM/qwen-code/pull/8554))
- Documentation updated to clarify that autofix checks are derived strictly from patch text and to outline sequencing constraints for issue-autofix. ([#9652](https://github.com/QwenLM/qwen-code/pull/9652))
- autofix: add an operator guide for /takeover from N ([#9622](https://github.com/QwenLM/qwen-code/pull/9622))
- Corrects the autofix round-seed guide to clarify that any leading whitespace, including spaces, tabs, or newlines, prevents command recognition. ([#9663](https://github.com/QwenLM/qwen-code/pull/9663))
- Documents architectural invariants classified by enforcement mechanism including ESLint rules, tests, and tsconfig settings. ([#9689](https://github.com/QwenLM/qwen-code/pull/9689))
---
## 中文摘要
### 亮点
- Web Shell 通过限制转录保留并修剪过大的重放来防止内存溢出崩溃。 ([#9303](https://github.com/QwenLM/qwen-code/pull/9303))
- 审查循环现在通过指出存在重复问题的文件或评论数量未减少的情况来说明不稳定的原因。 ([#9461](https://github.com/QwenLM/qwen-code/pull/9461))
- Autofix 现在在超出增长预算时审计 PR 方法的简洁性,而不是立即停止自动化。 ([#9262](https://github.com/QwenLM/qwen-code/pull/9262))
- Web Shell 现在会在后台 shell 运行时保持对话轮次展开,仅在完成后折叠。 ([#9632](https://github.com/QwenLM/qwen-code/pull/9632))
- 创建的 GitHub PR 现在绑定到其源会话,提供可搜索列表和侧边栏徽章。 ([#9543](https://github.com/QwenLM/qwen-code/pull/9543))
- 非阻塞斜杠命令现在扩展到 /theme 和 /tools 等十一个内置命令,允许在流式传输期间立即执行。 ([#9495](https://github.com/QwenLM/qwen-code/pull/9495))
### Web Shell 体验优化
提升 Web Shell 的稳定性、UI 响应速度、流式传输性能以及活跃会话期间的对话处理能力。
- Web Shell 现在限制了守护进程转录保留并修剪过大的重放,以防止渲染器内存溢出崩溃。 ([#9303](https://github.com/QwenLM/qwen-code/pull/9303))
- Web Shell 现在会在后台 shell 运行时保持对话轮次展开,仅在完成后折叠。 ([#9632](https://github.com/QwenLM/qwen-code/pull/9632))
- 修复 Web Shell UI,使子代理提示正常滚动且并行代理组在完成后立即折叠。 ([#9640](https://github.com/QwenLM/qwen-code/pull/9640))
- 为 Web Shell 中的 create-group 图标添加悬停提示,以便鼠标用户了解其功能。 ([#9400](https://github.com/QwenLM/qwen-code/pull/9400))
- 更新对话加载指示器以使用 daemon 的 hasActivePrompt 状态,确保在长时间工具调用期间即使流式传输空闲也能保持可见。 ([#9631](https://github.com/QwenLM/qwen-code/pull/9631))
- 防止 Web Shell 工具批准对话框在用户正在可编辑元素中输入时弹出并窃取键盘焦点。 ([#9609](https://github.com/QwenLM/qwen-code/pull/9609))
- 通过减少主线程工作并在空闲 15 秒后重载过大转录文本来优化 Web Shell 流式传输性能。 ([#9672](https://github.com/QwenLM/qwen-code/pull/9672))
- 根据会话活动而非 Goal 状态路由普通 Web Shell 消息,以改进轮次处理和插入逻辑。 ([#9667](https://github.com/QwenLM/qwen-code/pull/9667))
### 审查与自动修复逻辑
增强审查循环解释、Autofix 审计、收敛观察及 PR 检测功能,以减少噪音并提升自动化可靠性。
- 审查循环现在会说明未稳定的原因,指出存在重复问题的文件或评论数量未减少的情况。 ([#9461](https://github.com/QwenLM/qwen-code/pull/9461))
- Autofix 现在在超出增长预算时审计 PR 方法的简洁性和最小变更,而不是立即停止自动化。 ([#9262](https://github.com/QwenLM/qwen-code/pull/9262))
- 修复了 autofix 繁忙 PR 检测逻辑以包含 pending 状态的工作流运行,防止因 GitHub 状态报告延迟导致的重复分发。 ([#9662](https://github.com/QwenLM/qwen-code/pull/9662))
- 添加了 root-cause-triage 和 batch-fixes 等机器可读的收敛观察代码以支持自动化审查操作。 ([#9623](https://github.com/QwenLM/qwen-code/pull/9623))
- 为审查代理分配仅含六个必要工具的专用子代理类型,以减少令牌使用并提升性能。 ([#9678](https://github.com/QwenLM/qwen-code/pull/9678))
- 调整审查正文裁剪优先级,确保在丢弃其他建议内容前保留关于发现率的收敛观察。 ([#9715](https://github.com/QwenLM/qwen-code/pull/9715))
- 将 /review 技能清理审计扩展至 Aone Code 目标,标记在审查窗口内未经过批准路径提交的评论或编辑。 ([#9633](https://github.com/QwenLM/qwen-code/pull/9633))
### Aone 与 GitHub 集成
修复 Aone AGit-Flow 缓存、预提交检查及评论处理,并将 GitHub PR 绑定至会话以提升可追溯性。
- 修复了 Aone AGit-Flow CR 的增量审查缓存,通过计算本地头之间的差异而非依赖修正后失效的祖先测试。 ([#9630](https://github.com/QwenLM/qwen-code/pull/9630))
- 启用了 Aone 目标上的 /review presubmit 功能,通过 a1 CLI 路由并比对作者身份来检测 self-MR 和头部分支漂移。 ([#9629](https://github.com/QwenLM/qwen-code/pull/9629))
- 更新了 Aone 目标上 /review --comment 的输出,明确说明发布的评论未标记且仅加入通用讨论网关。 ([#9625](https://github.com/QwenLM/qwen-code/pull/9625))
- 将创建的 GitHub PR 绑定到其源会话,提供可搜索列表和侧边栏徽章,每会话支持最多 10 个 PR 并按最新优先排序。 ([#9543](https://github.com/QwenLM/qwen-code/pull/9543))
- 修复 Aone 审查支持,直接从平台生成规范 PR 链接,并更新 test-plan 路由和版本下限。 ([#9624](https://github.com/QwenLM/qwen-code/pull/9624))
- 清理 Aone 写入路径上延迟的第五轮发现,确保空 --host 参数明确失败且测试桩正确防护回归。 ([#9604](https://github.com/QwenLM/qwen-code/pull/9604))
- 为旧版 Git 添加安全回退路径,通过 GitHub 匿名 API 解析提交并直接下载归档,以安装公共 GitHub 扩展。 ([#9680](https://github.com/QwenLM/qwen-code/pull/9680))
### 斜杠命令与工具
扩展非阻塞斜杠命令,稳定流式传输期间的菜单选择,并在会话恢复时还原交互式 HITL 提示。
- 将非阻塞斜杠命令扩展到 /theme 和 /tools 等十一个内置命令,允许在流式传输期间立即执行。 ([#9495](https://github.com/QwenLM/qwen-code/pull/9495))
- 通过防止因无关上下文更新而重新运行建议搜索,稳定响应流式传输时的斜杠命令菜单选择。 ([#9508](https://github.com/QwenLM/qwen-code/pull/9508))
- serve: restore ask_user_question HITL on session load/resume ([#9665](https://github.com/QwenLM/qwen-code/pull/9665))
- 将导入扩展逻辑集成到 fetch-pr --since 中,以简化增量范围计算并减少 token 使用量。 ([#9332](https://github.com/QwenLM/qwen-code/pull/9332))
### 安全与依赖项
修补高危 CVE 漏洞,防止沙箱镜像被篡改,并执行更严格的依赖项与工作流安全网关。
- 沙箱镜像现在绑定到其特定的拉取摘要,以防止在解析和使用步骤之间通过可变标签进行篡改。 ([#9527](https://github.com/QwenLM/qwen-code/pull/9527))
- 升级了 OpenTelemetry 0.221.x 和 markdown-it 15 等依赖以修复高危 CVE,并将安全网关设为强制拦截。 ([#9584](https://github.com/QwenLM/qwen-code/pull/9584))
- 提升 tar、protobufjs、dompurify 和 echarts 等易受攻击依赖项至修补版本,以解决 CVE 审计问题,无需更改代码或包范围。 ([#9703](https://github.com/QwenLM/qwen-code/pull/9703))
- core: make list_directory opt-in (disabled by default) ([#9424](https://github.com/QwenLM/qwen-code/pull/9424))
### SDK 与权限管理
更新 Python 和 Java SDK 以支持 auto 权限模式,统一所有客户端库的工具调用审批行为。
- 更新 Python 和 Java SDK 以支持 auto 权限模式,使其与 CLI 和 TypeScript SDK 在基于 LLM 的工具调用审批上保持一致。 ([#9003](https://github.com/QwenLM/qwen-code/pull/9003))
### CI 与工件处理
修正 CI 回退评论,修复 Office 文件的工件下载逻辑,并通过正确的环境变量稳定验证网关。
- CI 回退评论不再错误地声称审查失败,如果同一运行已成功发布审查。 ([#9462](https://github.com/QwenLM/qwen-code/pull/9462))
- 修复了工件处理逻辑,将目录展开为单文件下载并跳过隐藏文件,同时确保 Office 文档直接下载。 ([#9395](https://github.com/QwenLM/qwen-code/pull/9395))
- 恢复 autofix verification-gate 启动时的 CI=true,防止因清理子进程缺少环境变量导致的测试不稳定。 ([#9649](https://github.com/QwenLM/qwen-code/pull/9649))
- 将空闲看门狗超时排除在累计超时上限之外,使其不再阻塞 PR 但仍保留在日志中。 ([#9673](https://github.com/QwenLM/qwen-code/pull/9673))
### 常规修复
解决包括会话恢复竞争、审查正文裁剪及守护进程状态同步在内的各类杂项问题。
- 修复跨归档竞争的会话恢复,优先在 REST、daemon ACP 和 embedded ACP 加载操作中使用活动存储副本。 ([#9513](https://github.com/QwenLM/qwen-code/pull/9513))
- 移除 packages/core 中的根桶自导入并添加 ESLint 规则,防止循环依赖并强制架构边界。 ([#9635](https://github.com/QwenLM/qwen-code/pull/9635))
- 重构 acp-integration 和 serve 内部结构以强制依赖边界,对用户无预期行为变更。 ([#9144](https://github.com/QwenLM/qwen-code/pull/9144))
- 将 push-and-report 工作流逻辑移至单独的 Shell 脚本,在保持执行安全性的同时减小 YAML 文件体积。 ([#9653](https://github.com/QwenLM/qwen-code/pull/9653))
- 为所有九种 CLI 语言字典添加了 Unset 翻译条目,以确保设置对话框的多语言显示一致性。 ([#9714](https://github.com/QwenLM/qwen-code/pull/9714))
- review: report the address a drive's service actually bound ([#9655](https://github.com/QwenLM/qwen-code/pull/9655))
### 其他变更
- 发布 CI 现在在安装依赖时禁用安装脚本,并需要核心维护者批准 security-checks 工作流的更改。 ([#9577](https://github.com/QwenLM/qwen-code/pull/9577))
- 更正了工作流注释,准确说明自托管 ECS 池支持容器运行时执行。 ([#9575](https://github.com/QwenLM/qwen-code/pull/9575))
- 文档化了 autofix 的新设计,将可信发布步骤与不可信代码执行隔离以增强安全性。 ([#9525](https://github.com/QwenLM/qwen-code/pull/9525))
- 文档化了终端内联图片预览的渲染方式,包括限制、回退机制和会话恢复行为。 ([#8656](https://github.com/QwenLM/qwen-code/pull/8656))
- 文档化了实验性 Session Workflow 设置,涵盖其默认状态、实时更新和 Web Shell 展示方式。 ([#8554](https://github.com/QwenLM/qwen-code/pull/8554))
- 文档更新了 autofix 检查仅源自 patch 文本的说明,并概述了 issue-autofix 的时序约束。 ([#9652](https://github.com/QwenLM/qwen-code/pull/9652))
- autofix: add an operator guide for /takeover from N ([#9622](https://github.com/QwenLM/qwen-code/pull/9622))
- 修正 autofix round-seed 指南,明确任何前导空白(包括空格、制表符或换行)都会导致命令无法识别。 ([#9663](https://github.com/QwenLM/qwen-code/pull/9663))
- 文档化了按执行机制分类的架构不变量,包括 ESLint 规则、测试和 tsconfig 设置。 ([#9689](https://github.com/QwenLM/qwen-code/pull/9689))
<details>
<summary>Complete Change List (50 pull requests)</summary>
### Features
- review: tell the author why a review loop is not settling ([#9461](https://github.com/QwenLM/qwen-code/pull/9461)) by @wenshao
- web-shell: keep a turn expanded while its background shell runs ([#9632](https://github.com/QwenLM/qwen-code/pull/9632)) by @ytahdn
- autofix: audit the approach instead of stopping on growth-budget breach ([#9262](https://github.com/QwenLM/qwen-code/pull/9262)) by @wenshao
- review: fold the one-hop import widening into fetch-pr --since ([#9332](https://github.com/QwenLM/qwen-code/pull/9332)) by @wenshao
- core: make list_directory opt-in (disabled by default) ([#9424](https://github.com/QwenLM/qwen-code/pull/9424)) by @DragonnZhang
- cli: extend non-blocking slash commands to more builtins ([#9495](https://github.com/QwenLM/qwen-code/pull/9495)) by @DragonnZhang
- review: disclose that Aone posts join the discussion gate only ([#9625](https://github.com/QwenLM/qwen-code/pull/9625)) by @wenshao
- review: detect self-MR on Aone targets in presubmit ([#9629](https://github.com/QwenLM/qwen-code/pull/9629)) by @wenshao
- web-shell: Bind GitHub PRs to sessions with sidebar badge and search ([#9543](https://github.com/QwenLM/qwen-code/pull/9543)) by @wenshao
- review: give the convergence observation a machine-readable half ([#9623](https://github.com/QwenLM/qwen-code/pull/9623)) by @wenshao
- review: report the address a drive's service actually bound ([#9655](https://github.com/QwenLM/qwen-code/pull/9655)) by @wenshao
- review: close Aone residual gaps — composeUrl, test-plan routing, a1 version floor ([#9624](https://github.com/QwenLM/qwen-code/pull/9624)) by @wenshao
- serve: restore ask_user_question HITL on session load/resume ([#9665](https://github.com/QwenLM/qwen-code/pull/9665)) by @doudouOUC
### Bug Fixes
- ci: stop the fallback comment from denying a review it already posted ([#9462](https://github.com/QwenLM/qwen-code/pull/9462)) by @wenshao
- web-shell: bound daemon transcript retention to stop renderer OOM crashes ([#9303](https://github.com/QwenLM/qwen-code/pull/9303)) by @wenshao
- autofix: bind the sandbox image to its pulled digest ([#9527](https://github.com/QwenLM/qwen-code/pull/9527)) by @wenshao
- web-shell: settle parallel-agents collapse and unify agent detail transcript ([#9640](https://github.com/QwenLM/qwen-code/pull/9640)) by @ytahdn
- web-shell: show create-group tooltip ([#9400](https://github.com/QwenLM/qwen-code/pull/9400)) by @deggs7
- artifacts: expand recorded directories into per-file artifacts ([#9395](https://github.com/QwenLM/qwen-code/pull/9395)) by @zjgzx1988
- review: make the incremental cache work for Aone AGit-Flow CRs ([#9630](https://github.com/QwenLM/qwen-code/pull/9630)) by @wenshao
- autofix: include pending runs in the busy-PR enumeration ([#9662](https://github.com/QwenLM/qwen-code/pull/9662)) by @wenshao
- web-shell: use daemon live-state hasActivePrompt for loading indicator (#9487) ([#9631](https://github.com/QwenLM/qwen-code/pull/9631)) by @yiliang114
- cli: keep slash menu selection stable while a response streams ([#9508](https://github.com/QwenLM/qwen-code/pull/9508)) by @yiliang114
- web-shell: don't steal approval focus while the user is typing ([#9609](https://github.com/QwenLM/qwen-code/pull/9609)) by @yiliang114
- core: support public GitHub extensions with older Git ([#9680](https://github.com/QwenLM/qwen-code/pull/9680)) by @yiliang114
- ci: bump vulnerable dependencies to unblock CVE audit ([#9703](https://github.com/QwenLM/qwen-code/pull/9703)) by @yiliang114
- review: audit Aone targets in cleanup's bypass tripwire ([#9633](https://github.com/QwenLM/qwen-code/pull/9633)) by @wenshao
- autofix: stop counting idle timeouts toward the timeout cap ([#9673](https://github.com/QwenLM/qwen-code/pull/9673)) by @wenshao
- web-shell: route goal messages by session activity ([#9667](https://github.com/QwenLM/qwen-code/pull/9667)) by @ytahdn
- autofix: pass CI=true through the gate's env -i launches ([#9649](https://github.com/QwenLM/qwen-code/pull/9649)) by @wenshao
- review: stop shedding the convergence observation first ([#9715](https://github.com/QwenLM/qwen-code/pull/9715)) by @wenshao
- review: clear the deferred Round-5 findings from the Aone write path ([#9604](https://github.com/QwenLM/qwen-code/pull/9604)) by @wenshao
- cli: Recover sessions across archive races ([#9513](https://github.com/QwenLM/qwen-code/pull/9513)) by @doudouOUC
- sdk: support "auto" permission mode ([#9003](https://github.com/QwenLM/qwen-code/pull/9003)) by @shenyankm
### Performance
- web-shell: optimize streaming transcript rendering ([#9672](https://github.com/QwenLM/qwen-code/pull/9672)) by @ytahdn
- review: give review agents their own subagent type ([#9678](https://github.com/QwenLM/qwen-code/pull/9678)) by @wenshao
### Documentation
- ci: the ECS pool does run containers — correct two comments that say it does not ([#9575](https://github.com/QwenLM/qwen-code/pull/9575)) by @wenshao
- autofix: design runner-level isolation for PAT-bearing steps ([#9525](https://github.com/QwenLM/qwen-code/pull/9525)) by @wenshao
- document inline terminal image previews ([#8656](https://github.com/QwenLM/qwen-code/pull/8656)) by @DragonnZhang
- document the Session Workflow setting ([#8554](https://github.com/QwenLM/qwen-code/pull/8554)) by @DragonnZhang
- autofix: pin the publish-side checks to the patch text ([#9652](https://github.com/QwenLM/qwen-code/pull/9652)) by @wenshao
- autofix: add an operator guide for /takeover from N ([#9622](https://github.com/QwenLM/qwen-code/pull/9622)) by @wenshao
- autofix: correct the round-seed guide on leading whitespace ([#9663](https://github.com/QwenLM/qwen-code/pull/9663)) by @wenshao
- classify architecture invariants by enforcement mechanism (#9152) ([#9689](https://github.com/QwenLM/qwen-code/pull/9689)) by @yiliang114
### Internal Changes
- chore(ci): Disable install scripts in release CI and guard security-checks workflow ([#9577](https://github.com/QwenLM/qwen-code/pull/9577)) by @yiliang114
- chore(deps): Clear high-severity CVE baseline and harden the security gate ([#9584](https://github.com/QwenLM/qwen-code/pull/9584)) by @yiliang114
- i18n(cli): translate Unset in the settings dialog ([#9714](https://github.com/QwenLM/qwen-code/pull/9714)) by @yiliang114
- refactor(autofix): move the push-and-report body out of the workflow file ([#9653](https://github.com/QwenLM/qwen-code/pull/9653)) by @wenshao
- refactor(cli): keep acp-integration off serve internals (#8084) ([#9144](https://github.com/QwenLM/qwen-code/pull/9144)) by @yiliang114
- refactor(core): remove root barrel self-imports and enforce the boundary ([#9635](https://github.com/QwenLM/qwen-code/pull/9635)) by @yiliang114
</details>
## New Contributors
- @deggs7 made their first contribution in [#9400](https://github.com/QwenLM/qwen-code/pull/9400)
**Full Changelog**: https://github.com/QwenLM/qwen-code/compare/v0.21.15...v0.22.0
<!-- qwen-code-dsw-swe-verified:start -->
### SWE-bench Verified
- Status: **SUCCEEDED**
- Dataset: `swe-bench/swe-bench-verified@2`; 500/500 completed
- Results: 380 resolved, 113 unresolved, 5 execution errors, 2 infrastructure failures
- Score: **77.08%**
- Score denominator: valid grader results (380 + 113 = 493)
- Qwen Code: `v0.22.0` (`1c3a385d9bc8`); model `qwen3.7-plus`
- Run: `pool-b3c14a381dad4f8f`; dispatch workflow: https://github.com/QwenLM/qwen-code/actions/runs/32580293448
- Case trajectories: `swe-bench-verified-v0.22.0-trajectories.tar.gz` (498 cases)
<!-- qwen-code-dsw-swe-verified:end -->
<!-- qwen-code-dsw-terminal-bench-2.0:start -->
### Terminal-Bench 2.0
- Status: **QUARANTINED**
- Dataset: `
[email protected]`; 89/89 completed
- Results: 43 resolved, 29 unresolved, 15 execution errors, 2 infrastructure failures
- Score: not published (non-scoreable or quarantined run)
- Score denominator: valid grader results (43 + 29 = 72)
- Qwen Code: `v0.22.0` (`1c3a385d9bc8`); model `qwen3.7-plus`
- Run: `pool-4564557c6b714d59`; dispatch workflow: https://github.com/QwenLM/qwen-code/actions/runs/32580293448
- Case trajectories: `terminal-bench-2.0-v0.22.0-trajectories.tar.gz` (79 cases)
<!-- qwen-code-dsw-terminal-bench-2.0:end -->