← 返回更新日志

Qwen Code v0.15.0

2026-04-22 · GitHub 原文
## 更新内容 * feat(acp): 为 ACP 集成添加完整的 hooks 支持 by @DennisYu07 in https://github.com/QwenLM/qwen-code/pull/3248 * feat: 优化紧凑模式用户体验 — 快捷键、设置同步与安全性 by @chiga0 in https://github.com/QwenLM/qwen-code/pull/3100 * feat(hooks): 添加对 HTTP Hook、Function Hook 和 Async Hook 的支持 by @DennisYu07 in https://github.com/QwenLM/qwen-code/pull/2827 * fix(sdk): 避免在 ProcessTransport 中泄漏进程退出监听器 by @reidliu41 in https://github.com/QwenLM/qwen-code/pull/3295 * fix(cli): 防止状态栏生成 EBADF 导致 CLI 崩溃 (#3264) by @wenshao in https://github.com/QwenLM/qwen-code/pull/3310 * fix(cli): 在摘要更改前保持“开始新聊天会话”状态 by @reidliu41 in https://github.com/QwenLM/qwen-code/pull/3308 * feat(memory): 实现托管式自动记忆与自动梦境系统 by @LaZzyMan in https://github.com/QwenLM/qwen-code/pull/3087 * fix(cli): 将更新通知推迟至模型响应完成后显示 by @pic4xiu in https://github.com/QwenLM/qwen-code/pull/3321 * test(core): 稳定化 glob 截断测试 by @reidliu41 in https://github.com/QwenLM/qwen-code/pull/3322 * docs: 修复 Windows 安装命令以同时兼容 CMD 和 PowerShell by @Skyline-9 in https://github.com/QwenLM/qwen-code/pull/3252 * feat(cli): 支持多行状态栏输出 by @wenshao in https://github.com/QwenLM/qwen-code/pull/3311 * fix(core): 限制技能监听器深度以防止文件描述符耗尽 by @tanzhenxin in https://github.com/QwenLM/qwen-code/pull/3320 * fix(core): 切换模型时从历史记录中剥离思考块 by @tanzhenxin in https://github.com/QwenLM/qwen-code/pull/3315 * docs: 更新认证方法以反映 OAuth 已停用 by @joeytoday in https://github.com/QwenLM/qwen-code/pull/3325 * fix(core): 添加 Shell 参数引号使用指南以防止特殊字符错误 by @LaZzyMan in https://github.com/QwenLM/qwen-code/pull/3327 * refactor(core): 将 fork 子代理参数从 execute() 移至构造阶段 by @tanzhenxin in https://github.com/QwenLM/qwen-code/pull/3255 * feat(skills): 添加用于并行批量操作的 /batch 技能 by @doudouOUC in https://github.com/QwenLM/qwen-code/pull/3079 * feat: 支持无头模式与 SDK 的后台子代理 by @tanzhenxin in https://github.com/QwenLM/qwen-code/pull/3076 * feat(core): 添加基于路径的上下文规则注入(来自 .qwen/rules/) by @wenshao in https://github.com/QwenLM/qwen-code/pull/3339 * test(integration): 在交互测试中匹配新的 cron 通知格式 by @tanzhenxin in https://github.com/QwenLM/qwen-code/pull/3402 * feat(cli): 为 TUI 添加双输出 sidecar 模式 by @chiga0 in https://github.com/QwenLM/qwen-code/pull/3352 * feat: 将 `M-d` 绑定至合理(类 Emacs)的默认值 by @pedrormjunior in https://github.com/QwenLM/qwen-code/pull/3358 * fix(cli): 减少终端重绘时的光标移动 by @reidliu41 in https://github.com/QwenLM/qwen-code/pull/3381 * fix(dingtalk): 仅在续传块上添加 '(cont.)' 后缀,而非首块 by @chinesepowered in https://github.com/QwenLM/qwen-code/pull/2977 * fix(dingtalk): 移除 @mention 后保留空文本而非回退 by @chinesepowered in https://github.com/QwenLM/qwen-code/pull/2978 * fix(dingtalk): 移除 reactionContext 映射表以阻止被屏蔽消息的内存泄漏 by @chinesepowered in https://github.com/QwenLM/qwen-code/pull/2979 * fix(sandbox): 当镜像名称不含冒号时回退至 'latest' 标签 by @chinesepowered in https://github.com/QwenLM/qwen-code/pull/2962 * fix(scripts): 清理脚本中移除重复的 bundle rmSync by @chinesepowered in https://github.com/QwenLM/qwen-code/pull/2964 * fix(integration-tests): 遵循 stdinDoesNotEnd 选项 by @chinesepowered in https://github.com/QwenLM/qwen-code/pull/2966 * fix(scripts): 修复无描述枚举设置生成的 JSON schema 中出现的 `"undefined Options: ..."` 问题 by @chinesepowered in https://github.com/QwenLM/qwen-code/pull/2963 * fix(text-buffer): 统一偏移量到位置的转换逻辑 by @chinesepowered in https://github.com/QwenLM/qwen-code/pull/2969 * fix(weixin): 检查完整的 4 字节 PNG 魔数签名 by @chinesepowered in https://github.com/QwenLM/qwen-code/pull/2970 * fix(cli): 崩溃重建 AcpBridge 后重新注册断开连接监听器 by @chinesepowered in https://github.com/QwenLM/qwen-code/pull/2975 * fix(sdk): 在 Stream.return() 中处理挂起的 next() 承诺以防止阻塞 by @chinesepowered in https://github.com/QwenLM/qwen-code/pull/2981 * fix(cli): 在 AskUserQuestionDialog 中按数字键时自动提交 by @doudouOUC in https://github.com/QwenLM/qwen-code/pull/3407 * feat(core): 检测工具验证重试循环并注入停止指令 by @euxaristia in https://github.com/QwenLM/qwen-code/pull/3178 * fix(tool-registry): 添加带并发去重功能的延迟工厂注册 by @doudouOUC in https://github.com/QwenLM/qwen-code/pull/3297 * 修复类名拼写错误 by @szepeviktor in https://github.com/QwenLM/qwen-code/pull/2189 * test(core): 更新调度器注册表 mock by @reidliu41 in https://github.com/QwenLM/qwen-code/pull/3415 * fix(cli): 等待双输出流关闭 by @reidliu41 in https://github.com/QwenLM/qwen-code/pull/3416 * feat(mcp): 为 OAuth 授权 URL 添加 OSC 52 复制快捷键 by @BZ-D in https://github.com/QwenLM/qwen-code/pull/3393 * feat(vscode-ide-companion): 添加专用的代理执行显示 by @yiliang114 in https://github.com/QwenLM/qwen-code/pull/2590 * perf(vscode): 修复长对话中的输入延迟 by @yiliang114 in https://github.com/QwenLM/qwen-code/pull/2550 * feat(cli): 添加早期输入捕获以防止启动期间按键丢失 by @doudouOUC in https://github.com/QwenLM/qwen-code/pull/3319 * fix(build): 通过 node --import 直接调用 tsx 而非 npx by @euxaristia in https://github.com/QwenLM/qwen-code/pull/3237 * ci(stale): 为 Pull Request 启用 60+30 过期/关闭策略 by @wenshao in https://github.com/QwenLM/qwen-code/pull/3375 * feat(cli): 在 statusLine 中支持 refreshInterval 以实现定期刷新 by @wenshao in https://github.com/QwenLM/qwen-code/pull/3383 * fix(core): 在仓库初始化期间支持旧版 Git by @reidliu41 in https://github.com/QwenLM/qwen-code/pull/3436 * feat(core): 添加动态蜂群工作器工具 by @reidliu41 in https://github.com/QwenLM/qwen-code/pull/3433 * fix(cli): /clear 命令可关闭活跃的 /btw 侧边问题对话框 by @sharziki in https://github.com/QwenLM/qwen-code/pull/3431 * fix(cli): 使 /btw 能够使用实时对话上下文 by @yiliang114 in https://github.com/QwenLM/qwen-code/pull/3429 * fix: 当上下文使用量超出限制时显示 ">100%" by @DennisYu07 in https://github.com/QwenLM/qwen-code/pull/2766 * fix(ui): 限制 shell 输出宽度以防止框体溢出 by @euxaristia in https://github.com/QwenLM/qwen-code/pull/2857 * feat(tools): 为 WebFetch 工具添加对 Agents Markdown 的支持 by @gin-lsl in https://github.com/QwenLM/qwen-code/pull/2734 * fix(core): 在清理过程中移除中止监听器 by @reidliu41 in https://github.com/QwenLM/qwen-code/pull/3438 * feat(core): 通过停滞检测 + 验证重试检查增强循环检测 by @euxaristia in https://github.com/QwenLM/qwen-code/pull/3236 * feat(cli): 添加 /doctor 诊断命令 by @doudouOUC in https://github.com/QwenLM/qwen-code/pull/3404 * feat(vscode-companion): 启用计划模式切换及审批 UI by @yiliang114 in https://github.com/QwenLM/qwen-code/pull/2551 * feat(cli): 添加 /recap 会话回顾功能,并在返回时自动显示 by @wenshao in https://github.com/QwenLM/qwen-code/pull/3434 * fix(vscode-ide-companion): 保持分屏流式消息的顺序 by @yiliang114 in https://github.com/QwenLM/qwen-code/pull/3450 * feat(cli): 添加基础启动模式 by @yiliang114 in https://github.com/QwenLM/qwen-code/pull/3448 * feat(vscode-ide-companion): 支持 /insight 命令 by @yiliang114 in https://github.com/QwenLM/qwen-code/pull/2593 * feat(cli): 添加 slashCommands.disabled 设置以控制斜杠命令 by @ihubanov in https://github.com/QwenLM/qwen-code/pull/3445 * feat(core): 添加 PDF 文本提取回退机制及 Jupyter 笔记本解析 by @wenshao in https://github.com/QwenLM/qwen-code/pull/3160 * feat(cli): 为 `mcp add` 命令添加 OAuth 配置参数 by @BZ-D in https://github.com/QwenLM/qwen-code/pull/3442 * refactor(cli): 使用基于能力的过滤机制替换斜杠命令白名单(第一阶段) by @LaZzyMan in https://github.com/QwenLM/qwen-code/pull/3283 * fix(core): 为 MCP stdio 服务器规范化 Windows PATH by @yiliang114 in https://github.com/QwenLM/qwen-code/pull/3451 * feat(cli): 添加工具执行进度消息 by @wenshao in https://github.com/QwenLM/qwen-code/pull/3155 * Revert "feat(core): 添加动态蜂群工作器工具" by @wenshao in https://github.com/QwenLM/qwen-code/pull/3468 * fix(core): 防止格式错误的权限规则成为全局工具捕获项 by @doudouOUC in https://github.com/QwenLM/qwen-code/pull/3467 * feat(cli): 使 ACP 消息重写超时时间可配置 by @zhangxy-zju in https://github.com/QwenLM/qwen-code/pull/3475 * fix(cli): 将 /recap 固定在输入框上方,并使默认值与 fastModel 对齐 by @wenshao in https://github.com/QwenLM/qwen-code/pull/3478 * feat(cli): 将 /stats 行归属到对应的子代理 by @tanzhenxin in https://github.com/QwenLM/qwen-code/pull/3229 * test(integration): 将设置迁移探测从 --help 切换为 mcp list by @tanzhenxin in https://github.com/QwenLM/qwen-code/pull/3486 * fix(cli): 重构会话回顾渲染逻辑,并添加模糊阈值设置 by @wenshao in https://github.com/QwenLM/qwen-code/pull/3482 * feat(webui): 在通用工具和 web-fetch 工具输出中渲染 Markdown by @qqqys in https://github.com/QwenLM/qwen-code/pull/3469 * fix(mcp): 使换行后的 OAuth 授权链接可点击 by @BZ-D in https://github.com/QwenLM/qwen-code/pull/3489 * feat(cli): 在流式传输期间显示实时 Token 消耗情况 (#2742) by @qqqys in https://github.com/QwenLM/qwen-code/pull/3329 * fix(core): 通过多轮对话续接机制恢复被截断的工具调用 by @wenshao in https://github.com/QwenLM/qwen-code/pull/3313 * fix(editor): 在 CLI 未加入 PATH 时于 macOS 上检测 Zed.app by @gy1016 in https://github.com/QwenLM/qwen-code/pull/3303 * fix(openai): 当设置 samplingParams 时,原样透传 by @yeelam-gordon in https://github.com/QwenLM/qwen-code/pull/3458 * feat(retry): 为无人值守的 CI/CD 环境添加持久化重试模式 by @zhangxy-zju in https://github.com/QwenLM/qwen-code/pull/3080 * feat(vscode): 使用编程计划 / API Key 提供商设置替换 OAuth by @yiliang114 in https://github.com/QwenLM/qwen-code/pull/3398 * fix: 优雅处理缺失 xdg-open (ENOENT) 的情况以防止崩溃 by @Ojhaharsh in https://github.com/QwenLM/qwen-code/pull/1675 * fix(core): 对仅推理的助手内容使用空字符串替代 null by @LaZzyMan in https://github.com/QwenLM/qwen-code/pull/3499 * feat(arena): 为代理结果添加对比摘要 by @reidliu41 in https://github.com/QwenLM/qwen-code/pull/3394 * feat(session): 为会话添加重命名、删除及自动生成标题功能 by @qqqys in https://github.com/QwenLM/qwen-code/pull/3093 * feat(cli): 通过可配置的行数限制截断内联 shell 输出 by @wenshao in https://github.com/QwenLM/qwen-code/pull/3508 * fix(cli): 在 ACP 中注入计划/子代理/竞技场系统提醒 (#1151) by @zhangxy-zju in https://github.com/QwenLM/qwen-code/pull/3479 * fix(core): 拒绝被截断的子代理 write_file 调用 by @doudouOUC in https://github.com/QwenLM/qwen-code/pull/3505 * feat(cli): 自动检测终端主题('auto' 或未设置) by @BZ-D in https://github.com/QwenLM/qwen-code/pull/3460 * feat(cli): 第二阶段 — 斜杠命令多模式扩展、ACP 修复及 UX 改进 by @LaZzyMan in https://github.com/QwenLM/qwen-code/pull/3377 * chore(release): 将版本号提升至 0.15.0 by @yiliang114 in https://github.com/QwenLM/qwen-code/pull/3526 ## 新贡献者 * @Skyline-9 在 https://github.com/QwenLM/qwen-code/pull/3252 中首次贡献 * @pedrormjunior 在 https://github.com/QwenLM/qwen-code/pull/3358 中首次贡献 * @szepeviktor 在 https://github.com/QwenLM/qwen-code/pull/2189 中首次贡献 * @sharziki 在 https://github.com/QwenLM/qwen-code/pull/3431 中首次贡献 * @gin-lsl 在 https://github.com/QwenLM/qwen-code/pull/2734 中首次贡献 * @ihubanov 在 https://github.com/QwenLM/qwen-code/pull/3445 中首次贡献 * @gy1016 在 https://github.com/QwenLM/qwen-code/pull/3303 中首次贡献 * @yeelam-gordon 在 https://github.com/QwenLM/qwen-code/pull/3458 中首次贡献 * @Ojhaharsh 在 https://github.com/QwenLM/qwen-code/pull/1675 中首次贡献 **完整更新日志**: https://github.com/QwenLM/qwen-code/compare/v0.14.5...v0.15.0