← 返回更新日志

Qwen Code v0.21.15

2026-08-20 · GitHub 原文
<!-- qwen-release-notes:v2 --> ## 亮点 - Web Shell 现在支持通过 Composer 或 @ 选择插入文件附件,流式传输性能得到提升,侧边栏实现即时同步。 ([#9405](https://github.com/QwenLM/qwen-code/pull/9405), [#9477](https://github.com/QwenLM/qwen-code/pull/9477), [#9570](https://github.com/QwenLM/qwen-code/pull/9570), [#9533](https://github.com/QwenLM/qwen-code/pull/9533)) - Qwen 混合模型现在提供简单的 Thinking 切换开关以控制推理过程,并且可通过 /model 命令使用稳定的 qwen3.8-max 模型。 ([#9574](https://github.com/QwenLM/qwen-code/pull/9574), [#9383](https://github.com/QwenLM/qwen-code/pull/9383)) - 现在 /review 和 CI 重试支持 --resume 参数,当 PR 头部未移动时可继续中断的审查。 ([#9153](https://github.com/QwenLM/qwen-code/pull/9153)) - 新增支持通过身份验证的 HTTPS Git 扩展安装,并支持可配置的凭据持久化,以安全克隆私有仓库。 ([#9458](https://github.com/QwenLM/qwen-code/pull/9458)) - 工具审批和询问用户对话框现在以与聊天宽度对齐的流式底部面板形式呈现,体验更加融合。 ([#9351](https://github.com/QwenLM/qwen-code/pull/9351)) - 修复了 /rewind 错误丢弃对话历史以及重复的 tool-call ID 导致执行错误的问题。 ([#9331](https://github.com/QwenLM/qwen-code/pull/9331), [#9436](https://github.com/QwenLM/qwen-code/pull/9436)) ## Web Shell 体验 Web Shell 现在具备改进的流式传输性能、统一的文件上传、Goal v3 控制以及实时侧边栏同步功能。 - 通过批量传输转录内容并避免对增长的内容进行昂贵的 Markdown 解析,Web Shell 在长任务中的流式输出响应更快。 ([#9405](https://github.com/QwenLM/qwen-code/pull/9405)) - 通过使用实时状态的活动时间戳来刷新会话最近使用状态并对活动列表排序,无需触发受速率限制的完整目录重新扫描,从而提升 Web Shell 性能。 ([#9476](https://github.com/QwenLM/qwen-code/pull/9476)) - 统一 Web Shell 中的文件上传功能,提供引用或上传选项,持久化存储附件并处理同名文件。 ([#9477](https://github.com/QwenLM/qwen-code/pull/9477)) - Web Shell 侧边栏现在即时同步会话更改(如重命名或删除),并优化了加载指示器的间距。 ([#9533](https://github.com/QwenLM/qwen-code/pull/9533)) - 在解析显示名称后,Web Shell 停止冗余的会话标题目录刷新,减少不必要的网络请求。 ([#9563](https://github.com/QwenLM/qwen-code/pull/9563)) - Web Shell 现在支持通过 Composer 或 @ 选择将文件附件插入当前活跃轮次中,并提供预览和队列管理功能。 ([#9570](https://github.com/QwenLM/qwen-code/pull/9570)) - WebShell 采用 Goal v3 控制,允许通过紧凑的 Composer 行独立管理目标,与聊天消息分离。 ([#9393](https://github.com/QwenLM/qwen-code/pull/9393)) - web-shell:在非安全上下文中回退使用 execCommand 进行复制 ([#9540](https://github.com/QwenLM/qwen-code/pull/9540)) - ui:折叠由历史记录 + 待处理项渲染的重复的 in-flight tool_group ([#9421](https://github.com/QwenLM/qwen-code/pull/9421)) ## 审查与验证 增强审查工作流,支持断点续传、集成 Aone Code、实施更严格的验证规范以及准确的发布量追踪。 - 现在 /review、review run 和 CI 重试支持 --resume 参数,当 PR 头部未移动时可继续中断的审查。 ([#9153](https://github.com/QwenLM/qwen-code/pull/9153)) - 审查账本标记现在记录当前和前几轮发布的行内评论数量,以追踪发布量趋势。 ([#9413](https://github.com/QwenLM/qwen-code/pull/9413)) - 审查验证器现在强制执行来自实时双臂验证的四项运行规范,包括为每一行从全新状态启动有状态目标。 ([#9447](https://github.com/QwenLM/qwen-code/pull/9447)) - review:在源头限制发布量,而不仅限于写入位置 ([#9460](https://github.com/QwenLM/qwen-code/pull/9460)) - review:确保阻断器保留在每条软化路径最终到达的 COMMENT 主体中 ([#9416](https://github.com/QwenLM/qwen-code/pull/9416)) - review:新增 runtime-axis、table-sweep 和 isolation witness 形式 ([#9445](https://github.com/QwenLM/qwen-code/pull/9445)) - 审查验证器探针现在在私有临时工作区运行,以防止与读取共享工作区的审计员发生竞态条件。 ([#9221](https://github.com/QwenLM/qwen-code/pull/9221)) - 审查系统现在验证面向用户的合同文档是否准确匹配已实现的代码行为。 ([#9448](https://github.com/QwenLM/qwen-code/pull/9448)) - /review 技能现在支持在使用 --comment 参数时,通过 a1 CLI 向 Aone Code 发布评论和审批。 ([#9491](https://github.com/QwenLM/qwen-code/pull/9491)) ## 自动修复与 CI 可靠性 解决 GitHub Actions 瓶颈,修复工作流排队死锁,并为自动化代码修复强制执行测试覆盖率。 - 通过对比固定的基础 OID 而非解析 HEAD^1,修复了 flakiness gate 中的 CI 失败问题,防止了持久化池上的间歇性访问错误。([#9464](https://github.com/QwenLM/qwen-code/pull/9464)) - 通过在执行环境清理前计算 git diff,修复了 flake-gate CI 步骤,防止在浅层 merge-ref 对象上出现访问错误。([#9468](https://github.com/QwenLM/qwen-code/pull/9468)) - 将 autonomous-fix 工作流克隆到一个新实体中,以绕过导致运行任务卡在排队状态的 GitHub Actions 后端问题。([#9482](https://github.com/QwenLM/qwen-code/pull/9482)) - 在 autofix 工作流文件中添加注释,强制 GitHub Actions 重新注册已静默停止执行定时和基于事件运行的触发器。([#9479](https://github.com/QwenLM/qwen-code/pull/9479)) - 缩减了 qwen-autofix.yml 工作流文件的大小以保持在 GitHub 的 500 KB 限制以内,恢复了已停止执行的静默失败的自动化修复运行。([#9517](https://github.com/QwenLM/qwen-code/pull/9517)) - shepherd 不再将永久排队且作业数为零的工作流运行计为进行中,防止了阻塞 autofix 循环数小时的死锁。([#9518](https://github.com/QwenLM/qwen-code/pull/9518)) - autofix 现在要求变异探针在提交更改前验证本轮新增的守卫或分支是否已被测试覆盖。([#9578](https://github.com/QwenLM/qwen-code/pull/9578)) - autofix 的发现回复现在具备幂等性,当线程中已存在机器人的相同评论时,将跳过重复发布。([#9463](https://github.com/QwenLM/qwen-code/pull/9463)) - 发布拉取请求现在由专用的机器人账户创建,而非使用 GitHub Actions token,从而允许在限制 Actions 创建 PR 的组织中完成最终化。([#9592](https://github.com/QwenLM/qwen-code/pull/9592)) ## 会话与对话管理 引入了对话隔离原语、隐私保护账本,并修复了压缩期间的历史保留问题。 - 引入了独立对话隔离的原语,实现了确定性的会话身份和经过验证的谱系检查。([#9341](https://github.com/QwenLM/qwen-code/pull/9341)) - 会话现在持久化提示词结果的隐私保护账本,以便在不存储用户内容的前提下实现准确的冷启动对齐。([#9426](https://github.com/QwenLM/qwen-code/pull/9426)) - 修复了 /rewind 在 /compress-fast 后错误丢弃对话历史的问题,通过正确区分基于规则的压缩标记与总结边界实现。([#9331](https://github.com/QwenLM/qwen-code/pull/9331)) - 独立对话原语现在安全地采用并发创建的目录,并为 JSONL 读取器强制执行严格的一致性预算。([#9512](https://github.com/QwenLM/qwen-code/pull/9512)) - 在 ACP 循环检测期间跳过的重复工具结果现在被持久化为终止错误,防止会话恢复后转录回放中缺失工具结果。([#9593](https://github.com/QwenLM/qwen-code/pull/9593)) ## 智能体能力与模型 新增稳定的 qwen3.8-max 模型,简化了 Thinking 开关,启用了钉钉媒体访问,并改进了工具调用处理。 - 将稳定的 qwen3.8-max 模型加入 Token Plan 模型列表,允许用户通过 /model 命令在现有预览版旁选择它。([#9383](https://github.com/QwenLM/qwen-code/pull/9383)) - Qwen 混合模型现在提供简单的 Thinking 开关以控制推理,移除了支持版本的复杂资源投入层级。([#9574](https://github.com/QwenLM/qwen-code/pull/9574)) - 启用钉钉下载并附加引用消息中的媒体,允许智能体检查引用的图片和文件。([#9347](https://github.com/QwenLM/qwen-code/pull/9347)) - 仅当参数匹配时才将重复的提供商工具调用 ID 视为重放,允许参数不同的 ID 冲突正常执行。([#9436](https://github.com/QwenLM/qwen-code/pull/9436)) - 通过内部重试,防止上游快速失败占位响应(如“(请求超时)”)出现在聊天中。([#8938](https://github.com/QwenLM/qwen-code/pull/8938)) - cli:将守护进程的重复工具调用断路器暴露为可见的循环检测停止 ([#9435](https://github.com/QwenLM/qwen-code/pull/9435)) - core:拒绝为命名队友设置 run_in_background: false ([#9433](https://github.com/QwenLM/qwen-code/pull/9433)) - core:明确 list_agents 排除 Agent Team 队友 ([#9432](https://github.com/QwenLM/qwen-code/pull/9432)) ## 扩展与 Git 集成 启用了经过身份验证的 HTTPS Git 安装、扩展状态的批量更新,以及托管终端会话的 PTY 工作器支持。 - 新增支持经过身份验证的 HTTPS Git 扩展安装,支持可配置的凭据持久化,允许通过守护进程安全克隆私有仓库。([#9458](https://github.com/QwenLM/qwen-code/pull/9458)) - 新增批量 API,用于全局或针对特定可信工作区更新最多 100 个扩展的激活状态。([#8788](https://github.com/QwenLM/qwen-code/pull/8788)) - 新增 PTY 工作器支持,以启用带有本地终端主机和经过身份验证的流转发的托管智能体视图会话。([#7800](https://github.com/QwenLM/qwen-code/pull/7800)) ## 可观测性与诊断 暴露了 V8 堆指标,链接了分布式追踪上下文,并将未识别的诊断信息路由到受限的侧信道。 - ACP 子进程现在在守护进程状态中跟踪并报告 V8 旧代堆指标,包括峰值已提交内存和主 GC 计数。 ([#9380](https://github.com/QwenLM/qwen-code/pull/9380)) - 将守护进程 HTTP 请求跨度链接到入站 W3C traceparent 头,以维持连续的分布式追踪上下文。 ([#9391](https://github.com/QwenLM/qwen-code/pull/9391)) - 将未识别的诊断信息路由到受限的侧信道,而不是用调试条目污染主对话块。 ([#9202](https://github.com/QwenLM/qwen-code/pull/9202)) - 网桥现在推进严格单调的会话水印,并通过实时状态 API 中的 BridgeSessionSummary.updatedAt 暴露它。 ([#9396](https://github.com/QwenLM/qwen-code/pull/9396)) ## CLI 与工作流 API 新增上下文文件可见性、结构化的工作流运行时模型,以及通过 a1 CLI 发布评论的支持。 - 为 CLI 新增了一条一次性 INFO 消息,在第一个用户提示上方列出附加的上下文文件,使不可见的系统提示附件在聊天中可见。 ([#8855](https://github.com/QwenLM/qwen-code/pull/8855)) - 暴露用于工作流执行的结构化运行时模型,以记录生命周期事件、持久化状态并支持取消操作。 ([#9034](https://github.com/QwenLM/qwen-code/pull/9034)) - 附件上传现在将文件名作为编码的 URL 查询参数发送,而非自定义头,以防止跨域问题。 ([#9567](https://github.com/QwenLM/qwen-code/pull/9567)) - 当本地元数据确认没有新版本可用时,抑制 Homebrew 更新通知,防止误报。 ([#9502](https://github.com/QwenLM/qwen-code/pull/9502)) ## 其他更改 - 工具审批和询问用户对话框现在作为与聊天宽度对齐的流内底部表单显示,且代理启动对话框默认聚焦于“允许”。 ([#9351](https://github.com/QwenLM/qwen-code/pull/9351)) - 通过将大图像重写为稳定的文本标记,确保图像负载驱逐在聊天历史和分支中保持一致。 ([#9423](https://github.com/QwenLM/qwen-code/pull/9423)) - web-shell:添加转录合同预验证 ([#9388](https://github.com/QwenLM/qwen-code/pull/9388)) - 重构 CLI 内部结构,将用于发现验证的共享辅助函数移至通用工具包,确保审查命令行为一致。 ([#9345](https://github.com/QwenLM/qwen-code/pull/9345)) - 重构审查流水线,在新库模块中仅定义一次认证门槛原子,消除多个文件中的重复谓词逻辑。 ([#9473](https://github.com/QwenLM/qwen-code/pull/9473)) - 重构认证路径验证以使用单一辅助函数,确保原子间路径精确匹配一致。 ([#9484](https://github.com/QwenLM/qwen-code/pull/9484)) - 在 npm publish 命令中添加 `--provenance` 标志,以生成签名证明,验证包源自 CI 流水线。 ([#9532](https://github.com/QwenLM/qwen-code/pull/9532)) - 集中管理 live-task 工具名称和委托提示长度合约的所有权,防止包之间出现静默漂移。 ([#9497](https://github.com/QwenLM/qwen-code/pull/9497)) - 修复了 main 分支上的构建失败问题,该问题由 case-variant delete 测试中缺失的 deleteSessionAttachments mock 引起。 ([#9551](https://github.com/QwenLM/qwen-code/pull/9551)) - E2E 测试现在在遇到瞬态 ENOTEMPTY 错误时重试清理删除操作,以修复定期 cron 作业场景中的不稳定失败。 ([#9559](https://github.com/QwenLM/qwen-code/pull/9559)) - chore(ci):弃用 NPM_TOKEN,改用 npm 可信发布 ([#9552](https://github.com/QwenLM/qwen-code/pull/9552)) - 自动修复限制器现在将 BLOCKED 交接视为有效轮次结果,防止代理停止请求人工干预时出现误报失败。 ([#9297](https://github.com/QwenLM/qwen-code/pull/9297)) - 修复 diff-read 测试夹具以防止双重编码,并确保在 diff 读取失败场景中正确进行门控。 ([#9539](https://github.com/QwenLM/qwen-code/pull/9539)) - 增量审查现在直接从 PR diff 构建其范围,确保每行审查内容与 GitHub 显示匹配,无需事后证明。 ([#9267](https://github.com/QwenLM/qwen-code/pull/9267)) - CI 现在在清理前修复由符号链接或非目录替换的工作区,防止因强化守卫拒绝导致的运行器卡死。 ([#9498](https://github.com/QwenLM/qwen-code/pull/9498)) - serve A/B 测试套件现在可以在请求前将对话记录暂存到磁盘,从而验证之前使用空主目录无法触及的会话状态行为。 ([#9444](https://github.com/QwenLM/qwen-code/pull/9444)) --- ## 中文摘要 ### 亮点 - Web Shell 现支持通过 composer 或 @ 选择插入文件附件,优化了流式输出性能并实现侧边栏即时同步。 ([#9405](https://github.com/QwenLM/qwen-code/pull/9405), [#9477](https://github.com/QwenLM/qwen-code/pull/9477), [#9570](https://github.com/QwenLM/qwen-code/pull/9570), [#9533](https://github.com/QwenLM/qwen-code/pull/9533)) - Qwen 混合模型现提供简单的 Thinking 切换以控制推理,稳定的 qwen3.8-max 模型可通过 /model 选择。 ([#9574](https://github.com/QwenLM/qwen-code/pull/9574), [#9383](https://github.com/QwenLM/qwen-code/pull/9383)) - --resume 标志现支持用于 /review 和 CI 重试,以便在 PR 头部未移动时继续中断的审查。 ([#9153](https://github.com/QwenLM/qwen-code/pull/9153)) - 增加了对带可配置凭据持久性的 authenticated HTTPS Git 扩展安装支持,实现安全克隆私有仓库。 ([#9458](https://github.com/QwenLM/qwen-code/pull/9458)) - 工具审批和询问用户对话框现在作为与聊天宽度对齐的流内底部表单显示,体验更集成。 ([#9351](https://github.com/QwenLM/qwen-code/pull/9351)) - 修复了 /rewind 错误丢弃对话历史以及重复 tool-call ID 导致执行错误的问题。 ([#9331](https://github.com/QwenLM/qwen-code/pull/9331), [#9436](https://github.com/QwenLM/qwen-code/pull/9436)) ### Web Shell 体验 Web Shell 现在具备更优的流式性能、统一文件上传、Goal v3 控制及实时侧边栏同步功能。 - Web Shell 通过批量处理转录交付并避免对增长内容进行昂贵的 Markdown 解析,提升了长任务期间流式输出的响应速度。 ([#9405](https://github.com/QwenLM/qwen-code/pull/9405)) - 通过利用实时状态活动时间戳刷新会话最近性并排序活动列表,提升了 Web Shell 性能,避免了受限的全量目录重新扫描。 ([#9476](https://github.com/QwenLM/qwen-code/pull/9476)) - 统一 Web Shell 中的文件上传,提供引用或上传选项,并持久化存储附件且处理重复文件名。 ([#9477](https://github.com/QwenLM/qwen-code/pull/9477)) - Web Shell 侧边栏现在可立即同步重命名或删除等会话变更,并优化了加载指示器的间距。 ([#9533](https://github.com/QwenLM/qwen-code/pull/9533)) - Web Shell 在解析显示名称后停止多余的会话标题目录刷新,减少不必要的网络请求。 ([#9563](https://github.com/QwenLM/qwen-code/pull/9563)) - Web Shell 现在支持通过 composer 或 @ 选择将文件附件插入进行中轮次,包含预览和队列管理。 ([#9570](https://github.com/QwenLM/qwen-code/pull/9570)) - WebShell 采用 Goal v3 控制,允许独立于聊天消息管理目标,并配备紧凑的 composer 行。 ([#9393](https://github.com/QwenLM/qwen-code/pull/9393)) - web-shell: fall back to execCommand copy in non-secure contexts ([#9540](https://github.com/QwenLM/qwen-code/pull/9540)) - ui: collapse duplicate in-flight tool_group rendered from history + pending ([#9421](https://github.com/QwenLM/qwen-code/pull/9421)) ### 审查与验证 通过恢复支持、Aone Code 集成、更严格的验证准则及准确的体量追踪,增强了审查工作流。 - --resume 标志现在支持用于 /review、review run 和 CI 重试,以便在 PR 头部未移动时继续中断的审查。 ([#9153](https://github.com/QwenLM/qwen-code/pull/9153)) - 审查 ledger 标记现在记录当前和上一轮的已发布内联评论数量,以跟踪发布量趋势。 ([#9413](https://github.com/QwenLM/qwen-code/pull/9413)) - 审查验证器现在执行来自实时双臂验证的四个运行准则,包括为每一行从全新状态启动有状态目标。 ([#9447](https://github.com/QwenLM/qwen-code/pull/9447)) - 通过在计数来源处应用共享 volume reader 限制,修复了 review 发布量报告中的不一致问题,确保所有输出表面的数据一致。 ([#9460](https://github.com/QwenLM/qwen-code/pull/9460)) - review: keep the blocker in a COMMENT body every softening path reaches ([#9416](https://github.com/QwenLM/qwen-code/pull/9416)) - 扩展了验证器的 brief,增加了用于运行时轴验证、表扫描影响分析和隔离测试的新见证形式,以处理关于未发布版本和硬编码表的声明。 ([#9445](https://github.com/QwenLM/qwen-code/pull/9445)) - Review verifier 探针现在在私有临时工作树中运行,以防止与读取共享树的审计器发生竞态条件。 ([#9221](https://github.com/QwenLM/qwen-code/pull/9221)) - review 系统现在验证面向消费者的合同文档是否准确匹配已实现的代码行为。 ([#9448](https://github.com/QwenLM/qwen-code/pull/9448)) - /review 技能现在支持通过 a1 CLI 的 --comment 标志向 Aone Code 发布评论和批准意见。 ([#9491](https://github.com/QwenLM/qwen-code/pull/9491)) ### Autofix 与 CI 可靠性 解决了 GitHub Actions 瓶颈,修复了工作流排队死锁,并对自动代码修复强制执行测试覆盖。 - 修复了 flakiness gate 中的 CI 故障,改为针对固定的 base OID 进行 diff,避免了在持久化池上解析 HEAD^1 时的间歇性访问错误。 ([#9464](https://github.com/QwenLM/qwen-code/pull/9464)) - 通过在环境清理前计算 git 差异来修复 flake-gate CI 步骤,防止浅合并引用对象的访问错误。 ([#9468](https://github.com/QwenLM/qwen-code/pull/9468)) - 将 autonomous-fix 工作流克隆到新实体,以绕过导致运行卡在排队状态的 GitHub Actions 后端问题。 ([#9482](https://github.com/QwenLM/qwen-code/pull/9482)) - 在 autofix 工作流中添加注释以强制 GitHub Actions 重新注册触发器,修复了定时和事件驱动运行静默停止的问题。 ([#9479](https://github.com/QwenLM/qwen-code/pull/9479)) - 减小了 qwen-autofix.yml 工作流文件的大小以保持在 GitHub 500 KB 限制内,恢复了此前因超限而静默失败的自动修复运行。 ([#9517](https://github.com/QwenLM/qwen-code/pull/9517)) - Shepherd 不再将零任务的永久排队运行视为进行中,避免了阻碍 autofix 循环数小时的死锁。 ([#9518](https://github.com/QwenLM/qwen-code/pull/9518)) - Autofix 现在要求通过变异探测验证新增的防护或分支在提交前已被测试覆盖。 ([#9578](https://github.com/QwenLM/qwen-code/pull/9578)) - Autofix 查找回复现已幂等,若线程中已存在机器人发布的相同评论,则跳过重复发帖。 ([#9463](https://github.com/QwenLM/qwen-code/pull/9463)) - 发布 PR 现在由专用机器人账户而非 GitHub Actions 令牌创建,使在限制 Actions 创建 PR 的组织中也能完成发布。 ([#9592](https://github.com/QwenLM/qwen-code/pull/9592)) ### 会话与对话管理 引入了对话隔离原语和保护隐私的分类账,并修复了压缩过程中的历史记录保留问题。 - 引入独立会话隔离原语,支持确定性会话身份验证和谱系检查。 ([#9341](https://github.com/QwenLM/qwen-code/pull/9341)) - 会话现在持久化一个保护隐私的提示结果分类账,以便在不存储用户内容的情况下实现准确的冷加载对账。 ([#9426](https://github.com/QwenLM/qwen-code/pull/9426)) - 修复了 /rewind 在 /compress-fast 之后错误丢弃对话历史的问题,方法是正确区分基于规则的压缩标记和总结边界。 ([#9331](https://github.com/QwenLM/qwen-code/pull/9331)) - 独立对话原语现在能安全采纳并发创建的目录,并对 JSONL 读取器执行严格的完整性预算。 ([#9512](https://github.com/QwenLM/qwen-code/pull/9512)) - ACP 循环检测期间跳过的重复工具结果现在会持久化为终端错误,避免会话恢复后转录重放时出现缺失的工具结果。 ([#9593](https://github.com/QwenLM/qwen-code/pull/9593)) ### Agent 能力与模型 添加了稳定的 qwen3.8-max 模型,简化了 Thinking 切换,启用了 DingTalk 媒体访问,并改进了工具调用处理。 - 将稳定的 qwen3.8-max 模型添加到 Token Plan 模型列表中,允许用户通过 /model 选择该模型以及现有的预览版本。 ([#9383](https://github.com/QwenLM/qwen-code/pull/9383)) - Qwen 混合模型现在暴露简单的 Thinking 切换以控制推理,为支持的版本移除了复杂的 effort 层级。 ([#9574](https://github.com/QwenLM/qwen-code/pull/9574)) - 使 DingTalk 能够下载并附加引用消息中的媒体,让 agent 可以检查引用的图片和文件。 ([#9347](https://github.com/QwenLM/qwen-code/pull/9347)) - 仅当参数匹配时将重复的 provider tool-call ID 视为重放,允许参数不同的 ID 冲突正常执行。 ([#9436](https://github.com/QwenLM/qwen-code/pull/9436)) - 防止上游快速失败占位符响应(如 '(request timeout)')显示在聊天中,改为内部重试。 ([#8938](https://github.com/QwenLM/qwen-code/pull/8938)) - cli: surface the daemon duplicate tool-call breaker as a visible loop-detected stop ([#9435](https://github.com/QwenLM/qwen-code/pull/9435)) - core: reject run_in_background: false for named teammates ([#9433](https://github.com/QwenLM/qwen-code/pull/9433)) - core: clarify list_agents excludes Agent Team teammates ([#9432](https://github.com/QwenLM/qwen-code/pull/9432)) ### 扩展与 Git 集成 启用了认证 HTTPS Git 安装、批量扩展状态更新以及用于托管终端会话的 PTY worker 支持。 - 增加了对带有可配置凭据持久性的 authenticated HTTPS Git 扩展安装的支持,实现了通过 daemon 安全克隆私有仓库的功能。 ([#9458](https://github.com/QwenLM/qwen-code/pull/9458)) - 添加了批量 API,用于全局更新多达 100 个扩展的激活状态或针对特定受信任工作区进行更新。 ([#8788](https://github.com/QwenLM/qwen-code/pull/8788)) - 添加 PTY worker 支持以启用托管 Agent View 会话,包含本地终端主机和认证流转发。 ([#7800](https://github.com/QwenLM/qwen-code/pull/7800)) ### 可观测性与诊断 暴露了 V8 堆指标,链接了分布式追踪上下文,并将未识别的诊断路由到有界的侧通道。 - ACP 子进程现在跟踪并在 daemon 状态中报告 V8 老生代堆指标,包括峰值提交内存和主要 GC 计数。 ([#9380](https://github.com/QwenLM/qwen-code/pull/9380)) - 将 daemon HTTP 请求跨度链接到入站 W3C traceparent 头,以维持连续的分布式追踪上下文。 ([#9391](https://github.com/QwenLM/qwen-code/pull/9391)) - 将未识别的诊断路由到有界的侧通道,而不是用调试条目杂乱主转录块。 ([#9202](https://github.com/QwenLM/qwen-code/pull/9202)) - Bridge 现在推进严格的每会话单调水印,并通过 live-state API 中的 BridgeSessionSummary.updatedAt 暴露该值。 ([#9396](https://github.com/QwenLM/qwen-code/pull/9396)) ### CLI 与工作流 API 增加了上下文文件可见性、结构化工作流运行时模型,并支持通过 a1 CLI 发布评论。 - 在 CLI 中增加了一次性 INFO 消息,在首个用户提示上方列出附加的上下文文件,使原本不可见的系统提示附件在聊天中可见。 ([#8855](https://github.com/QwenLM/qwen-code/pull/8855)) - 暴露 Workflow 执行的结构化运行时模型,用于记录生命周期事件、持久化状态并支持取消操作。 ([#9034](https://github.com/QwenLM/qwen-code/pull/9034)) - 附件上传现在将文件名作为编码的 URL 查询参数发送而非自定义头,以避免跨域问题。 ([#9567](https://github.com/QwenLM/qwen-code/pull/9567)) - 当本地元数据确认无更新版本时抑制 Homebrew 更新通知,防止误报。 ([#9502](https://github.com/QwenLM/qwen-code/pull/9502)) ### 其他变更 - 工具审批和询问用户对话框现在作为与聊天宽度对齐的流内底部表单显示,agent-launch 对话框默认聚焦于允许。 ([#9351](https://github.com/QwenLM/qwen-code/pull/9351)) - 通过将大图像重写为稳定文本标记,确保图像负载驱逐在聊天历史和分支间保持一致。 ([#9423](https://github.com/QwenLM/qwen-code/pull/9423)) - web-shell:添加转录契约预验证 ([#9388](https://github.com/QwenLM/qwen-code/pull/9388)) - 重构 CLI 内部结构,将共享的 findings 验证助手移至通用工具包,确保审查命令间行为一致。 ([#9345](https://github.com/QwenLM/qwen-code/pull/9345)) - 重构审查管道,在新库模块中唯一定义认证栏原子,消除了多个文件中的重复谓词逻辑。 ([#9473](https://github.com/QwenLM/qwen-code/pull/9473)) - 重构认证路径验证以使用单一辅助函数,确保跨原子的一致性精确路径匹配。 ([#9484](https://github.com/QwenLM/qwen-code/pull/9484)) - 向 npm publish 命令添加 --provenance 以生成签名证明,验证包源自 CI 流水线。 ([#9532](https://github.com/QwenLM/qwen-code/pull/9532)) - 集中管理 live-task tool-name 和 delegated prompt-length 契约的所有权,防止包之间出现静默偏差。 ([#9497](https://github.com/QwenLM/qwen-code/pull/9497)) - 修复了因 case-variant delete 测试中缺少 deleteSessionAttachments mock 而导致 main 分支构建失败的问题。 ([#9551](https://github.com/QwenLM/qwen-code/pull/9551)) - E2E 测试现在会在遇到瞬态 ENOTEMPTY 错误时重试清理删除,以修复循环 cron 作业场景中的不稳定失败。 ([#9559](https://github.com/QwenLM/qwen-code/pull/9559)) - chore(ci):弃用 NPM_TOKEN,改用 npm 可信发布 ([#9552](https://github.com/QwenLM/qwen-code/pull/9552)) - autofix 刹车现在将 BLOCKED 移交视为有效的轮次结果,防止代理停止请求人工干预时出现误报失败。 ([#9297](https://github.com/QwenLM/qwen-code/pull/9297)) - 修复了 diff-read 测试夹具以防止双重编码,并确保失败 diff 读取场景的正确门控。 ([#9539](https://github.com/QwenLM/qwen-code/pull/9539)) - 增量审查现在直接从 PR 差异构建范围,确保每行审查内容与 GitHub 显示一致,无需事后验证。 ([#9267](https://github.com/QwenLM/qwen-code/pull/9267)) - CI 现在会在清理前修复被符号链接或非目录替换的工作区,防止因硬性防护拒绝导致的运行器卡死。 ([#9498](https://github.com/QwenLM/qwen-code/pull/9498)) - Serve A/B 测试套件现在可在请求前将转录文件暂存到磁盘,从而验证此前在空主目录下无法触及的会话状态行为。 ([#9444](https://github.com/QwenLM/qwen-code/pull/9444)) <details> <summary>完整变更列表(67 个拉取请求)</summary> ### 功能特性 - web-shell:将审批和询问用户对话框作为流内表单显示;修复后台代理误报失败 ([#9351](https://github.com/QwenLM/qwen-code/pull/9351)) by @ytahdn - serve:添加实时状态会话活动水印 ([#9396](https://github.com/QwenLM/qwen-code/pull/9396)) by @doudouOUC - serve:测量 ACP 子进程峰值老年代堆内存 ([#9380](https://github.com/QwenLM/qwen-code/pull/9380)) by @doudouOUC - review:通过 /review、审查运行和 CI 重试连接 --resume 参数 ([#9153](https://github.com/QwenLM/qwen-code/pull/9153)) by @wenshao - review:在账本标记中记录每轮的发布量 ([#9413](https://github.com/QwenLM/qwen-code/pull/9413)) by @wenshao - review:从实时双臂验证中教导验证器四种运行规范 ([#9447](https://github.com/QwenLM/qwen-code/pull/9447)) by @wenshao - daemon:添加批量扩展激活 API ([#8788](https://github.com/QwenLM/qwen-code/pull/8788)) by @callmeYe - providers:在 Token Plan 模型列表中添加 qwen3.8-max ([#9383](https://github.com/QwenLM/qwen-code/pull/9383)) by @qqqys - extensions:支持经过身份验证的 HTTPS Git 安装 ([#9458](https://github.com/QwenLM/qwen-code/pull/9458)) by @callmeYe - telemetry:将 daemon HTTP 请求跨度链接到入站 W3C traceparent ([#9391](https://github.com/QwenLM/qwen-code/pull/9391)) by @chiga0 - web-shell:添加转录契约预验证 ([#9388](https://github.com/QwenLM/qwen-code/pull/9388)) by @water-in-stone - web-shell:消费实时状态会话活动时间戳 ([#9476](https://github.com/QwenLM/qwen-code/pull/9476)) by @doudouOUC - cli:在首个提示旁显示已加载的上下文文件 ([#8855](https://github.com/QwenLM/qwen-code/pull/8855)) by @ZijianZhang989 - review:添加 runtime-axis、table-sweep 和隔离见证表单 ([#9445](https://github.com/QwenLM/qwen-code/pull/9445)) by @wenshao - cli:添加代理视图 PTY 工作进程 ([#7800](https://github.com/QwenLM/qwen-code/pull/7800)) by @ZijianZhang989 - core:暴露工作流执行状态 ([#9034](https://github.com/QwenLM/qwen-code/pull/9034)) by @qqqys - cli:添加独立的对话隔离原语 ([#9341](https://github.com/QwenLM/qwen-code/pull/9341)) by @doudouOUC - web-shell:统一文件上传和引用 ([#9477](https://github.com/QwenLM/qwen-code/pull/9477)) by @ytahdn - serve:持久化提示终端账本以进行冷启动对账 ([#9426](https://github.com/QwenLM/qwen-code/pull/9426)) by @chiga0 - review:规范契约文档,并引入矩阵分层守卫 ([#9448](https://github.com/QwenLM/qwen-code/pull/9448)) by @wenshao - web-shell:支持在对话中途消息中附加文件 ([#9570](https://github.com/QwenLM/qwen-code/pull/9570)) by @ytahdn - 为 Qwen 混合模型注册仅切换推理 ([#9574](https://github.com/QwenLM/qwen-code/pull/9574)) by @callmeYe - web-shell:采用标准 Goal v3 控制 ([#9393](https://github.com/QwenLM/qwen-code/pull/9393)) by @qqqys - review:通过 a1 CLI 将 --comment 审查发布到 Aone Code ([#9491](https://github.com/QwenLM/qwen-code/pull/9491)) by @wenshao ### 缺陷修复 - 处理:将 flake-gate 文件列表与固定的基础 OID 进行差异对比 ([#9464](https://github.com/QwenLM/qwen-code/pull/9464)) by @yiliang114 - CLI:将守护进程重复工具调用中断器暴露为可见的循环检测停止状态 ([#9435](https://github.com/QwenLM/qwen-code/pull/9435)) by @doudouOUC - CLI:防止 /rewind 在 /compress-fast 后丢弃对话历史 ([#9331](https://github.com/QwenLM/qwen-code/pull/9331)) by @yiliang114 - 核心:拒绝为命名队友设置 run_in_background: false ([#9433](https://github.com/QwenLM/qwen-code/pull/9433)) by @yiliang114 - 审查:在源头限制发布量,而不仅限于写入位置 ([#9460](https://github.com/QwenLM/qwen-code/pull/9460)) by @wenshao - 核心:明确 list_agents 排除 Agent Team 队友 ([#9432](https://github.com/QwenLM/qwen-code/pull/9432)) by @yiliang114 - 核心:拒绝上游 fail-fast 占位响应 ([#8938](https://github.com/QwenLM/qwen-code/pull/8938)) by @yiliang114 - 核心:隔离图像负载驱逐状态 ([#9423](https://github.com/QwenLM/qwen-code/pull/9423)) by @yiliang114 - 核心:仅在参数匹配时将重复的提供商工具调用 ID 视为重放 ([#9436](https://github.com/QwenLM/qwen-code/pull/9436)) by @doudouOUC - 处理:在 env -i 重新执行前计算 flake-gate 差异 ([#9468](https://github.com/QwenLM/qwen-code/pull/9468)) by @yiliang114 - SDK:将未识别的诊断信息路由到有界的转录侧信道 ([#9202](https://github.com/QwenLM/qwen-code/pull/9202)) by @yiliang114 - CI:将 qwen-autofix 克隆到恢复工作流实体中 ([#9482](https://github.com/QwenLM/qwen-code/pull/9482)) by @wenshao - CI:执行无操作 touch 以重新注册 autofix 工作流触发器 ([#9479](https://github.com/QwenLM/qwen-code/pull/9479)) by @wenshao - 审查:确保每个软化路径到达的 COMMENT body 中都保留阻断项 ([#9416](https://github.com/QwenLM/qwen-code/pull/9416)) by @wenshao - CI:保持 qwen-autofix.yml 在 GitHub 500 KB 的 start-runs 限制之下 ([#9517](https://github.com/QwenLM/qwen-code/pull/9517)) by @wenshao - 钉钉:附加引用消息中的媒体 ([#9347](https://github.com/QwenLM/qwen-code/pull/9347)) by @qqqys - CLI:当 brew 无更新时抑制 Homebrew 更新通知 (#9493) ([#9502](https://github.com/QwenLM/qwen-code/pull/9502)) by @yiliang114 - Web Shell:保持侧边栏会话同步 ([#9533](https://github.com/QwenLM/qwen-code/pull/9533)) by @ytahdn - CLI:为大小写变体删除测试提供附件 mock ([#9551](https://github.com/QwenLM/qwen-code/pull/9551)) by @wenshao - 审查:在私有临时工作区中运行验证探针 (#9207) ([#9221](https://github.com/QwenLM/qwen-code/pull/9221)) by @wenshao - 服务:加固独立对话原语 ([#9512](https://github.com/QwenLM/qwen-code/pull/9512)) by @doudouOUC - 测试:在临时 ENOTEMPTY 错误时重试 acp-cron 清理 rm ([#9559](https://github.com/QwenLM/qwen-code/pull/9559)) by @yiliang114 - 自动修复:将制动器的 BLOCKED 交接提升为一级轮次结果 ([#9297](https://github.com/QwenLM/qwen-code/pull/9297)) by @wenshao - Web Shell:停止重复的会话标题目录刷新 ([#9563](https://github.com/QwenLM/qwen-code/pull/9563)) by @doudouOUC - 守护进程:避免使用自定义附件上传头 ([#9567](https://github.com/QwenLM/qwen-code/pull/9567)) by @ytahdn - CI:停止在 shepherd 中将卡住的排队运行计为进行中 ([#9518](https://github.com/QwenLM/qwen-code/pull/9518)) by @wenshao - CI:修复符号链接工作区,而不是让 runner 在其上卡住 ([#9498](https://github.com/QwenLM/qwen-code/pull/9498)) by @wenshao - 自动修复:在轮次提交前对新的守卫进行变异探测 ([#9578](https://github.com/QwenLM/qwen-code/pull/9578)) by @wenshao - CI:使 autofix 查找回复具备幂等性 ([#9463](https://github.com/QwenLM/qwen-code/pull/9463)) by @wenshao - CI:使用第三方机器人的 PAT 撰写发布 PR ([#9592](https://github.com/QwenLM/qwen-code/pull/9592)) by @yiliang114 - CLI:持久化跳过的重复工具结果 ([#9593](https://github.com/QwenLM/qwen-code/pull/9593)) by @yiliang114 - Web Shell:在非安全上下文中回退到 execCommand 复制 ([#9540](https://github.com/QwenLM/qwen-code/pull/9540)) by @yiliang114 - UI:折叠由历史+待处理渲染的重复进行中 tool_group ([#9421](https://github.com/QwenLM/qwen-code/pull/9421)) by @qwen-code-dev-bot ### 性能 - Web Shell:保持流式输出响应灵敏 ([#9405](https://github.com/QwenLM/qwen-code/pull/9405)) by @ytahdn ### 内部变更 - 重构(cli):在遗留审计技能前整合共享辅助函数 ([#9345](https://github.com/QwenLM/qwen-code/pull/9345)) by @wenshao - 重构(review):精确一次定义每个认证条原子 ([#9473](https://github.com/QwenLM/qwen-code/pull/9473)) by @wenshao - 重构(review):通过单一针头路由认证路径原子 ([#9484](https://github.com/QwenLM/qwen-code/pull/9484)) by @wenshao - 维护(ci):为 npm publish 和 id-token 权限添加 --provenance ([#9532](https://github.com/QwenLM/qwen-code/pull/9532)) by @yiliang114 - 重构:集中跨包合约 ([#9497](https://github.com/QwenLM/qwen-code/pull/9497)) by @yiliang114 - 维护(ci):弃用 NPM_TOKEN,改用 npm 可信发布 ([#9552](https://github.com/QwenLM/qwen-code/pull/9552)) by @yiliang114 - 测试(review):对 diff-read 夹具进行单次编码并固定失败读取门控 ([#9539](https://github.com/QwenLM/qwen-code/pull/9539)) by @wenshao - 重构(review):基于 PR 的差异构建增量范围,而非检查 ([#9267](https://github.com/QwenLM/qwen-code/pull/9267)) by @wenshao - 测试(ci):在 serve A/B 中暂存磁盘上的会话状态 ([#9444](https://github.com/QwenLM/qwen-code/pull/9444)) by @wenshao </details> ## 新贡献者 - @qwen-code-review-bot 在 [#9594](https://github.com/QwenLM/qwen-code/pull/9594) 中首次贡献 **完整更新日志**: https://github.com/QwenLM/qwen-code/compare/v0.21.14...v0.21.15