← 返回更新日志

Qwen Code v0.24.1

2026-09-19 · GitHub 原文
<!-- qwen-release-notes:v1 --> ## 亮点 _详见下方的完整变更列表。_ ## 不兼容变更 - refactor(goal)!: 停止发送 active_goal 流事件 ([#12181](https://github.com/QwenLM/qwen-code/pull/12181)) by @qqqys ## 完整变更列表 ### 新功能 - feat(workflows): 让 agent() 将子智能体限制为明确的工具白名单 ([#12051](https://github.com/QwenLM/qwen-code/pull/12051)) by @qqqys - feat: 按模型选择 OpenAI wire API ([#11538](https://github.com/QwenLM/qwen-code/pull/11538)) by @tanzhenxin - feat(core): 在进度事件中识别钩子调用并公布消息总线 ([#12075](https://github.com/QwenLM/qwen-code/pull/12075)) by @qqqys - feat(external-context): 支持可配置的 Mem0 提供商 ([#9952](https://github.com/QwenLM/qwen-code/pull/9952)) by @yiliang114 - feat(web-shell): 支持主机设置项排除 ([#11975](https://github.com/QwenLM/qwen-code/pull/11975)) by @Lilian0122 - feat(web-shell): 将过大的粘贴内容折叠为附件卡片 ([#12084](https://github.com/QwenLM/qwen-code/pull/12084)) by @ytahdn - feat(browser-use): 添加基于 Playwright 的浏览器 SDK ([#11241](https://github.com/QwenLM/qwen-code/pull/11241)) by @tanzhenxin - feat(workflows): 添加仅名称锁,将 Workflow 工具限制为命名工作流 ([#12078](https://github.com/QwenLM/qwen-code/pull/12078)) by @qqqys - feat(web-shell): 从工作区分支选择器管理 git 远程仓库 ([#11163](https://github.com/QwenLM/qwen-code/pull/11163)) by @wenshao - feat(cli): 将 Goal 状态记录写入会话导出 ([#12099](https://github.com/QwenLM/qwen-code/pull/12099)) by @qqqys - feat(goal): 从对话记录尾部判断终端提案 ([#12105](https://github.com/QwenLM/qwen-code/pull/12105)) by @qqqys - feat(web-shell): 添加 PWA 可安装性及 Android 开发终端 ([#11722](https://github.com/QwenLM/qwen-code/pull/11722)) by @jabrailkhalil - feat(core): 在钩子列表中定义 enabled 和 disabledReason ([#12139](https://github.com/QwenLM/qwen-code/pull/12139)) by @qqqys - feat(core): 导出钩子事件显示元数据及纯超时辅助函数 ([#12138](https://github.com/QwenLM/qwen-code/pull/12138)) by @qqqys - feat(browser-use): 添加 Chrome Native Messaging 中继 ([#11242](https://github.com/QwenLM/qwen-code/pull/11242)) by @tanzhenxin - feat(workflows): 为每次运行记录检查点,并展示因重启而中断的运行 ([#12159](https://github.com/QwenLM/qwen-code/pull/12159)) by @qqqys - feat(web-shell): 从结构化元数据渲染压缩结果 ([#12141](https://github.com/QwenLM/qwen-code/pull/12141)) by @ytahdn - feat(core): 为子智能体添加容器执行功能 ([#11711](https://github.com/QwenLM/qwen-code/pull/11711)) by @wenshao - feat(web-shell): 以车道图形式绘制跨所有分支的提交历史,并支持搜索 ([#12152](https://github.com/QwenLM/qwen-code/pull/12152)) by @wenshao - feat(live): 将 Web Shell 接纳为浏览器 Live Host ([#12166](https://github.com/QwenLM/qwen-code/pull/12166)) by @qqqys - feat(web-shell): 添加每轮满意度/不满意度标记 ([#12174](https://github.com/QwenLM/qwen-code/pull/12174)) by @ytahdn - feat(live): 从 realtimeOnly modelProviders 路由解析 Live Voice 模型 ([#12173](https://github.com/QwenLM/qwen-code/pull/12173)) by @qqqys - feat(web-shell): 随 CLI 版本发布该包 ([#12178](https://github.com/QwenLM/qwen-code/pull/12178)) by @yiliang114 - feat(core): 从常驻工具集组装系统提示词 ([#12145](https://github.com/QwenLM/qwen-code/pull/12145)) by @yiliang114 - feat(web-shell): 在浏览器中发起 Live Voice 通话 ([#12189](https://github.com/QwenLM/qwen-code/pull/12189)) by @qqqys - feat(web-shell): 在状态栏显示 Goal 的轮次与活跃时间上限 ([#12201](https://github.com/QwenLM/qwen-code/pull/12201)) by @qqqys - feat(serve): 允许用户停止工作区运行时以释放 ACP 容量 ([#12008](https://github.com/QwenLM/qwen-code/pull/12008)) by @doudouOUC - feat(web-shell): 将 Plan 入口移至 composer 添加菜单 ([#12218](https://github.com/QwenLM/qwen-code/pull/12218)) by @wenshao ### 错误修复 - fix(ci): 在打包 VSIX 之前等待已发布的导出渲染器 ([#12036](https://github.com/QwenLM/qwen-code/pull/12036)) by @yiliang114 - fix(web-shell): 修复在两条导航路径中丢失守护进程凭据的问题 ([#12011](https://github.com/QwenLM/qwen-code/pull/12011)) by @yiliang114 - fix(acp): 恢复托管的自动记忆提取功能 ([#12018](https://github.com/QwenLM/qwen-code/pull/12018)) by @yiliang114 - fix(cli): 修复与 ink 对比发现的十二个 OpenTUI 兼容性问题 ([#11806](https://github.com/QwenLM/qwen-code/pull/11806)) by @chiga0 - fix(core): 跨工具往返调用统计 Stop-hook 块 ([#12062](https://github.com/QwenLM/qwen-code/pull/12062)) by @qqqys - fix(core): 避免完成斜杠命令后出现误中断 ([#12052](https://github.com/QwenLM/qwen-code/pull/12052)) by @ytahdn - fix(web-shell): 页面刷新后恢复上下文使用 ([#12070](https://github.com/QwenLM/qwen-code/pull/12070)) by @ytahdn - fix(desktop): 在删除冒烟测试工作区前等待守护进程排空 ([#12049](https://github.com/QwenLM/qwen-code/pull/12049)) by @yiliang114 - fix(core,cli): 修复 Windows 流水线剩余的三项测试失败 ([#12063](https://github.com/QwenLM/qwen-code/pull/12063)) by @yiliang114 - fix(ci): 在分派基准测试前等待 npm 发布完成 ([#12086](https://github.com/QwenLM/qwen-code/pull/12086)) by @yiliang114 - fix(extensions): 更新后显示进度并清除更新标志 ([#11886](https://github.com/QwenLM/qwen-code/pull/11886)) by @yiliang114 - fix(acp): 在回放转录内容时保留用户资源链接 ([#12088](https://github.com/QwenLM/qwen-code/pull/12088)) by @XIQIXIQIXIQI - fix(core): 在其各自源下加载系统级钩子 ([#12077](https://github.com/QwenLM/qwen-code/pull/12077)) by @qqqys - fix(core): 报告 http、prompt 和 function 钩子运行器的真实结果 ([#12081](https://github.com/QwenLM/qwen-code/pull/12081)) by @qqqys - fix(core): 修复文件系统路径重新拼写导致的已知路径问题 ([#12087](https://github.com/QwenLM/qwen-code/pull/12087)) by @yiliang114 - fix(vscode): 拒绝不受支持的 IPv6 远程 webview URL ([#12092](https://github.com/QwenLM/qwen-code/pull/12092)) by @yiliang114 - fix(web-shell): 为 tools.workflowNameOnly 设置项添加别名 ([#12100](https://github.com/QwenLM/qwen-code/pull/12100)) by @yiliang114 - fix(web-shell): 在设置面板中为 tools.workflowNameOnly 添加别名 (#12094) ([#12103](https://github.com/QwenLM/qwen-code/pull/12103)) by @qwen-code-dev-bot - fix(cli): 在 /context 中优先使用按会话缓存的 token 计数 ([#12066](https://github.com/QwenLM/qwen-code/pull/12066)) by @kabishou11 - fix(core): 在记录的转录内容中保留 MCP App 的 HTML 以便回放渲染 ([#12131](https://github.com/QwenLM/qwen-code/pull/12131)) by @yiliang114 - fix(core): 在 V4 限制下解析 DeepSeek 官方 API 的 deepseek-flash 名称 ([#11909](https://github.com/QwenLM/qwen-code/pull/11909)) by @he-yufeng - fix(core): 在模型名称规范化过程中保留 DeepSeek V4 的生成后缀 ([#12124](https://github.com/QwenLM/qwen-code/pull/12124)) by @he-yufeng - fix(core): 在 isAsyncOperator 中仅将空格/制表符/换行符视为单词分隔符 ([#11865](https://github.com/QwenLM/qwen-code/pull/11865)) by @yiliang114 - fix(mcp): 显示 MCP App 资源加载警告 ([#11960](https://github.com/QwenLM/qwen-code/pull/11960)) by @doudouOUC - fix(serve): 当工作区为 home 时从用户作用域读取 channel 设置 ([#11083](https://github.com/QwenLM/qwen-code/pull/11083)) by @yiliang114 - fix(core): 从日志历史中清除已删除会话的提示词 ([#11769](https://github.com/QwenLM/qwen-code/pull/11769)) by @L4XB - fix(workflows): 拒绝没有日志的恢复请求,并在重启时保持运行的 sourceRef ([#12097](https://github.com/QwenLM/qwen-code/pull/12097)) by @qqqys - fix(web-shell): 当首次提示会话的附加被替代时保留该会话 ([#12149](https://github.com/QwenLM/qwen-code/pull/12149)) by @cactuser-Lu - fix(goal): 提示恢复过程中跳过了哪些较新的记录 ([#12148](https://github.com/QwenLM/qwen-code/pull/12148)) by @qqqys - fix(review): 在 dimension-agent 简报中填入 PR 工作树的绝对路径 ([#11926](https://github.com/QwenLM/qwen-code/pull/11926)) by @kabishou11 - fix(web-shell): 允许在会话创建期间进行顺序 SDK 请求 ([#11913](https://github.com/QwenLM/qwen-code/pull/11913)) by @shenyankm - fix(web-shell): 缩放时保持 mermaid 画布固定 ([#12177](https://github.com/QwenLM/qwen-code/pull/12177)) by @ytahdn - fix(core): 防止会话恢复标记未回复的通知 ([#12007](https://github.com/QwenLM/qwen-code/pull/12007)) by @yiliang114 - fix(cli): 将完整轮次的工具取消操作排除在错误路径之外 ([#11154](https://github.com/QwenLM/qwen-code/pull/11154)) by @yiliang114 - fix(release): 暂时暂停 web-shell 发布 ([#12202](https://github.com/QwenLM/qwen-code/pull/12202)) by @yiliang114 - fix(core): 按字节长度解析 LSP 帧,避免丢弃非 ASCII 响应 ([#12210](https://github.com/QwenLM/qwen-code/pull/12210)) by @yiliang114 - fix(desktop): 将 node-pty 预编译文件打包到运行时中 ([#12225](https://github.com/QwenLM/qwen-code/pull/12225)) by @yiliang114 ### Performance - perf(core): 扩展目录路由仅刷新清单 ([#12153](https://github.com/QwenLM/qwen-code/pull/12153)) by @callmeYe ### Documentation - docs(serve):记录已合并的 ACP 边界接受机制 ([#12024](https://github.com/QwenLM/qwen-code/pull/12024)) by @wenshao - docs(hooks):合并重复的 Browsing 章节 ([#12071](https://github.com/QwenLM/qwen-code/pull/12071)) by @qqqys - docs(core):告知 /goal-draft propose_goal 强制实施的目标限制 ([#12101](https://github.com/QwenLM/qwen-code/pull/12101)) by @qqqys - docs(ci):解释为何 review-pr 扫描需要整个工作区隔离 ([#10493](https://github.com/QwenLM/qwen-code/pull/10493)) by @CanReader - docs(daemon):完善 REST 集成覆盖范围 ([#12144](https://github.com/QwenLM/qwen-code/pull/12144)) by @yiliang114 - docs(config):注明 baseUrl 是托管 OpenAI 兼容网关的 /v1 根路径 (#10362) ([#11155](https://github.com/QwenLM/qwen-code/pull/11155)) by @now-ing - docs(verify-pr):添加本地后续发现、发布路径和构建配方 ([#12232](https://github.com/QwenLM/qwen-code/pull/12232)) by @wenshao ### 内部变更 - test(cli):将循环守卫注释更新为实际运行机制 ([#12065](https://github.com/QwenLM/qwen-code/pull/12065)) by @yiliang114 - test(core):在不使用调用 ID 的情况下比较钩子进度结果 ([#12104](https://github.com/QwenLM/qwen-code/pull/12104)) by @qqqys - refactor(goal):停止在所有界面显示检查点健康状态 ([#12114](https://github.com/QwenLM/qwen-code/pull/12114)) by @qqqys - refactor(goal):删除证据检查点和目录代码 ([#12120](https://github.com/QwenLM/qwen-code/pull/12120)) by @qqqys - refactor(cli):从 OpenTUI 已使用的视图中渲染 ink Goal 卡片 ([#12110](https://github.com/QwenLM/qwen-code/pull/12110)) by @qqqys - test(serve):将引导操作绑定到其协议部分 ([#11808](https://github.com/QwenLM/qwen-code/pull/11808)) by @mohammedmessaoudene-cmd - refactor(goal):将 Goal 工具每次模型请求的成本降低五分之二 ([#12123](https://github.com/QwenLM/qwen-code/pull/12123)) by @qqqys - test(cli):在 provider-order 测试中先逐步检查 Grok 再检查 MiniMax ([#10089](https://github.com/QwenLM/qwen-code/pull/10089)) by @harjothkhara - test(sdk):验证每条消息的内容块停止条件 ([#12158](https://github.com/QwenLM/qwen-code/pull/12158)) by @yiliang114 - refactor(goal):弃用记录在 Goal 状态开始记日志之前的 Goals 恢复功能 ([#12155](https://github.com/QwenLM/qwen-code/pull/12155)) by @qqqys - refactor(goal):在 ACP 线路上保留一个 Goal 卡片并为其模块命名 ([#12187](https://github.com/QwenLM/qwen-code/pull/12187)) by @qqqys - refactor(goal):通过核心读取器读取处于不可读状态的运行卡片 ([#12194](https://github.com/QwenLM/qwen-code/pull/12194)) by @qqqys - test(core):在 authoring-hint 测试中恢复前等待完整运行退出 ([#12196](https://github.com/QwenLM/qwen-code/pull/12196)) by @yiliang114 ## 新贡献者 - @Lilian0122 在 [#11975](https://github.com/QwenLM/qwen-code/pull/11975) 中首次贡献 - @jabrailkhalil 在 [#11722](https://github.com/QwenLM/qwen-code/pull/11722) 中首次贡献 - @mohammedmessaoudene-cmd 在 [#11808](https://github.com/QwenLM/qwen-code/pull/11808) 中首次贡献 - @L4XB 在 [#11769](https://github.com/QwenLM/qwen-code/pull/11769) 中首次贡献 **完整更新日志**: https://github.com/QwenLM/qwen-code/compare/v0.24.0...v0.24.1