← 返回更新日志

Qwen Code v0.20.1

2026-07-21 · GitHub 原文
<!-- qwen-release-notes:v1 --> ## 亮点 _详见下方的完整变更列表。_ ## 破坏性变更 暂无已知的破坏性变更。 ## 完整变更列表 ### 新功能 - feat(autofix): 基于标签接管并释放;修复强制分发的绿色空操作 ([#7165](https://github.com/QwenLM/qwen-code/pull/7165)) by @wenshao - feat(autofix): 直接接管维护者分叉的 PR ([#7213](https://github.com/QwenLM/qwen-code/pull/7213)) by @wenshao - feat(daemon): 通告 ACP 预热就绪状态 ([#7200](https://github.com/QwenLM/qwen-code/pull/7200)) by @doudouOUC - feat(autofix): 在每个 autofix 报告中显示正在运行的模型 ([#7226](https://github.com/QwenLM/qwen-code/pull/7226)) by @wenshao - feat(review): 重试一次临时 API 失败;清晰展示配额信息 ([#7233](https://github.com/QwenLM/qwen-code/pull/7233)) by @wenshao - feat(core): 检查持久化的对话分支 ([#7185](https://github.com/QwenLM/qwen-code/pull/7185)) by @doudouOUC - feat(core): 按安全性路由 Plan 模式的 shell 命令 ([#7172](https://github.com/QwenLM/qwen-code/pull/7172)) by @doudouOUC - feat(ci): 为已确认的不稳定测试自动创建修复问题 ([#7231](https://github.com/QwenLM/qwen-code/pull/7231)) by @wenshao - feat(autofix): 无需标签即可自动管理机器人自身的分叉 PR ([#7243](https://github.com/QwenLM/qwen-code/pull/7243)) by @wenshao - feat(web-shell): 为并行任务提供 worktree 隔离会话 ([#7221](https://github.com/QwenLM/qwen-code/pull/7221)) by @wenshao - feat(i18n): 更新加泰罗尼亚语翻译 ([#7253](https://github.com/QwenLM/qwen-code/pull/7253)) by @jordimas - feat: 为核心测试模块添加 CODEOWNERS ([#7304](https://github.com/QwenLM/qwen-code/pull/7304)) by @pomelo-nwu - feat(web-shell): 支持自定义斜杠命令动作 ([#7267](https://github.com/QwenLM/qwen-code/pull/7267)) by @ytahdn - feat(web-shell): 添加 git 提交历史浏览器 ([#7204](https://github.com/QwenLM/qwen-code/pull/7204)) by @wenshao - feat: 支持工作区显示名称 ([#7179](https://github.com/QwenLM/qwen-code/pull/7179)) by @samuelhsin - feat(channels): 添加内容安全的记忆召回遥测 ([#7338](https://github.com/QwenLM/qwen-code/pull/7338)) by @qqqys - feat(daemon): 在会话加载/恢复时恢复 worktree 隔离 ([#7262](https://github.com/QwenLM/qwen-code/pull/7262)) by @wenshao - feat(autofix): 使用 @qwen-code /retry 重新触发搁置的 PR,而非删除标记 ([#7354](https://github.com/QwenLM/qwen-code/pull/7354)) by @wenshao - feat(serve): 使 ACP 初始化握手超时时间可配置 ([#7246](https://github.com/QwenLM/qwen-code/pull/7246)) by @qwen-code-dev-bot - feat(autofix): 实时获取已管理的分叉 PR,而非等待限流调度 ([#7350](https://github.com/QwenLM/qwen-code/pull/7350)) by @wenshao - feat(autofix): 解决其已实施修复的审查线程 ([#7364](https://github.com/QwenLM/qwen-code/pull/7364)) by @wenshao - feat(autofix): 将已管理的工作池渲染至扫描运行摘要中 ([#7355](https://github.com/QwenLM/qwen-code/pull/7355)) by @wenshao - feat(core): 为分叉子代理添加 fork_turns ([#7346](https://github.com/QwenLM/qwen-code/pull/7346)) by @DragonnZhang - feat(auth): 添加新加坡 Token Plan 区域 ([#7280](https://github.com/QwenLM/qwen-code/pull/7280)) by @han-dreamer - feat(web-shell): 在新会话空状态中显示 worktree 隔离 ([#7365](https://github.com/QwenLM/qwen-code/pull/7365)) by @wenshao - feat(core): 添加基于 DashScope Responses API 的可选内置 web_search ([#7215](https://github.com/QwenLM/qwen-code/pull/7215)) by @tanzhenxin - feat(web-shell): 添加用于品牌标识、导航、会话操作和页脚的侧边栏自定义 API ([#7379](https://github.com/QwenLM/qwen-code/pull/7379)) by @yuanyuanAli - feat(autofix): 将严格轮次上限从 5 提升至 10 ([#7412](https://github.com/QwenLM/qwen-code/pull/7412)) by @wenshao - feat(autofix): 将门禁拒绝信息反馈回去,以便重试能修复其破坏的内容 ([#7368](https://github.com/QwenLM/qwen-code/pull/7368)) by @wenshao ### 错误修复 - fix(autofix): 将 SKILL.md 暂存于 run-agent.mjs 旁,以便 review-address 正常启动 (P0,#7165 的回归问题) ([#7225](https://github.com/QwenLM/qwen-code/pull/7225)) by @wenshao - fix(ci): 整合问题分类的归属权 ([#7180](https://github.com/QwenLM/qwen-code/pull/7180)) by @yiliang114 - fix(cli): 允许在活跃循环期间进行目标控制 ([#7202](https://github.com/QwenLM/qwen-code/pull/7202)) by @yiliang114 - fix(cli): 在流式传输期间,在引导提示旁显示模式指示器 ([#7219](https://github.com/QwenLM/qwen-code/pull/7219)) by @qwen-code-dev-bot - fix(scripts): 通过探测 Vite 端口允许多个 dev:daemon 实例 ([#7212](https://github.com/QwenLM/qwen-code/pull/7212)) by @wenshao - fix(review): 针对未读取的块,仅在其原因下播报一次 ([#7234](https://github.com/QwenLM/qwen-code/pull/7234)) by @wenshao - fix(autofix): 无输出崩溃不得推进审查水位线 ([#7229](https://github.com/QwenLM/qwen-code/pull/7229)) by @wenshao - fix(review): 禁止在名单输出和 SKILL.md 中使用隔离参数 ([#7235](https://github.com/QwenLM/qwen-code/pull/7235)) by @wenshao - fix(cli): 将 npm 更新检查与全局注册表对齐 ([#7224](https://github.com/QwenLM/qwen-code/pull/7224)) by @yiliang114 - fix(test): 修复工具控制 E2E 内容断言的偶发失败问题 ([#7261](https://github.com/QwenLM/qwen-code/pull/7261)) by @qwen-code-dev-bot - fix(sdk): 在迭代器退出时中止 SSE 请求,以释放守护进程订阅者 ([#7257](https://github.com/QwenLM/qwen-code/pull/7257)) by @chinesepowered - fix(core): 强制执行计划模式的入口边界 ([#7248](https://github.com/QwenLM/qwen-code/pull/7248)) by @doudouOUC - fix(channels): 在回复中排除离散的 ACP 消息 ([#7223](https://github.com/QwenLM/qwen-code/pull/7223)) by @qwen-code-dev-bot - fix(ci): 在 autofix 验证门禁中为 fork PR 创建远程跟踪引用 ([#7281](https://github.com/QwenLM/qwen-code/pull/7281)) by @wenshao - fix(sdk): 在错误和释放时清理 SSE 请求 ([#7269](https://github.com/QwenLM/qwen-code/pull/7269)) by @doudouOUC - fix(cli): 在操作系统休眠/唤醒或收到 SIGCONT 信号后重绘 TUI ([#7265](https://github.com/QwenLM/qwen-code/pull/7265)) by @wenshao - fix(mobile-mcp): 恢复 UI 层级转储中的边界信息 ([#7321](https://github.com/QwenLM/qwen-code/pull/7321)) by @LaZzyMan - fix(test): 稳定 3 个偶发失败的测试(服务启动、使用统计 TTL、TasksStatusMessage 按键) ([#7319](https://github.com/QwenLM/qwen-code/pull/7319)) by @qwen-code-dev-bot - fix(cli): 在权限提示期间保留取消操作 ([#7295](https://github.com/QwenLM/qwen-code/pull/7295)) by @doudouOUC - fix(core): 在缺失 completion_tokens_details 时估算 reasoning_tokens ([#7239](https://github.com/QwenLM/qwen-code/pull/7239)) by @yiliang114 - fix(ci): 收紧 API 错误检测,避免在审查文本中误报 ([#7328](https://github.com/QwenLM/qwen-code/pull/7328)) by @wenshao - fix(web-shell): 本地化扩展标签的显示文本 ([#7337](https://github.com/QwenLM/qwen-code/pull/7337)) by @callmeYe - fix(test): 稳定 list_directory E2E 测试 — 当模型跳过工具调用时接受文本输出 ([#7342](https://github.com/QwenLM/qwen-code/pull/7342)) by @qwen-code-dev-bot - fix(autofix): 解析嵌套路径的归属包;将验证失败的交接报告为未推送 ([#7330](https://github.com/QwenLM/qwen-code/pull/7330)) by @wenshao - fix(review): 在遇到临时 GitHub 错误 (5xx) 和密钥环失败时重试 gh CLI ([#7291](https://github.com/QwenLM/qwen-code/pull/7291)) by @wenshao - fix(channels): 投递后台代理的回复 ([#7336](https://github.com/QwenLM/qwen-code/pull/7336)) by @qwen-code-dev-bot - fix(web-shell): 代理扩展 API 而不拦截模块 ([#7294](https://github.com/QwenLM/qwen-code/pull/7294)) by @ytahdn - fix(dingtalk): 重试临时的情绪识别失败 ([#7329](https://github.com/QwenLM/qwen-code/pull/7329)) by @qwen-code-dev-bot - fix(web-shell): 遵循语音启用设置 ([#7345](https://github.com/QwenLM/qwen-code/pull/7345)) by @callmeYe - fix(cli): 将位置参数映射到可选的 MCP 提示参数 ([#7317](https://github.com/QwenLM/qwen-code/pull/7317)) by @qwen-code-dev-bot - fix(cli): 在 /cd 标签补全中包含已输入的目录 ([#7320](https://github.com/QwenLM/qwen-code/pull/7320)) by @qwen-code-dev-bot - fix(review): 提高代理启动和清理操作的容错性 ([#7259](https://github.com/QwenLM/qwen-code/pull/7259)) by @wenshao - fix(ci): 阻止缓慢的巡逻分类器终止所有偶发失败的重新运行 ([#7358](https://github.com/QwenLM/qwen-code/pull/7358)) by @wenshao - fix(ci): 区分视觉覆盖率缺口与“无视觉变化” ([#7375](https://github.com/QwenLM/qwen-code/pull/7375)) by @wenshao - fix: 当自动模式分类器不可用时进行询问 ([#7331](https://github.com/QwenLM/qwen-code/pull/7331)) by @LaZzyMan - fix(autofix): 重试验证门禁崩溃,而不是掩盖代理的修复 ([#7351](https://github.com/QwenLM/qwen-code/pull/7351)) by @wenshao - fix(core): 验证目标判定器的终端证据 ([#7208](https://github.com/QwenLM/qwen-code/pull/7208)) by @qwen-code-dev-bot - fix(core): 在纯无头模式下隐藏交互工具 ([#7285](https://github.com/QwenLM/qwen-code/pull/7285)) by @DragonnZhang - fix(cli): 在状态行中显示 worktree 分支而非工作区分支 ([#7367](https://github.com/QwenLM/qwen-code/pull/7367)) by @wenshao - fix(acp-bridge): 通过按 clientId 的 attach-ref 账本使 detachClient 幂等 ([#7386](https://github.com/QwenLM/qwen-code/pull/7386)) by @doudouOUC - fix(autofix): 公开拒绝非主分支接管,而非仅在作业日志中记录 ([#7382](https://github.com/QwenLM/qwen-code/pull/7382)) by @wenshao - fix(cli): 在后台安全更新 npm 安装 ([#7322](https://github.com/QwenLM/qwen-code/pull/7322)) by @yiliang114 - fix(core): 在 DashScope 上支持 qwen3.8 侧边查询 ([#7303](https://github.com/QwenLM/qwen-code/pull/7303)) by @yiliang114 - fix(autofix): 重试模型 API 错误,避免使 PR 挂起 ([#7247](https://github.com/QwenLM/qwen-code/pull/7247)) by @wenshao - fix(ci): 避免 /resolve 报告在句子中间被截断 ([#7389](https://github.com/QwenLM/qwen-code/pull/7389)) by @wenshao - fix(web-shell): 恢复定时任务引用交互 ([#7313](https://github.com/QwenLM/qwen-code/pull/7313)) by @BZ-D - fix(core): 限制 web-fetch 后处理,并在失败时保留获取的内容 ([#7305](https://github.com/QwenLM/qwen-code/pull/7305)) by @tanzhenxin - fix(core): 对并发 ACP 会话写入者进行隔离控制 ([#7237](https://github.com/QwenLM/qwen-code/pull/7237)) by @doudouOUC - fix(ci): 串行化推送到 PR 头分支的两个工作流 ([#7392](https://github.com/QwenLM/qwen-code/pull/7392)) by @wenshao - fix(web-shell): 按标签页持久化守护进程 Bearer Token,使其在刷新后依然有效 ([#7374](https://github.com/QwenLM/qwen-code/pull/7374)) by @zjunothing - fix(core,cli): 在子代理的 ALS 框架外排空后台通知 ([#7194](https://github.com/QwenLM/qwen-code/pull/7194)) by @zjunothing - fix(acp-bridge): 将 Windows 格式的 workspace 路径映射到其沙箱挂载点 ([#7228](https://github.com/QwenLM/qwen-code/pull/7228)) by @zjunothing - fix(core): 在删除转录记录前,将会话使用情况保留至历史记录 ([#7391](https://github.com/QwenLM/qwen-code/pull/7391)) by @zjunothing - fix(core): 明确后台代理的继续执行逻辑 ([#7300](https://github.com/QwenLM/qwen-code/pull/7300)) by @DragonnZhang - fix(transcript): 将悬空的工具历史记录标记为不完整 ([#7340](https://github.com/QwenLM/qwen-code/pull/7340)) by @cxruan - fix(mcp): 添加可选的模型负载过滤 ([#7413](https://github.com/QwenLM/qwen-code/pull/7413)) by @LaZzyMan - fix(ci): 区分分类操作崩溃与静默代理 ([#7418](https://github.com/QwenLM/qwen-code/pull/7418)) by @wenshao - fix(acp-bridge): 在守护进程服务模式中保证提示词终端事件仅触发一次 ([#7400](https://github.com/QwenLM/qwen-code/pull/7400)) by @doudouOUC - fix(dingtalk): 将去除 @mention 的正则表达式锚定至文本开头 ([#7401](https://github.com/QwenLM/qwen-code/pull/7401)) by @qwen-code-dev-bot - fix: 在无头模式下支持继承上下文的子代理 ([#7378](https://github.com/QwenLM/qwen-code/pull/7378)) by @DragonnZhang - fix(cli): 改善更新检查失败的交互体验 — 改为警告而非错误,超时时间提升至 5 秒 ([#7409](https://github.com/QwenLM/qwen-code/pull/7409)) by @ComplexSimply - fix(test): 将 Docker 沙箱的守护进程启动超时时间从 10 秒放宽至 25 秒 ([#7419](https://github.com/QwenLM/qwen-code/pull/7419)) by @qwen-code-dev-bot - fix: 修复在 Web Shell 中无法打开正在运行的 worktree 会话的问题 ([#7424](https://github.com/QwenLM/qwen-code/pull/7424)) by @wenshao - fix(web-shell): 恢复队列中和已召回提示词中的上下文标签 ([#7312](https://github.com/QwenLM/qwen-code/pull/7312)) by @dreamWB - fix(core): 在 worktree 会话中基于 workspace 根目录解析 artifact 的 workspacePath ([#7429](https://github.com/QwenLM/qwen-code/pull/7429)) by @wenshao - fix(cli): 对嵌套的更新检查网络错误进行分类处理 ([#7428](https://github.com/QwenLM/qwen-code/pull/7428)) by @yiliang114 - 修复了因会话锁文件解析到隔离测试目录之外而导致的间歇性 Docker CI 测试失败问题。 ([#7439](https://github.com/QwenLM/qwen-code/pull/7439)) by @wenshao - 重新生成了 [email protected] 补丁,以确保其在全新安装时能干净应用并防止构建错误。 ([#7407](https://github.com/QwenLM/qwen-code/pull/7407)) by @chiga0 - 放宽了 OpenAI 协议模式中可选字段的约束,以防止模型被迫提供互斥参数。 ([#7344](https://github.com/QwenLM/qwen-code/pull/7344)) by @zjunothing - 为钉钉媒体下载添加了 50MB 大小限制和 30 秒超时,以匹配飞书适配器的行为。 ([#7361](https://github.com/QwenLM/qwen-code/pull/7361)) by @chinesepowered - 允许 simple-git 接受公共 Git 扩展安装所需的受限协议和全局配置设置。 ([#7293](https://github.com/QwenLM/qwen-code/pull/7293)) by @ytahdn - 对工具响应批次强制执行确定性聚合预算,以防止在所有运行时中超出字符限制。 ([#7323](https://github.com/QwenLM/qwen-code/pull/7323)) by @doudouOUC - 通过清除继承的沙箱会话 ID 来修复 Docker CI 会话冲突,确保每个子会话生成唯一标识符。 ([#7443](https://github.com/QwenLM/qwen-code/pull/7443)) by @wenshao ### 性能 - perf(autofix): 将集群并发度从 3 提升至 5 ([#7396](https://github.com/QwenLM/qwen-code/pull/7396)) by @wenshao - perf(telemetry): 延迟加载 SDK,并按协议拆分 OTLP 导出器链 ([#7276](https://github.com/QwenLM/qwen-code/pull/7276)) by @doudouOUC - perf(autofix): 移除反馈门控对 LLM 审查检查的等待 ([#7416](https://github.com/QwenLM/qwen-code/pull/7416)) by @wenshao ### 文档 - docs(cli): 移除过时的包含目录限制 ([#7326](https://github.com/QwenLM/qwen-code/pull/7326)) by @ZijianZhang989 ### 内部变更 - test: 提高在 CI 资源争用情况下不稳定的 I/O 绑定测试的超时上限 ([#7230](https://github.com/QwenLM/qwen-code/pull/7230)) by @wenshao - test(autofix): 端到端验证 SKILL 阶段与 resolve 阶段的契约 ([#7227](https://github.com/QwenLM/qwen-code/pull/7227)) by @wenshao - test(channels): 添加记忆召回评估基线 ([#7220](https://github.com/QwenLM/qwen-code/pull/7220)) by @qwen-code-dev-bot - test(autofix): 将工作流断言与拆分后的模型变量同步 ([#7297](https://github.com/QwenLM/qwen-code/pull/7297)) by @yiliang114 - test(feishu): 强制执行 Markdown 分块限制断言 ([#7324](https://github.com/QwenLM/qwen-code/pull/7324)) by @ZijianZhang989 - ci: 将发布说明分类器从单 PR 工作流移至发布时批处理 ([#7339](https://github.com/QwenLM/qwen-code/pull/7339)) by @yiliang114 - chore: 为 cua-driver 和 mobile-mcp 添加 CODEOWNERS ([#7369](https://github.com/QwenLM/qwen-code/pull/7369)) by @qwen-code-dev-bot - chore: 将 CODEOWNERS 简化为包级规则 ([#7376](https://github.com/QwenLM/qwen-code/pull/7376)) by @pomelo-nwu - chore(docs,test): 批量修复三项文档与测试问题 ([#7373](https://github.com/QwenLM/qwen-code/pull/7373)) by @ZijianZhang989 - 添加测试以验证在普通会话和 worktree 会话中工件文件路径均能正确解析。 ([#7434](https://github.com/QwenLM/qwen-code/pull/7434)) by @wenshao **完整更新日志**: https://github.com/QwenLM/qwen-code/compare/v0.20.0...v0.20.1