← 返回更新日志

Qwen Code v0.21.1-nightly.20260731.702932cc7 预发布

2026-07-31 · GitHub 原文
<!-- 使用 release/v0.21.1-nightly.20260731.702932cc7 分支上的 .github/release.yml 配置生成的发布说明 --> ## 更新内容 * fix(ci): 在 qwen-triage 的容器作业中添加默认 bash shell by @qwen-code-dev-bot in https://github.com/QwenLM/qwen-code/pull/7838 * fix(web-shell): 在 composer 中保留粘贴的文本 by @ytahdn in https://github.com/QwenLM/qwen-code/pull/7824 * feat(web-shell): 添加监控任务详情 by @ytahdn in https://github.com/QwenLM/qwen-code/pull/7817 * fix(ci): 为容器作业添加 git safe.directory by @qwen-code-dev-bot in https://github.com/QwenLM/qwen-code/pull/7843 * fix(ci): 为容器作业添加 --init 以回收僵尸进程 by @qwen-code-dev-bot in https://github.com/QwenLM/qwen-code/pull/7848 * fix(core): 在结算后台 shell 前等待输出流刷新 by @ComplexSimply in https://github.com/QwenLM/qwen-code/pull/7833 * fix(scripts): 重试模型调用并展示降级版发布说明 by @he-yufeng in https://github.com/QwenLM/qwen-code/pull/7535 * feat(web-shell): 将语音范围限定为 composer 工作区 by @doudouOUC in https://github.com/QwenLM/qwen-code/pull/7754 * feat(hooks): 添加已提交提示词的来源追踪 by @doudouOUC in https://github.com/QwenLM/qwen-code/pull/7762 * fix(ci): 防止 worktree 清理操作导致 verify 作业失败 by @qwen-code-dev-bot in https://github.com/QwenLM/qwen-code/pull/7857 * perf(acp): 在会话创建后预加载 providers by @doudouOUC in https://github.com/QwenLM/qwen-code/pull/7767 * test(channels): 在 CI 中运行 feishu、weixin 和 qqbot 测试套件 by @chinesepowered in https://github.com/QwenLM/qwen-code/pull/7853 * feat(autofix): 对确定性拒绝重试一次 by @qqqys in https://github.com/QwenLM/qwen-code/pull/7796 * fix(release): 发布所有 channel 包,而不仅仅是 channel-base by @yiliang114 in https://github.com/QwenLM/qwen-code/pull/7845 * feat(web-shell): 添加 Channel 管理页面 by @qqqys in https://github.com/QwenLM/qwen-code/pull/7793 * feat(acp): 添加会话级运行时 MCP by @qqqys in https://github.com/QwenLM/qwen-code/pull/7847 * feat(core): 持久化并回放 Goal v3 状态 by @qqqys in https://github.com/QwenLM/qwen-code/pull/7815 * feat(core): 添加全分辨率图像缩放工具 by @qqqys in https://github.com/QwenLM/qwen-code/pull/7809 * fix(scripts): 强化重试分类逻辑并保留超时错误上下文 by @yiliang114 in https://github.com/QwenLM/qwen-code/pull/7854 * feat(web-shell): 添加 composer 页脚渲染器 by @dreamWB in https://github.com/QwenLM/qwen-code/pull/7856 * fix(core): 对永久性配额耗尽的 429 错误快速失败,而非静默重试 by @yiliang114 in https://github.com/QwenLM/qwen-code/pull/7842 * fix(web-shell): 隔离历史记录与会话草稿 by @ytahdn in https://github.com/QwenLM/qwen-code/pull/7810 * fix(triage): 在归咎于 PR 之前,先对临时性 npm ci 失败进行重试 by @wenshao in https://github.com/QwenLM/qwen-code/pull/7884 * fix(webui): 在转录分页锚点回退时使用 history_truncated 标记的 recordId by @wenshao in https://github.com/QwenLM/qwen-code/pull/7829 * feat: 将会话写入者租约限制为可选开启 by @doudouOUC in https://github.com/QwenLM/qwen-code/pull/7894 * fix(review): 将剩余的时间预算分配给 review 重试 by @wenshao in https://github.com/QwenLM/qwen-code/pull/7852 * fix(integration): 为已提交提示词来源测试配置 Docker 沙箱网络 (#7879) by @qwen-code-dev-bot in https://github.com/QwenLM/qwen-code/pull/7881 * fix(cli): 报告真实的 $0.00 费用而非 N/A by @chinesepowered in https://github.com/QwenLM/qwen-code/pull/7784 * fix(core): 拒绝 socks5h 和 socks4a 代理 URL by @chinesepowered in https://github.com/QwenLM/qwen-code/pull/7786 * fix(core): 修正 checkContentLoop 中的字符类 by @chinesepowered in https://github.com/QwenLM/qwen-code/pull/7788 * fix(web-shell): 使仅带索引的 /copy 命令生效 by @chinesepowered in https://github.com/QwenLM/qwen-code/pull/7789 * fix(core): 拒绝 -i 不在末尾的合并 sed 标志 by @chinesepowered in https://github.com/QwenLM/qwen-code/pull/7790 * fix(core): 将 Grep 模式放在 -e 之后传递,以避免前导连字符被误认为选项 by @chinesepowered in https://github.com/QwenLM/qwen-code/pull/7863 * feat(ci): 通过在现有 issue 上评论来去重 E2E 失败问题 by @yiliang114 in https://github.com/QwenLM/qwen-code/pull/7792 * fix(core): 像其他 getErrorMessage 路径一样限制裸 Error 的消息长度 by @chinesepowered in https://github.com/QwenLM/qwen-code/pull/7865 * fix(cli): 使 wrapToVisualLines 像其兄弟函数一样计算零宽字符 by @chinesepowered in https://github.com/QwenLM/qwen-code/pull/7873 * fix(core): 将分隔符和省略号计入预览预算 by @chinesepowered in https://github.com/QwenLM/qwen-code/pull/7874 * fix(cli): 在重新打开分割围栏时不计算不完整的末尾行 by @chinesepowered in https://github.com/QwenLM/qwen-code/pull/7875 * fix(cli): 使 /copy <message> <index> 能够选择代码块 by @chinesepowered in https://github.com/QwenLM/qwen-code/pull/7883 * feat(triage): 添加 revert-pattern 高风险路径检测 by @yiliang114 in https://github.com/QwenLM/qwen-code/pull/7414 * feat(web-shell): 添加原生工作区文件夹选择器 by @qqqys in https://github.com/QwenLM/qwen-code/pull/7849 * feat(web-shell): 添加 Channel 配置流程 by @qqqys in https://github.com/QwenLM/qwen-code/pull/7893 * fix(test): 恢复 first-output 基准测试的测量有效性并修正其产物 schema by @doudouOUC in https://github.com/QwenLM/qwen-code/pull/7820 * fix(daemon): 强化 Todo Stop Guard 的延续逻辑 by @doudouOUC in https://github.com/QwenLM/qwen-code/pull/7821 * fix(core): 从公共 git 目录读取 stash reflog by @chinesepowered in https://github.com/QwenLM/qwen-code/pull/7774 * fix(core): 在 toOpenAPI30 中保留 Draft 4 布尔值互斥边界 by @chinesepowered in https://github.com/QwenLM/qwen-code/pull/7782 * fix(core): 将 maxDepth 应用于扁平格式的记忆导入 by @chinesepowered in https://github.com/QwenLM/qwen-code/pull/7851 * fix(core): 渲染思考部分的推理内容而非布尔标志 by @chinesepowered in https://github.com/QwenLM/qwen-code/pull/7866 * fix(core): 为纯文本模型桥接工具结果图片 by @LaZzyMan in https://github.com/QwenLM/qwen-code/pull/7484 * fix(cli): 修补 ink 以在间接子树移除时清除 staticNode by @chiga0 in https://github.com/QwenLM/qwen-code/pull/7816 * fix(core): 在 API 调用期间自动重试临时网络错误 by @chiga0 in https://github.com/QwenLM/qwen-code/pull/7898 * fix(cli): 隐藏来自之前轮次的过期粘性待办事项 by @chiga0 in https://github.com/QwenLM/qwen-code/pull/7900 * fix(serve): 在关闭时释放托管会话的写入器锁 by @doudouOUC in https://github.com/QwenLM/qwen-code/pull/7812 * perf(core): 在稳定的系统前缀上添加早期 Anthropic 缓存断点 by @DragonnZhang in https://github.com/QwenLM/qwen-code/pull/7912 * fix(cli): 为 git 分支名称显示添加轮询回退机制 by @qwen-code-dev-bot in https://github.com/QwenLM/qwen-code/pull/7830 * fix(cli): 从 @mention 工具卡片中移除冗余的“Read file”前缀 by @qwen-code-dev-bot in https://github.com/QwenLM/qwen-code/pull/7902 * feat(core): 添加 ARMS 会话用户 ID by @doudouOUC in https://github.com/QwenLM/qwen-code/pull/7921 * fix(safe-mode): 保留调用方提供的一级 MCP 服务器 by @VitaliBabkin in https://github.com/QwenLM/qwen-code/pull/7827 * fix(ci): 保持 main 分支上合并后的 E2E 信号存活 by @wenshao in https://github.com/QwenLM/qwen-code/pull/7795 * fix(core): 当输出流无法刷新时跳过刷新等待 by @ComplexSimply in https://github.com/QwenLM/qwen-code/pull/7905 * fix(core): 在 splitCommands 中追踪命令替换内的引号 by @chinesepowered in https://github.com/QwenLM/qwen-code/pull/7870 * fix(core): 将每个服务器和每个工具的 always-allow 结果计为已批准 by @chinesepowered in https://github.com/QwenLM/qwen-code/pull/7869 * fix(web-shell): 开始新聊天时向主机报告预期的工作区 by @wenshao in https://github.com/QwenLM/qwen-code/pull/7910 * fix(cli): 默认使用虚拟化终端历史记录 by @ZevGit in https://github.com/QwenLM/qwen-code/pull/5738 * fix(ci): 在清理过程中恢复工作区所有权以防止 EACCES 错误 by @qwen-code-dev-bot in https://github.com/QwenLM/qwen-code/pull/7931 * perf(ci): 将 E2E 套件运行时间从约 40 分钟缩短至约 24 分钟 by @wenshao in https://github.com/QwenLM/qwen-code/pull/7798 * feat(channels): 在守护进程会话中暴露循环工具 by @qqqys in https://github.com/QwenLM/qwen-code/pull/7891 * fix(review): 当未重新线程化 --effort 时恢复已解决的耗时 by @wenshao in https://github.com/QwenLM/qwen-code/pull/7855 * feat(web-shell): 支持语音保持模式 by @callmeYe in https://github.com/QwenLM/qwen-code/pull/7839 * feat(web-shell): 管理 Channel 配对请求 by @qqqys in https://github.com/QwenLM/qwen-code/pull/7909 * feat(channels): 按原因分发 GitHub 通知 by @yiliang114 in https://github.com/QwenLM/qwen-code/pull/7826 * feat(web-shell): 添加 git 分支选择器、提交对话框和创建 PR 流程 by @wenshao in https://github.com/QwenLM/qwen-code/pull/7731 * feat(triage): 在 CI 路径上显示沙盒通道 by @wenshao in https://github.com/QwenLM/qwen-code/pull/7917 * fix(scripts): 精简发布说明模型提示词并记录请求耗时 by @yiliang114 in https://github.com/QwenLM/qwen-code/pull/7941 * feat(web-shell): 为旁支问题建议 BTW by @carffuca in https://github.com/QwenLM/qwen-code/pull/7935 * fix(release): 在发布版本升级期间将 channel-base 依赖固定为精确版本 by @yiliang114 in https://github.com/QwenLM/qwen-code/pull/7953 * feat(triage): 使验证报告支持中文可读 by @wenshao in https://github.com/QwenLM/qwen-code/pull/7918 * fix(triage): 使构建过程守卫具备可诊断性和僵尸进程感知能力 by @wenshao in https://github.com/QwenLM/qwen-code/pull/7858 * fix(ci): 为每个作业分配独立的代理包装目录 by @wenshao in https://github.com/QwenLM/qwen-code/pull/7951 * feat(autofix): 在五轮修改后延迟建议 by @qqqys in https://github.com/QwenLM/qwen-code/pull/7913 * feat(core): 将 Goal v3 连接到回合引擎 by @qqqys in https://github.com/QwenLM/qwen-code/pull/7895 * feat(core): 限制图片读取以实现可靠缩放 by @qqqys in https://github.com/QwenLM/qwen-code/pull/7911 * fix(integration): 根据环境变量超时时间调整交互式先读后写等待时间 (#7942) by @qwen-code-dev-bot in https://github.com/QwenLM/qwen-code/pull/7943 * test(integration): 修复 asyncGenerator canUseTool 内容断言的不稳定问题 (#7937) by @qwen-code-dev-bot in https://github.com/QwenLM/qwen-code/pull/7939 * fix(ci): 在签出前清理过期的 .qwen/ 目录以防止权限拒绝 by @qwen-code-dev-bot in https://github.com/QwenLM/qwen-code/pull/7977 * feat(triage): 将未验证语句设为机械式 2b-bis 触发器 by @wenshao in https://github.com/QwenLM/qwen-code/pull/7965 * fix(ci): 恢复验证工作区权限 by @yiliang114 in https://github.com/QwenLM/qwen-code/pull/7992 * feat(external-context): 添加已提交提示词的自动召回 by @doudouOUC in https://github.com/QwenLM/qwen-code/pull/7877 * fix(ci): 更新 ECS 运行器使用的 Qwen 二进制文件 by @yiliang114 in https://github.com/QwenLM/qwen-code/pull/8000 * feat(web-shell): 使用 markdown-chart 渲染流式图表 by @zhangxy-zju in https://github.com/QwenLM/qwen-code/pull/7916 * feat: 增强 ripgrep 的健壮性 by @water-in-stone in https://github.com/QwenLM/qwen-code/pull/7888 * fix(core): 标记从未扩展过项预算的文件夹 by @chinesepowered in https://github.com/QwenLM/qwen-code/pull/7868 * fix(feishu): 确保代码块分块在消息大小限制内 by @chinesepowered in https://github.com/QwenLM/qwen-code/pull/7850 * fix(web-shell): 在会话 URL 中保留 token 和基础路径 by @ytahdn in https://github.com/QwenLM/qwen-code/pull/7926 * ci: 添加独立的 DSW SWE-bench 发布流水线 by @DennisYu07 in https://github.com/QwenLM/qwen-code/pull/7656 * fix(web-shell): 优化 Channel 配对请求 by @qqqys in https://github.com/QwenLM/qwen-code/pull/7997 * fix(cli): 修正全屏模式下硬件光标偏移一位的问题 by @chiga0 in https://github.com/QwenLM/qwen-code/pull/7998 * fix(cli): 防止 Windows 上 SGR 鼠标事件被误吞为粘贴 by @chiga0 in https://github.com/QwenLM/qwen-code/pull/7988 * feat(channels): 添加钉钉交互卡片 by @BenGuanRan in https://github.com/QwenLM/qwen-code/pull/6930 * feat(web-shell): 完善高级表格控件 by @ytahdn in https://github.com/QwenLM/qwen-code/pull/7999 * fix(serve): 允许对大文本文件进行有界读取 by @doudouOUC in https://github.com/QwenLM/qwen-code/pull/7947 * fix(web-shell): 在卡片中优先使用制品类型元数据 by @ytahdn in https://github.com/QwenLM/qwen-code/pull/7973 * fix(web-shell): 降低 Composer 输入延迟 by @ytahdn in https://github.com/QwenLM/qwen-code/pull/8015 * fix(webui): 稳定会话历史分页 by @ytahdn in https://github.com/QwenLM/qwen-code/pull/8001 * fix(release): 当上一版本与目标分叉时跳过 notes-start-tag (#7969) by @qwen-code-dev-bot in https://github.com/QwenLM/qwen-code/pull/7970 * fix(sdk): 将守护进程浏览器包预算提高至 177KB by @wenshao in https://github.com/QwenLM/qwen-code/pull/8024 * fix(cli): 将 Kitty Super (Command) 修饰键映射为 meta by @chiga0 in https://github.com/QwenLM/qwen-code/pull/7996 * fix(daemon): 区分处理中的 Channel 工作器诊断信息 by @destire-mio in https://github.com/QwenLM/qwen-code/pull/7932 * feat(triage): 验证评论以定性结论开头,折叠中文内容 by @wenshao in https://github.com/QwenLM/qwen-code/pull/7974 * fix(review): 在构建测试安装和构建前预检可用磁盘空间 by @wenshao in https://github.com/QwenLM/qwen-code/pull/7986 * test(integration): 将不稳定的 E2E 测试迁移至 fake-openai-server by @yiliang114 in https://github.com/QwenLM/qwen-code/pull/7934 * feat(triage): 在 ECS 上运行外部 /verify,并在工作区清理后执行 by @wenshao in https://github.com/QwenLM/qwen-code/pull/7985 * fix(cli): 保留 Ctrl+Shift+C 用于终端复制,而非退出/清除 by @chiga0 in https://github.com/QwenLM/qwen-code/pull/8011 * fix(core): 自动记录制品文件写入 by @chiga0 in https://github.com/QwenLM/qwen-code/pull/7914 * fix(cli): MCP 提示词补全不再阻塞可选参数的 Enter 键 by @qwen-code-dev-bot in https://github.com/QwenLM/qwen-code/pull/7995 * feat(hooks): 添加 security.allowPrivateNetworkHooks 以允许受信任作用域绕过 SSRF 范围检查 by @xurik in https://github.com/QwenLM/qwen-code/pull/7968 * feat(web-shell): 添加带溢出处理的分割窗格头部操作插槽 by @samuelhsin in https://github.com/QwenLM/qwen-code/pull/7808 * feat(channels): 添加 GitLab 轮询 Channel 适配器 by @OrbitZore in https://github.com/QwenLM/qwen-code/pull/7862 * fix(channels): 在守护进程会话中禁用原生 cron by @qqqys in https://github.com/QwenLM/qwen-code/pull/8034 * feat(channels): 添加配对审批管理 API by @qqqys in https://github.com/QwenLM/qwen-code/pull/8045 * feat(github-channel): 过滤通知原因 by @xianjianlf2 in https://github.com/QwenLM/qwen-code/pull/8031 * fix(channels): 拒绝不可用的 GitHub 自允许列表 by @zjunothing in https://github.com/QwenLM/qwen-code/pull/8055 * fix(core): 从 send_message 工具模式中移除顶层 oneOf by @netbrah in https://github.com/QwenLM/qwen-code/pull/7989 * fix(cli): 防止调整大小重绘引发滚动风暴 by @chiga0 in https://github.com/QwenLM/qwen-code/pull/8009 * feat(review): 将针对非平凡差异的零问题 Approve 标记为低信号 by @wenshao in https://github.com/QwenLM/qwen-code/pull/7987 * fix(core): 恢复时重新绑定 fork 能力 by @DragonnZhang in https://github.com/QwenLM/qwen-code/pull/7927 * feat(core): 在上下文窗口阈值内预加载延迟工具 by @DragonnZhang in https://github.com/QwenLM/qwen-code/pull/7922 * fix(channels): 使 GitHub 最终响应发布为单次执行 by @yiliang114 in https://github.com/QwenLM/qwen-code/pull/8033 * fix(ci): 在 PR 审查作业的 checkout 之前恢复工作区所有权 by @yiliang114 in https://github.com/QwenLM/qwen-code/pull/8062 * fix(release): 将预览版基础版本提升至已发布稳定版之上 by @yiliang114 in https://github.com/QwenLM/qwen-code/pull/7978 * test(web-shell): 扩展恢复的历史记录分页回归测试覆盖范围 by @PratikWayase in https://github.com/QwenLM/qwen-code/pull/7907 * fix(serve): 添加认证会话写入器交接 by @doudouOUC in https://github.com/QwenLM/qwen-code/pull/7976 * test(integration): 测量即时提示词分发阶段 by @doudouOUC in https://github.com/QwenLM/qwen-code/pull/7994 * fix(core): 允许在仅思考阶段进行传输流重试 by @ComplexSimply in https://github.com/QwenLM/qwen-code/pull/7938 * fix(github-channel): 验证并文档化 reasonFilter by @yiliang114 in https://github.com/QwenLM/qwen-code/pull/8035 * fix(core): 防止 CJK 字符导致输出截断时 char/4 计数偏低 by @zambalee in https://github.com/QwenLM/qwen-code/pull/7963 * fix(core): 在工具调用轮次间保留活跃的 Todo 上下文 by @yiliang114 in https://github.com/QwenLM/qwen-code/pull/7919 * feat(review): 添加 `review run` —— 支持机器可读结论的无头审查 by @wenshao in https://github.com/QwenLM/qwen-code/pull/7983 * fix(cli): 在工作区入口标记 QWEN_CODE_CLI 并发布 QWEN_CODE_MODEL by @wenshao in https://github.com/QwenLM/qwen-code/pull/7993 * feat(verify-pr): 新增维护者验证轮次中的七种技巧 by @wenshao in https://github.com/QwenLM/qwen-code/pull/8010 * feat(triage): 将 /verify 智能体预算从 25m 提升至 120m by @wenshao in https://github.com/QwenLM/qwen-code/pull/8014 * fix(autofix): 累计超时熔断机制、精简重试提示词、真实交接话术 by @wenshao in https://github.com/QwenLM/qwen-code/pull/8044 * feat(autofix): 每推送十轮后发布接管里程碑摘要 by @wenshao in https://github.com/QwenLM/qwen-code/pull/8046 * fix(autofix): 由命令本身发布接管交互确认 by @wenshao in https://github.com/QwenLM/qwen-code/pull/8043 * test(e2e): 在偶发的子智能体用例中强制委派 (#8070) by @qwen-code-dev-bot in https://github.com/QwenLM/qwen-code/pull/8073 * fix(web-shell): 稳定增强型表格控件 by @ytahdn in https://github.com/QwenLM/qwen-code/pull/8041 * feat(github-channel): 新增临时工作状态反应 by @yiliang114 in https://github.com/QwenLM/qwen-code/pull/8061 * fix(integration): 使交互式先读后写测试确定性化 (#8060) by @qwen-code-dev-bot in https://github.com/QwenLM/qwen-code/pull/8064 * feat(autofix): 退避扫描检查空闲候选项 by @wenshao in https://github.com/QwenLM/qwen-code/pull/8049 * fix(web-shell): 显示待处理消息的服务器队列状态 by @wenshao in https://github.com/QwenLM/qwen-code/pull/8065 * fix(web-shell): 改进工件预览 by @ytahdn in https://github.com/QwenLM/qwen-code/pull/8078 * feat(triage): 使 /verify 证据截图真正可行 by @wenshao in https://github.com/QwenLM/qwen-code/pull/8016 * fix(ci): 在分配运行器前启用附件守卫检查 by @wenshao in https://github.com/QwenLM/qwen-code/pull/8095 * fix(web-shell): 翻译遗留的 /skills 调用 by @ytahdn in https://github.com/QwenLM/qwen-code/pull/8103 * fix(verify-pr): 在范围选择中控制证据捕获预算 by @wenshao in https://github.com/QwenLM/qwen-code/pull/8104 * fix(web-shell): 显示提示词发送失败及重试操作 by @ytahdn in https://github.com/QwenLM/qwen-code/pull/8106 * fix(web-shell): 使问题提交支持重试 by @ytahdn in https://github.com/QwenLM/qwen-code/pull/8096 * fix(web-shell): 保留已批准的工具有效结果 by @ytahdn in https://github.com/QwenLM/qwen-code/pull/8099 * fix(autofix): 在 PR 上回复轮次上限拒绝信息,而非仅记录在日志中 by @wenshao in https://github.com/QwenLM/qwen-code/pull/8067 * fix(autofix): 通过合并移动后的头节点并重试来挽救竞态失败的推送 by @wenshao in https://github.com/QwenLM/qwen-code/pull/8042 * feat(autofix): 在仅关键模式下按来源分配反馈预算 by @wenshao in https://github.com/QwenLM/qwen-code/pull/8071 * feat(core): 标记 UserPromptSubmit 钩子上下文并记录显示来源 by @zjgzx1988 in https://github.com/QwenLM/qwen-code/pull/7956 * fix(core): 在会话关闭期间中止工作流 by @qqqys in https://github.com/QwenLM/qwen-code/pull/8107 * fix(test): 解决 setModel E2E 测试中结果消息的轮次完成问题 (#8072) by @qwen-code-dev-bot in https://github.com/QwenLM/qwen-code/pull/8075 * feat(serve): 按字节游标分页显示大型文本文件 by @doudouOUC in https://github.com/QwenLM/qwen-code/pull/8002 * fix(test): 为多模型 E2E 轮次增加更多 CI 超时缓冲时间 (#8108) by @qwen-code-dev-bot in https://github.com/QwenLM/qwen-code/pull/8111 * fix(serve): 防止重复扫描工作区技能 by @doudouOUC in https://github.com/QwenLM/qwen-code/pull/8080 * feat(review): 在测试效能中引入语句级变异探测 by @wenshao in https://github.com/QwenLM/qwen-code/pull/8020 * feat(web-shell): 新增上下文任务面板 by @ytahdn in https://github.com/QwenLM/qwen-code/pull/7929 * feat(agent): 新增 fork 工具执行白名单 by @destire-mio in https://github.com/QwenLM/qwen-code/pull/8066 * fix(serve): 隔离守护进程会话维护写入器 by @doudouOUC in https://github.com/QwenLM/qwen-code/pull/7975 * fix(serve): 通过将侧任务回滚路由至工作区会话服务来恢复构建 by @wenshao in https://github.com/QwenLM/qwen-code/pull/8144 * fix(web-shell): 隔离工作树会话执行 by @wenshao in https://github.com/QwenLM/qwen-code/pull/8068 * feat(web-shell): 管理配对审批 by @qqqys in https://github.com/QwenLM/qwen-code/pull/8081 * fix(test): 允许权限模式 E2E 响应较慢 by @wenshao in https://github.com/QwenLM/qwen-code/pull/8149 * fix(test): 使自动编辑权限 E2E 测试确定性化 by @wenshao in https://github.com/QwenLM/qwen-code/pull/8154 ## 新贡献者 * @VitaliBabkin 首次贡献于 https://github.com/QwenLM/qwen-code/pull/7827 * @xianjianlf2 首次贡献于 https://github.com/QwenLM/qwen-code/pull/8031 * @zambalee 首次贡献于 https://github.com/QwenLM/qwen-code/pull/7963 **完整更新日志**: https://github.com/QwenLM/qwen-code/compare/dsw-manual-poc-20260727-1...v0.21.1-nightly.20260731.702932cc7