← 返回更新日志

Qwen Code v0.23.0

2026-09-03 · GitHub 原文
<!-- qwen-release-notes:v1 --> ## 亮点 _详见下方的完整变更列表。_ ## 破坏性变更 暂无已知的破坏性变更。 ## 完整变更列表 ### 新功能 - 分支选择器现在在“更新项目”、“提交”和“推送”操作旁显示 git 状态提示(如 '↓3 · origin/main' 或 'Up to date'),帮助用户在点击前判断状态。 ([#10397](https://github.com/QwenLM/qwen-code/pull/10397)) by @wenshao - 新增 qwen review emit-workflow 子命令,用于生成确定性脚本,通过 parallel() 而非手动编排来执行 Review Step 3A 的代理扇出。 ([#10119](https://github.com/QwenLM/qwen-code/pull/10119)) by @qqqys - Web Shell “添加工作区”对话框现在会在缺乏 zenity 或 osascript 等原生目录选择器能力的无头守护进程主机上隐藏“浏览”按钮。 ([#9406](https://github.com/QwenLM/qwen-code/pull/9406)) by @qqqys - 新增支持带项目或用户目标的范围化工作区记忆任务,在 remember 和 forget 操作期间强制实施存储间严格的文件系统权限边界。 ([#9895](https://github.com/QwenLM/qwen-code/pull/9895)) by @qqqys - 在 Web Shell 头部添加了二维码按钮,用于快速配对 Local Control,若该功能已禁用则直接跳转至设置。 ([#10432](https://github.com/QwenLM/qwen-code/pull/10432)) by @wenshao - 接管循环现在可通过包含匹配推荐代码的新账本标记来消费审查收敛信号。 ([#10122](https://github.com/QwenLM/qwen-code/pull/10122)) by @wenshao - 优化了会话概览表格,支持响应式列、排序、过滤,并改进了会话管理操作的处理。 ([#10115](https://github.com/QwenLM/qwen-code/pull/10115)) by @ytahdn - 在 Web Shell 中新增每次运行的定时任务会话,为每次执行创建带有唯一时间戳的全新子对话。 ([#10233](https://github.com/QwenLM/qwen-code/pull/10233)) by @qqqys - 移除了 qwen serve 中仅限公共网络的政策限制,允许从企业私有 Git 主机安装扩展。 ([#10156](https://github.com/QwenLM/qwen-code/pull/10156)) by @callmeYe - feat(core): address other sessions by name from send_message and list_agents ([#10158](https://github.com/QwenLM/qwen-code/pull/10158)) by @qqqys - 为工作区、独立和 Live 对话新增了明确的守护进程会话上下文,以改进路由和运行时解析。 ([#10418](https://github.com/QwenLM/qwen-code/pull/10418)) by @doudouOUC - feat(core): report compression API failures distinctly ([#9119](https://github.com/QwenLM/qwen-code/pull/9119)) by @xianjianlf2 - 自动为触及映射区域的新 PR 分配唯一的责任维护者,并在自动分类推迟 PR 时解析出单一所有者。 ([#9813](https://github.com/QwenLM/qwen-code/pull/9813)) by @yiliang114 - 将受限的 MCP 工具参数和服务器注解转发给 AUTO 模式分类器,以超越仅凭工具名称提升决策准确性。 ([#10352](https://github.com/QwenLM/qwen-code/pull/10352)) by @qqqys - 当未配置 bearer token 且未明确要求身份验证时,为 qwen serve 在受信任的环回接口上启用完整的操作员 API 访问。 ([#10403](https://github.com/QwenLM/qwen-code/pull/10403)) by @doudouOUC - 命名 Channel 任务现在在其输出中包含来源归属标签(如 [task] 或 [sender · task]),以便更好地进行投递关联。 ([#10420](https://github.com/QwenLM/qwen-code/pull/10420)) by @doudouOUC - 增强了 Web Shell 侧边栏,可显示工作区会话数量、完整路径,以及 MCP 服务器、技能、扩展和上下文文件的详细标签。 ([#10407](https://github.com/QwenLM/qwen-code/pull/10407)) by @wenshao - 通过守护进程暴露了工作流执行控制,允许客户端检查、取消、暂停、恢复、重试和删除运行,同时保留旧版任务契约。 ([#10411](https://github.com/QwenLM/qwen-code/pull/10411)) by @qqqys - 通过新增主题、无障碍、剪贴板、键映射和对话框脚手架的新渲染器模块,为 OpenTUI 迁移奠定基础。 ([#10146](https://github.com/QwenLM/qwen-code/pull/10146)) by @chiga0 - 在 Channels 中启用并发命名任务控制,允许用户在切换上下文时后台任务继续运行,并新增 /session cancel 支持。 ([#10574](https://github.com/QwenLM/qwen-code/pull/10574)) by @doudouOUC - Web Shell 终端错误消息现在包含复制操作,可复制精确渲染的错误文本并提供视觉确认。 ([#10001](https://github.com/QwenLM/qwen-code/pull/10001)) by @Wkewen - 工作区运行时所有权现已确立为守护进程生命周期边界,确保运行时活动在移除工作区和关闭期间持续存在。 ([#10593](https://github.com/QwenLM/qwen-code/pull/10593)) by @ytahdn - 工作区范围的扩展技能状态现在可通过批处理 API 进行管理,允许独立覆盖,同时保持父级扩展设置的权威性。 ([#10600](https://github.com/QwenLM/qwen-code/pull/10600)) by @callmeYe - 操作员现在可以使用 model.goalTokenBudget 配置或禁用目标令牌预算,支持 1 到 300,000,000 的值,或 -1 表示无限制。 ([#10543](https://github.com/QwenLM/qwen-code/pull/10543)) by @qqqys - 模型现在在每轮对话中接收关于当前输出样式的提醒,以确保在非默认样式启用时保持回复简洁。 ([#10282](https://github.com/QwenLM/qwen-code/pull/10282)) by @qqqys - 启用 external-context-mem0 扩展通过 InstanceConfigV2 中的绝对路径加载管理员拥有的 Mem0 方言。 ([#10634](https://github.com/QwenLM/qwen-code/pull/10634)) by @doudouOUC - 新增无会话的 POST /language 路由,用于在任何会话存在之前跨所有运行时同步用户级语言偏好。 ([#10554](https://github.com/QwenLM/qwen-code/pull/10554)) by @doudouOUC - 绑定到 GitHub PR 的会话现在会在 Web Shell 工具提示中显示该 PR 关闭的关联问题,并支持按问题编号搜索会话。 ([#10425](https://github.com/QwenLM/qwen-code/pull/10425)) by @wenshao - feat(serve): 允许通过环境变量重新定位会话附件存储路径 ([#10066](https://github.com/QwenLM/qwen-code/pull/10066)) by @ytahdn - 将 live-session 流、输入层和组合器加入 OpenTUI 迁移,支持流式 Markdown、工具运行和统一差异渲染。 ([#10368](https://github.com/QwenLM/qwen-code/pull/10368)) by @chiga0 - 改进了频道回退权限提示,增加了具体工具详情,并在钉钉失败消息中隐藏了内部错误数据。 ([#10614](https://github.com/QwenLM/qwen-code/pull/10614)) by @qqqys - 允许 Web Shell 更新项目操作在有未提交更改的工作区继续执行,提供暂存或丢弃本地更改的选项。 ([#10390](https://github.com/QwenLM/qwen-code/pull/10390)) by @wenshao - 允许 DWS 频道自定义任务执行中和完成时显示的开始与结束状态反应表情符号。 ([#10610](https://github.com/QwenLM/qwen-code/pull/10610)) by @qqqys - feat(cli): 通过 general.outputStyle 或 --output-style 选择输出样式 ([#10283](https://github.com/QwenLM/qwen-code/pull/10283)) by @qqqys - feat(qwen-live): 独立语音守护进程包 — M1 + M2 ([#10367](https://github.com/QwenLM/qwen-code/pull/10367)) by @LaZzyMan - feat(cli): OpenTUI 迁移第 4 批 — 对话框、命令与会话回退 ([#10383](https://github.com/QwenLM/qwen-code/pull/10383)) by @chiga0 - feat(goal): 允许模型提出目标,用户可在对话框中审批 ([#10171](https://github.com/QwenLM/qwen-code/pull/10171)) by @qqqys - feat(web-shell): 添加独立聊天功能 ([#10514](https://github.com/QwenLM/qwen-code/pull/10514)) by @doudouOUC - feat(cli): 无需重启会话即可热重载 modelProviders ([#10582](https://github.com/QwenLM/qwen-code/pull/10582)) by @yiliang114 - feat(web-shell): 添加实验性会话工作流驾驶舱 ([#8583](https://github.com/QwenLM/qwen-code/pull/8583)) by @yiliang114 - feat(web-shell): 在侧边栏会话搜索中支持搜索对话内容 ([#10612](https://github.com/QwenLM/qwen-code/pull/10612)) by @wenshao - feat(opentui): 添加后端组合根目录(第 5 批) ([#10696](https://github.com/QwenLM/qwen-code/pull/10696)) by @chiga0 - feat(web-shell): 添加工作区概览面板 ([#10589](https://github.com/QwenLM/qwen-code/pull/10589)) by @wenshao - feat(review): 在任何代理运行前预构建审查工作区 ([#10423](https://github.com/QwenLM/qwen-code/pull/10423)) by @wenshao - feat(web-shell): 精简工作区侧边栏并添加回环打开操作 ([#10606](https://github.com/QwenLM/qwen-code/pull/10606)) by @wenshao - feat(external-context): 发布 Mem0 扩展包 ([#10653](https://github.com/QwenLM/qwen-code/pull/10653)) by @doudouOUC - feat(core): 在会话 Shell 中绑定通过 gh pr create 创建的 PR ([#9739](https://github.com/QwenLM/qwen-code/pull/9739)) by @wenshao - feat(web-shell): 对定时任务运行会话进行分组 ([#10611](https://github.com/QwenLM/qwen-code/pull/10611)) by @qqqys - feat(cli): 添加 /output-style 命令,支持选择器及会话中途切换 ([#10683](https://github.com/QwenLM/qwen-code/pull/10683)) by @qqqys - feat(ipc): 使用会话级令牌对跨会话收件箱连接进行身份验证 ([#10636](https://github.com/QwenLM/qwen-code/pull/10636)) by @qqqys - feat(qwen-live): ACP 后端适配器与多后端路由 — M4 ([#10617](https://github.com/QwenLM/qwen-code/pull/10617)) by @LaZzyMan - feat(opentui): 在 QWEN_TUI_RENDERER 环境变量下激活 OpenTUI 后端 ([#10739](https://github.com/QwenLM/qwen-code/pull/10739)) by @chiga0 - feat(ipc): 为会话自身进程提供子令牌,以便入站网关识别 ([#10764](https://github.com/QwenLM/qwen-code/pull/10764)) by @qqqys - feat(opentui): 打包资源、CI 矩阵与功能对齐工具(第 7 批) ([#10770](https://github.com/QwenLM/qwen-code/pull/10770)) by @chiga0 - feat(daemon): 在频道拆除诊断中标识耗尽的 NDJSON 预算 ([#10727](https://github.com/QwenLM/qwen-code/pull/10727)) by @yiliang114 - feat(qwen-live): 协议 v7 播放回执与交互式初始化 — M5 ([#10769](https://github.com/QwenLM/qwen-code/pull/10769)) by @LaZzyMan - feat(release): 在独立发布版本中添加受限的 bun/OpenTUI 预览版 ([#10814](https://github.com/QwenLM/qwen-code/pull/10814)) by @chiga0 - feat(channels): 通过代理桥接暴露 BTW ([#10712](https://github.com/QwenLM/qwen-code/pull/10712)) by @qqqys - feat(serve): 添加工作区范围的 MCP 管理 ([#10679](https://github.com/QwenLM/qwen-code/pull/10679)) by @ytahdn - feat(channels): 在频道对话中添加 BTW 侧边问题 ([#10713](https://github.com/QwenLM/qwen-code/pull/10713)) by @qqqys - feat(web-shell): 暴露会话工件快照 ([#10747](https://github.com/QwenLM/qwen-code/pull/10747)) by @dreamWB - feat(dingtalk): 支持出站文件传输 ([#10893](https://github.com/QwenLM/qwen-code/pull/10893)) by @qqqys ### 错误修复 - fix(core): 在允许规则和自动批准规则下保留 ask_user_question 对话框 ([#10160](https://github.com/QwenLM/qwen-code/pull/10160)) by @qqqys - 更新 qwen --help 命令,使其从共享选项定义中生成输出,确保准确列出所有接受的参数(如 --approval-mode 和 --auth-type),而非过时的子集。 ([#8902](https://github.com/QwenLM/qwen-code/pull/8902)) by @yiliang114 - 为 Anthropic 流应用空闲和最大生命周期看门狗,以防止无限期挂起,确保其像 OpenAI 兼容提供商一样以 ETIMEDOUT 中止。 ([#9945](https://github.com/QwenLM/qwen-code/pull/9945)) by @yiliang114 - 自动修复(Autofix)现在会在轮次报告中报告是哪个守卫(guard)拒绝了线程解析,并等待头部传播以防止静默失败。 ([#10117](https://github.com/QwenLM/qwen-code/pull/10117)) by @wenshao - 智能体工具现在显示运行时解析的执行模式,以便无论模型参数如何,都能正确区分前台和后台任务。 ([#9955](https://github.com/QwenLM/qwen-code/pull/9955)) by @DragonnZhang - 旧版 Git 归档回退机制现在接受安全的受限符号链接,同时继续拒绝绝对路径、驱动器盘符和逃逸尝试。 ([#9969](https://github.com/QwenLM/qwen-code/pull/9969)) by @harjothkhara - 修复调试日志记录,防止守护进程配置和后台工作将会话日志泄漏到无关的调试文件中。 ([#9930](https://github.com/QwenLM/qwen-code/pull/9930)) by @tomsen02 - 修复会话分支功能,通过扫描活跃和归档会话来正确检测重复标题。 ([#10032](https://github.com/QwenLM/qwen-code/pull/10032)) by @harjothkhara - 确保命名智能体团队(Agent Team)成员解析的模型提供商路由与同一智能体文件中定义的普通子智能体一致。 ([#10092](https://github.com/QwenLM/qwen-code/pull/10092)) by @yiliang114 - 将非发布的 Linux 发布流水线作业路由至 ECS 运行器池,同时保持发布作业在 ubuntu-latest 上运行。 ([#10036](https://github.com/QwenLM/qwen-code/pull/10036)) by @yiliang114 - fix(core): 在 team_delete 中传播文件系统清理失败 ([#10213](https://github.com/QwenLM/qwen-code/pull/10213)) by @yiliang114 - fix(test): 在守护进程启动时探测一次原生目录选择器 ([#10456](https://github.com/QwenLM/qwen-code/pull/10456)) by @yiliang114 - fix(serve): 在引导期间声明原生目录选择器 ([#10471](https://github.com/QwenLM/qwen-code/pull/10471)) by @wenshao - 已取消的工作流现在立即终止,而不是等待时钟过期,且执行窗口大小根据可用 CPU 数量设定。 ([#10468](https://github.com/QwenLM/qwen-code/pull/10468)) by @qqqys - 当 React 挂载前发生启动失败时,Web Shell 标签页现在显示可恢复的错误信息,而非空白白屏。 ([#10215](https://github.com/QwenLM/qwen-code/pull/10215)) by @harjothkhara - 在作业突然终止后,通过修复权限或将文件隔离来恢复受保护的 .qwen 状态,以确保成功检出。 ([#10214](https://github.com/QwenLM/qwen-code/pull/10214)) by @yiliang114 - 确保如 MessageDisplay 和 SessionDelete 等“发后即忘”(fire-and-forget)钩子即使在 Qwen 进程退出后,也能在完全监控下完成执行。 ([#10288](https://github.com/QwenLM/qwen-code/pull/10288)) by @doudouOUC - 保持固定会话在原始侧边栏分组中可见,同时保留其在专用“固定”(Pinned)部分中的显示。 ([#10416](https://github.com/QwenLM/qwen-code/pull/10416)) by @yiliang114 - 将 Python SDK 子进程流读取器限制增加至 4 MiB,以支持大型 stream-json 消息而不出错。 ([#9337](https://github.com/QwenLM/qwen-code/pull/9337)) by @lwind233 - 修复测试基础设施,使其在排队提交排空测试期间能正确渲染 AppContainer 并观察挂载后的状态更新。 ([#10436](https://github.com/QwenLM/qwen-code/pull/10436)) by @yiliang114 - 通过移除导入块中多余的空行,修复了 Python SDK 测试中的 Ruff 代码检查错误。 ([#10505](https://github.com/QwenLM/qwen-code/pull/10505)) by @qwen-code-dev-bot - 将启动警告文件的作用域限制为独立的 npm start 会话,以防止并发开发环境之间的冲突。 ([#8456](https://github.com/QwenLM/qwen-code/pull/8456)) by @xianjianlf2 - 防止系统在控制组件处于非活动状态时,在 stream-json 直接模式下错误地声明问题主机。 ([#9414](https://github.com/QwenLM/qwen-code/pull/9414)) by @tonydzi - 对守护进程会话初始化实施严格的超时限制,确保超时会话被正确取消和清理。 ([#10268](https://github.com/QwenLM/qwen-code/pull/10268)) by @doudouOUC - 修复了并发成员启动失败时,导致持久化团队名单文件中残留幽灵成员的问题。 ([#10223](https://github.com/QwenLM/qwen-code/pull/10223)) by @yiliang114 - 当终端鼠标追踪功能激活时,使 @ 补全选择器中的分类标签可通过鼠标点击。 ([#8395](https://github.com/QwenLM/qwen-code/pull/8395)) by @destire-mio - 将 VS Code 伴侣模型选择器下拉菜单锚定到输入框,防止其浮动覆盖在消息列表上。 ([#9702](https://github.com/QwenLM/qwen-code/pull/9702)) by @yiliang114 - 修复 Windows IME 输入法组合文本的可见性,通过将软件光标渲染为无固定背景的底线,防止拼音文本不可见。 ([#9803](https://github.com/QwenLM/qwen-code/pull/9803)) by @bluefateludi - 为包括 readWorkspaceFile 和 glob 在内的六个工作区文件辅助函数启用相对守护进程基础 URL,修复 Web Shell 集成中的无效 URL 错误。 ([#9817](https://github.com/QwenLM/qwen-code/pull/9817)) by @shoemoney - 通过清理 ShellExecutionService.execute() 抛出同步错误时的 shell 中止监听器,防止残留的中止处理程序和误导性日志。 ([#9849](https://github.com/QwenLM/qwen-code/pull/9849)) by @AaronZ345 - fix(cli): 推断无密钥的 Vertex AI 认证 ([#9045](https://github.com/QwenLM/qwen-code/pull/9045)) by @KXHXK - 提供程序更新提示现在指导用户使用 /model 手动选择新模型,而非承诺自动切换。 ([#9023](https://github.com/QwenLM/qwen-code/pull/9023)) by @rbalachandar - 从 CLI、VS Code 模式及文档中移除了无效的 general.dynamicCommandTranslation 设置,以防止用户困惑。 ([#8754](https://github.com/QwenLM/qwen-code/pull/8754)) by @destire-mio - 从脚本中移除了不受支持的 npm --parallel 标志,以确保测试命令在 npm 12 及更高版本上成功运行。 ([#8725](https://github.com/QwenLM/qwen-code/pull/8725)) by @imrehg - 通过将无法验证的文件 ID 归零,同时保持对工作区隔离的严格路径和设备检查,修复了 Windows 单元测试。 ([#10440](https://github.com/QwenLM/qwen-code/pull/10440)) by @yiliang114 - Serve 工作区检查现在正确允许以 .. 开头的子目录,同时仍拒绝实际的父目录遍历。 ([#9848](https://github.com/QwenLM/qwen-code/pull/9848)) by @AaronZ345 - fix(cli): 在 capture_screen_context 中拒绝 win32 上的符号链接截图路径 ([#9847](https://github.com/QwenLM/qwen-code/pull/9847)) by @zhou2024NAU - 移除模式长度限制,以防止 LM Studio 语法解析错误并允许新对话成功启动。 ([#10275](https://github.com/QwenLM/qwen-code/pull/10275)) by @mredbishop - 将会话令牌限制缓存限定在路由范围内,以防止在不同路由间切换模型时,过期计数触发限制。 ([#9862](https://github.com/QwenLM/qwen-code/pull/9862)) by @yiliang114 - 在守护进程通道会话恢复期间保留 sourceType 和 sourceId 元数据,以确保旧版会话归属的一致性。 ([#10257](https://github.com/QwenLM/qwen-code/pull/10257)) by @AaronZ345 - 停止强制 DeepSeek 模型的 temperature 为 0,允许其在未显式配置时使用默认采样行为。 ([#9879](https://github.com/QwenLM/qwen-code/pull/9879)) by @AaronZ345 - fix(core): 消除 send_message 目标歧义 ([#10083](https://github.com/QwenLM/qwen-code/pull/10083)) by @Sumire-no-kai - 在工具轮次边界将队友消息传递给领导者,而非等待整个多轮任务完成。 ([#9638](https://github.com/QwenLM/qwen-code/pull/9638)) by @yiliang114 - 通过为无效解码添加负缓存并修正仅图像消息的高度分配,优化重复的内联图像渲染。 ([#8789](https://github.com/QwenLM/qwen-code/pull/8789)) by @zjunothing - serve 命令现在优先选择有效的 TLS 颁发者而非具有相同主题但已过期的颁发者,以防止 CA 续期期间握手失败。 ([#10042](https://github.com/QwenLM/qwen-code/pull/10042)) by @qqqys - 会话清理操作现在严格保留守护进程写入者租约所有权,以确保删除、归档和修复操作期间的数据完整性。 ([#10300](https://github.com/QwenLM/qwen-code/pull/10300)) by @doudouOUC - serve 命令现在支持热重载模型提供程序并刷新会话注册表,且不会中断活跃轮次或切换当前模型。 ([#10269](https://github.com/QwenLM/qwen-code/pull/10269)) by @doudouOUC - 通过容忍可选的 Streamable HTTP GET SSE 探测期间的 HTTP 404 响应并防止 body 读取挂起,修复了 MCP 连接稳定性。 ([#10091](https://github.com/QwenLM/qwen-code/pull/10091)) by @harjothkhara - 通过从 data 字段中暴露具体的守护进程 JSON-RPC 错误详情来改进 TypeScript SDK 错误报告,而非显示通用的 Internal 错误消息。 ([#10571](https://github.com/QwenLM/qwen-code/pull/10571)) by @doudouOUC - fix(serve): 在 turn_error 消息中暴露提供程序错误详情 ([#10569](https://github.com/QwenLM/qwen-code/pull/10569)) by @doudouOUC - 将浏览器守护进程包预算增加至 216KB,以容纳最近的错误详情暴露更改并修复 CI 安装失败。 ([#10602](https://github.com/QwenLM/qwen-code/pull/10602)) by @chiga0 - 通过将 runner-environment 映射移至特定步骤来修复 Release 工作流,解决因无效作业级上下文使用导致的 GitHub 解析错误。 ([#10598](https://github.com/QwenLM/qwen-code/pull/10598)) by @yiliang114 - fix(ci): 在无容器沙箱的情况下运行 /resolve 并固定其 CLI 版本 ([#10428](https://github.com/QwenLM/qwen-code/pull/10428)) by @wenshao - 使用读写锁协调共享 ECS 主机上的 Docker 沙箱工作负载,以允许并发测试分片而不降低并发度。 ([#10605](https://github.com/QwenLM/qwen-code/pull/10605)) by @yiliang114 - 将非 Linux 平台的 Vitest 单元测试套件调整为在 macOS 和 Windows 上将未处理错误视为非致命错误,确保一致的跨平台测试行为。 ([#10443](https://github.com/QwenLM/qwen-code/pull/10443)) by @qwen-code-dev-bot - /resolve 工作流现在通过安全重放合并来恢复因移动 head、fork 推送、503 错误和草稿状态导致的丢失请求。 ([#10429](https://github.com/QwenLM/qwen-code/pull/10429)) by @wenshao - fix(core): 在缺失 O_NOFOLLOW 时保持对无符号链接读取的保护 ([#10007](https://github.com/QwenLM/qwen-code/pull/10007)) by @yiliang114 - 守护进程浏览器包大小限制现已改为建议性限制,超过 216 KiB 时仅发出警告而不再导致构建失败。 ([#10630](https://github.com/QwenLM/qwen-code/pull/10630)) by @yiliang114 - 通过使用缩短的主机名以符合 Linux 64 字符限制(同时保留完整容器名称),修复了使用镜像 ID 时容器启动失败的问题。([#10624](https://github.com/QwenLM/qwen-code/pull/10624)) by @yiliang114 - 在自托管运行器的无凭据集成作业中添加了磁盘容量检查,以在检测到空间不足时阻止安装。([#10539](https://github.com/QwenLM/qwen-code/pull/10539)) by @yiliang114 - 确保在 npm install 失败期间捕获并保留磁盘压力样本,以改善对临时磁盘问题的调试。([#10517](https://github.com/QwenLM/qwen-code/pull/10517)) by @yiliang114 - 在 Windows 上重新安装失败时,采用备份与恢复策略替代删除后重命名,防止现有技能丢失。([#10189](https://github.com/QwenLM/qwen-code/pull/10189)) by @yiliang114 - 通过确保后台代理通知在最终输出前正确解析待处理的工具行,修复了 Web Shell 页脚渲染延迟的问题。([#10503](https://github.com/QwenLM/qwen-code/pull/10503)) by @dreamWB - 恢复了 WebShell 编辑权限的原生 VS Code 差异审批流程,使接受/拒绝命令能够正确解析待处理工具。([#10534](https://github.com/QwenLM/qwen-code/pull/10534)) by @yiliang114 - 为基于轮询的 SSE 客户端添加了可选的宽限期,以便在提示词结算后重新连接,而不会触发事件流重新同步错误。([#10344](https://github.com/QwenLM/qwen-code/pull/10344)) by @chiga0 - fix(tools):将空白的 task_list 过滤器视为不存在 ([#10159](https://github.com/QwenLM/qwen-code/pull/10159)) by @yiliang114 - 关闭 MCP 插件面板后恢复了 web-shell 编辑器的输入功能,防止界面卡死。([#10232](https://github.com/QwenLM/qwen-code/pull/10232)) by @AaronZ345 - 改进了 /review 预提交检测,通过检查闭区间交集(而非仅检查结束行)来识别重叠的多行注释范围。([#9801](https://github.com/QwenLM/qwen-code/pull/9801)) by @bluefateludi - 通过在所有 Web Shell 和核心测试的复制按钮卸载时清除待处理的复制反馈计时器,修复了内存泄漏。([#10655](https://github.com/QwenLM/qwen-code/pull/10655)) by @wenshao - 当 PreToolUse 钩子返回询问决策时,编辑类工具现在会在审批提示中显示更改差异。([#9441](https://github.com/QwenLM/qwen-code/pull/9441)) by @yiliang114 - Java SDK 现在能够从嵌套的 response.subtype 字段正确读取控制响应状态,以正确检测和记录控制错误。([#9924](https://github.com/QwenLM/qwen-code/pull/9924)) by @AaronZ345 - 被 HTTP 413 拒绝的模型请求现在会自动触发一次性压缩并重试,如果压缩失败,则会显示明确错误以启动新会话。([#10408](https://github.com/QwenLM/qwen-code/pull/10408)) by @yiliang114 - fix(core):使 task_list 轮询的循环检测具备结果感知能力 ([#9492](https://github.com/QwenLM/qwen-code/pull/9492)) by @yiliang114 - 通道初始化超时现在返回带有 Retry-After 头的结构化 HTTP 504 响应,而非通用的 500 错误。([#10404](https://github.com/QwenLM/qwen-code/pull/10404)) by @chiga0 - 延迟审查的 Lint 披露信息现在会显示清晰、准确的中英双语消息,无卡顿或未翻译文本。([#10587](https://github.com/QwenLM/qwen-code/pull/10587)) by @wenshao - HTTP 钩子现在严格禁用重定向,以防止受仓库控制的配置将会话数据暴露给任意内部或元数据地址。([#10427](https://github.com/QwenLM/qwen-code/pull/10427)) by @wenshao - fix(core):保持图像视图在 sharp 0.34 以下版本中正常工作 ([#10633](https://github.com/QwenLM/qwen-code/pull/10633)) by @MingyaWang - 启用钉钉状态卡片通过指数退避重试和定期心跳内容重新发布来从网络故障中恢复。([#10357](https://github.com/QwenLM/qwen-code/pull/10357)) by @qqqys - 在恢复选择器和搜索中,将 Goal-only 会话的标签显示为 Goal 目标,而非显示空提示。([#10295](https://github.com/QwenLM/qwen-code/pull/10295)) by @qqqys - fix(core):使失败派生的补偿写入门控具备提交感知能力 ([#10522](https://github.com/QwenLM/qwen-code/pull/10522)) by @yiliang114 - fix(cua):加固 Node REPL 和 Windows UIAccess ([#10666](https://github.com/QwenLM/qwen-code/pull/10666)) by @LaZzyMan - fix(cua):发布未签名的 Windows UIAccess 工作进程 ([#10680](https://github.com/QwenLM/qwen-code/pull/10680)) by @LaZzyMan - fix(ci):使共享 ECS Vitest 并发度可调 ([#10667](https://github.com/QwenLM/qwen-code/pull/10667)) by @yiliang114 - fix(web-shell):持久化模型推理偏好设置 ([#10489](https://github.com/QwenLM/qwen-code/pull/10489)) by @callmeYe - fix(ci):在上传失败时保留 web-shell 视觉评论 ([#10253](https://github.com/QwenLM/qwen-code/pull/10253)) by @AaronZ345 - fix(permissions):绝不让 AUTO 模式分类器自动批准工作区外写入;始终回退至手动审批 ([#8744](https://github.com/QwenLM/qwen-code/pull/8744)) by @PratikWayase - fix(review):将已决定的停止操作置于组合重规则裁决的门控之下 ([#10310](https://github.com/QwenLM/qwen-code/pull/10310)) by @wenshao - fix(sdk):停止在 serve-mcp 二进制文件中输出重复的 hashbang ([#10485](https://github.com/QwenLM/qwen-code/pull/10485)) by @wenshao - fix(cli):布局更改后保持硬件光标对齐 ([#10417](https://github.com/QwenLM/qwen-code/pull/10417)) by @liujiayi771 - fix(cli):推迟临时独立推理选项 ([#10706](https://github.com/QwenLM/qwen-code/pull/10706)) by @doudouOUC - fix(cli):在卸载时中止子代理生成 ([#9937](https://github.com/QwenLM/qwen-code/pull/9937)) by @AaronZ345 - fix(web-shell): 移除 ChatEditor.test.tsx 中重复的语言声明 ([#10729](https://github.com/QwenLM/qwen-code/pull/10729)) by @yiliang114 - fix(autofix): 显式限制 gate 测试负载,而非通过 RUNNER_NAME ([#10671](https://github.com/QwenLM/qwen-code/pull/10671)) by @qqqys - fix(java): 将 SDK 工作线程设为守护进程 ([#9925](https://github.com/QwenLM/qwen-code/pull/9925)) by @AaronZ345 - fix(core): 支持 Qwen3 的混合思维流 ([#9607](https://github.com/QwenLM/qwen-code/pull/9607)) by @yiliang114 - fix(web-shell): 跨客户端协调队列中的提示词 ([#10704](https://github.com/QwenLM/qwen-code/pull/10704)) by @ytahdn - fix(ci): 对临时性 sandbox:none E2E 分片失败重试一次 (#10566) ([#10572](https://github.com/QwenLM/qwen-code/pull/10572)) by @qwen-code-dev-bot - fix(web-shell): 在 vite 开发环境中代理 standalone/live 守护进程路由 ([#10748](https://github.com/QwenLM/qwen-code/pull/10748)) by @wenshao - fix(core): 验证 git pull 选项组合及 detached HEAD 状态 ([#10752](https://github.com/QwenLM/qwen-code/pull/10752)) by @wenshao - fix(channels): 将审批模式应用于独立会话 ([#10715](https://github.com/QwenLM/qwen-code/pull/10715)) by @qqqys - fix(cli): 在 OpenTUI 注册表中路由 /output-style 对话框 ([#10763](https://github.com/QwenLM/qwen-code/pull/10763)) by @wenshao - fix(serve): 防止提示词轮次失败日志降级为 [object Object] ([#10732](https://github.com/QwenLM/qwen-code/pull/10732)) by @yiliang114 - fix(acp-bridge): 对 ACP NDJSON 队列饱和进行反压处理,而非断开通道 ([#10731](https://github.com/QwenLM/qwen-code/pull/10731)) by @yiliang114 - fix(ci): 隔离并限制发布验证工作负载 ([#10765](https://github.com/QwenLM/qwen-code/pull/10765)) by @yiliang114 - fix(workflow): 收紧多工作区状态边界 ([#10772](https://github.com/QwenLM/qwen-code/pull/10772)) by @yiliang114 - fix(vscode): 解决 CI 资源争用下 webview bundle 测试超时问题 (#10665) ([#10672](https://github.com/QwenLM/qwen-code/pull/10672)) by @qwen-code-dev-bot - fix(release): 将已准备包的尺寸预算提高至 112 MiB (#10774) ([#10781](https://github.com/QwenLM/qwen-code/pull/10781)) by @qwen-code-dev-bot - fix(core): 在使用历史转录回放中跳过非普通文件 ([#10681](https://github.com/QwenLM/qwen-code/pull/10681)) by @qqqys - fix(cli): 移除提示 ctrl+s 隐藏 shell-cap 行的广告 ([#10657](https://github.com/QwenLM/qwen-code/pull/10657)) by @yiliang114 - fix(web-shell): 使侧边栏“新建任务”保持在特定工作区 ([#10777](https://github.com/QwenLM/qwen-code/pull/10777)) by @wenshao - fix(serve): 将 Conversations 运行时置于工作区注册限制之外 ([#10759](https://github.com/QwenLM/qwen-code/pull/10759)) by @wenshao - fix(cua): 恢复对旧版 Windows 安装程序的兼容性 ([#10792](https://github.com/QwenLM/qwen-code/pull/10792)) by @LaZzyMan - fix(triage): 使 Stage 1-pre 包含检查支持大文件 ([#10396](https://github.com/QwenLM/qwen-code/pull/10396)) by @yiliang114 - fix(web-shell): 为全新的独立会话加载模型 ([#10719](https://github.com/QwenLM/qwen-code/pull/10719)) by @doudouOUC - fix(core): 通过降级媒体内容,从携带媒体的 OpenAI 请求的 gateway 400 错误中恢复 ([#10699](https://github.com/QwenLM/qwen-code/pull/10699)) by @yiliang114 - fix(ci): 在 ECS 资源争用下保持 worker 测试的响应能力 ([#10813](https://github.com/QwenLM/qwen-code/pull/10813)) by @yiliang114 - fix(ci): 基于可信基础 SHA 对 CI 配置文件进行分类 ([#10799](https://github.com/QwenLM/qwen-code/pull/10799)) by @yiliang114 - fix(cli): 统一 OpenTUI 输出样式行为 ([#10806](https://github.com/QwenLM/qwen-code/pull/10806)) by @qqqys - fix(cli): 在会话启动时显示活动的计划任务 ([#10053](https://github.com/QwenLM/qwen-code/pull/10053)) by @yiliang114 - fix(ci): 防止稳定版发布禁用按工作区的测试重试机制 ([#10803](https://github.com/QwenLM/qwen-code/pull/10803)) by @yiliang114 - fix(release): 停止隐藏 sandbox 构建失败并提前检查已准备包 ([#10784](https://github.com/QwenLM/qwen-code/pull/10784)) by @yiliang114 - fix(core): 构建硬链接 tar 测试夹具而非打包 ([#10801](https://github.com/QwenLM/qwen-code/pull/10801)) by @yiliang114 - fix(release): 限制 quality_scripts 通道中的 Vitest worker 数量 (#10755) ([#10760](https://github.com/QwenLM/qwen-code/pull/10760)) by @qwen-code-dev-bot - fix(web-shell): 使手动会话名称在 /clear 后保持不变 (#8977) ([#9260](https://github.com/QwenLM/qwen-code/pull/9260)) by @yiliang114 - fix(ci): 将 OpenTUI 交互式 e2e 测试从 CI 中移除 ([#10829](https://github.com/QwenLM/qwen-code/pull/10829)) by @chiga0 - fix(live-host-release): 修正 setup-node action 的 SHA ([#10827](https://github.com/QwenLM/qwen-code/pull/10827)) by @LaZzyMan - fix(web-shell): 为重复的新任务重新加载模型 ([#10824](https://github.com/QwenLM/qwen-code/pull/10824)) by @doudouOUC - fix(goal): 停止导出不可达的 propose_goal 拒绝消息 ([#10787](https://github.com/QwenLM/qwen-code/pull/10787)) by @qqqys - fix(ci): 解决心跳 mint-skip 测试与循环启动的竞争问题 ([#10527](https://github.com/QwenLM/qwen-code/pull/10527)) by @qwen-code-dev-bot - fix(dws): 隔离跨对话的直接消息摄入 ([#10691](https://github.com/QwenLM/qwen-code/pull/10691)) by @qqqys - fix(web-shell): 保留斜杠命令附件 ([#10730](https://github.com/QwenLM/qwen-code/pull/10730)) by @ytahdn - fix(channels): 在工作区移除时清理选择项 ([#10796](https://github.com/QwenLM/qwen-code/pull/10796)) by @qqqys - fix(ci): 防止 sandbox 镜像准备等待其他运行的测试 ([#10843](https://github.com/QwenLM/qwen-code/pull/10843)) by @yiliang114 - fix(test): 为 serve routes 守护进程提供 CI 规模的 ACP 握手预算 ([#10846](https://github.com/QwenLM/qwen-code/pull/10846)) by @yiliang114 - fix(cli): 对中间监控通知轮次进行速率限制 (#10818) ([#10848](https://github.com/QwenLM/qwen-code/pull/10848)) by @yiliang114 - fix(channels): 按会话路由守护进程的权限投票 ([#10793](https://github.com/QwenLM/qwen-code/pull/10793)) by @qqqys - fix(live-host-release): 在发布作业中先构建 sdk 再构建 qwen-live ([#10836](https://github.com/QwenLM/qwen-code/pull/10836)) by @LaZzyMan - fix(ci): 逐 PR 读取 CI 巡逻的状态汇总 ([#10861](https://github.com/QwenLM/qwen-code/pull/10861)) by @yiliang114 - fix(cli): 修复 OpenTUI 提交路径的缺失,恢复其端到端(E2E)测试环节 ([#10831](https://github.com/QwenLM/qwen-code/pull/10831)) by @chiga0 - fix(release): 防止某个不稳定的测试导致稳定版本发布失败 ([#10842](https://github.com/QwenLM/qwen-code/pull/10842)) by @yiliang114 - fix(ci): 重试存在竞争条件的单元测试尝试,并限制挂起的尝试 ([#10868](https://github.com/QwenLM/qwen-code/pull/10868)) by @yiliang114 - fix(cli): 从会话工作区而非过期的 this.settings 缓存中解析 sessionCd 文件夹信任门控 ([#10470](https://github.com/QwenLM/qwen-code/pull/10470)) by @tomsen02 - fix(cli): 移除重复的文件夹信任模拟 ([#10874](https://github.com/QwenLM/qwen-code/pull/10874)) by @yiliang114 - fix(acp-bridge): 修复不稳定的全量 UTF-16 字节估算测试 (#10529) ([#10532](https://github.com/QwenLM/qwen-code/pull/10532)) by @qwen-code-dev-bot - fix(workflow): 通过前导标记对关键反馈进行分类 ([#10361](https://github.com/QwenLM/qwen-code/pull/10361)) by @Sumire-no-kai - fix(release): 报告工作区测试运行失败但实际无错误的情况 ([#10805](https://github.com/QwenLM/qwen-code/pull/10805)) by @yiliang114 - fix(cli): 使 OpenTUI 的轮次中提交和退出行为与 ink 保持一致 ([#10883](https://github.com/QwenLM/qwen-code/pull/10883)) by @chiga0 ### 性能 - 在审查流水线中增加了预验证去重步骤,跳过与携带账本匹配候选项以节省验证资源。 ([#10121](https://github.com/QwenLM/qwen-code/pull/10121)) by @wenshao - perf(ci): 对发布质量检查进行分片处理 ([#10619](https://github.com/QwenLM/qwen-code/pull/10619)) by @yiliang114 ### 文档 - 新增设计文档,详细说明了将 TUI 从 ink 迁移至 OpenTUI 的架构、分批计划及验证策略。 ([#10343](https://github.com/QwenLM/qwen-code/pull/10343)) by @chiga0 - 修正 Java SDK 文档,将不存在的 SessionClosedException 替换为 SessionControlException,以处理会话关闭或不可用的错误。 ([#9859](https://github.com/QwenLM/qwen-code/pull/9859)) by @AaronZ345 - 在常用工作流文档中添加了基于证据的结论配方,并附带可复制粘贴的 QWEN.md 验证策略模板。 ([#8702](https://github.com/QwenLM/qwen-code/pull/8702)) by @Dmatut7 - 记录了如何为 systemd 或 launchd 管理的 qwen serve 守护进程配置可信工具 PATH,以确保用户安装的工具仍可解析。 ([#10576](https://github.com/QwenLM/qwen-code/pull/10576)) by @doudouOUC - docs(design): 使 OpenTUI 迁移说明与已合并的分批内容保持一致 ([#10724](https://github.com/QwenLM/qwen-code/pull/10724)) by @chiga0 - docs(readme): 添加带版本号的 SWE-bench 分数 ([#10808](https://github.com/QwenLM/qwen-code/pull/10808)) by @DennisYu07 - docs(goals): 将目标文档与当前运行时同步 ([#10785](https://github.com/QwenLM/qwen-code/pull/10785)) by @qqqys - docs(design): 定义宽松的独立守护进程所有权规则 ([#10828](https://github.com/QwenLM/qwen-code/pull/10828)) by @doudouOUC ### 内部变更 - 自动化 PR 凭证图片现在上传至阿里云 OSS,避免在 Git 仓库中堆积数千个资产分支。 ([#9985](https://github.com/QwenLM/qwen-code/pull/9985)) by @yiliang114 - 重构 SDK 认证以消除运行时模块循环,通过直接从所属模块导入 HTTP 错误实现。 ([#10039](https://github.com/QwenLM/qwen-code/pull/10039)) by @DragonnZhang - 集中处理 JSON 标签字符转义,防止不受信任的内容破坏所有面向模型输出中的 HTML 或 XML 信封。 ([#9917](https://github.com/QwenLM/qwen-code/pull/9917)) by @AaronZ345 - 从 CLI 状态栏移除未使用的 MemoryUsageDisplay 组件,因其在代码库中已不再被引用。 ([#10238](https://github.com/QwenLM/qwen-code/pull/10238)) by @qqqys - 目标消息现在通过应用 boundedTurns 限制来遵循调用方的递归预算,其他特定豁免项保持不变并更新了文档。 ([#10259](https://github.com/QwenLM/qwen-code/pull/10259)) by @qqqys - Java SDK 测试夹具现在正确关闭无响应体连接的连接,以防止在会话销毁期间出现间歇性的 HTTP 头解析错误。 ([#10472](https://github.com/QwenLM/qwen-code/pull/10472)) by @wenshao - 通过定位路由参数提取谓词,消除了 ACP 路由表与传输工具层之间的循环依赖。 ([#10040](https://github.com/QwenLM/qwen-code/pull/10040)) by @DragonnZhang - 无面向用户的更改;本次发布将内部 MCP 服务器配置重构为独立模块,未改变功能。 ([#9496](https://github.com/QwenLM/qwen-code/pull/9496)) by @DragonnZhang - 将 VS Code IDE Companion 聊天迁移至由工作区范围的 qwen serve 守护进程支持的 WebShell,将对话记录管理与 VS Code 特定的生命周期任务分离。 ([#9811](https://github.com/QwenLM/qwen-code/pull/9811)) by @yiliang114 - 集成测试现在使用基于条件的轮询替代固定的 1 秒休眠,以可靠地等待 ACP 命令更新通知。 ([#10516](https://github.com/QwenLM/qwen-code/pull/10516)) by @yiliang114 - 通过修正守护进程 React SDK 的 mock 路径以匹配当前模块结构,修复了 web-shell 启动测试。 ([#10526](https://github.com/QwenLM/qwen-code/pull/10526)) by @wenshao - 更新 Web Shell 启动回归测试,使其从当前包入口点 mock 守护进程 SDK,解决因模块移动导致的 CI 失败。 ([#10545](https://github.com/QwenLM/qwen-code/pull/10545)) by @yiliang114 - 使用安全整数值替代,避免在 Node.js 定时器限制附近出现间歇性失败,从而稳定了会话截止边界测试。 ([#10556](https://github.com/QwenLM/qwen-code/pull/10556)) by @yiliang114 - ci: 稳定共享 ECS 主机竞争环境下的测试 ([#10552](https://github.com/QwenLM/qwen-code/pull/10552)) by @yiliang114 - 通过将 GitHub runner 环境传递给 Release 作业,应用共享 runner 集成限制,以在 ECS 主机上强制执行单 fork 限制。 ([#10592](https://github.com/QwenLM/qwen-code/pull/10592)) by @yiliang114 - 强化 Agent View 主管和 Web Shell 分页测试中对时间敏感等待的处理,以防止间歇性的夜间发布失败。 ([#10615](https://github.com/QwenLM/qwen-code/pull/10615)) by @yiliang114 - CI 测试现在测量 CPU 时间而非挂钟时间用于性能守卫,并等待第二个标记以验证 cron 交互式检查。 ([#10648](https://github.com/QwenLM/qwen-code/pull/10648)) by @yiliang114 - 添加回归测试以确保 tools.eager 配置能容忍 Object.prototype 键,避免在启动时导致 PermissionManager 崩溃。 ([#10479](https://github.com/QwenLM/qwen-code/pull/10479)) by @yiliang114 - 使用 vi.waitFor 轮询替代固定超时,可靠检测信号中断,从而稳定了选择器挂断中止测试。 ([#10664](https://github.com/QwenLM/qwen-code/pull/10664)) by @yiliang114 - test(core): 关闭 #9930 评审轮次中记录的延期测试缺口 ([#10465](https://github.com/QwenLM/qwen-code/pull/10465)) by @tomsen02 - test(integration): 移除不稳定的 ACP 召回时间检查 ([#10703](https://github.com/QwenLM/qwen-code/pull/10703)) by @yiliang114 - ci(ecs): 当 runner 集群更新失败时提交 issue ([#10445](https://github.com/QwenLM/qwen-code/pull/10445)) by @wenshao - test(ci): 使 web-shell 视觉发布存根模块安全 (#10736) ([#10738](https://github.com/QwenLM/qwen-code/pull/10738)) by @qwen-code-dev-bot - test(core): 将 shell-safety CPU 预算重新缩放至其测量的指标 ([#10735](https://github.com/QwenLM/qwen-code/pull/10735)) by @TianYuan1024 - chore(deps): 将 fast-uri 升级至 3.1.7 以清除高危审计拦截 ([#10862](https://github.com/QwenLM/qwen-code/pull/10862)) by @wenshao - chore(vscode): 刷新 fast-uri 升级的 NOTICES 文件 ([#10863](https://github.com/QwenLM/qwen-code/pull/10863)) by @yiliang114 - ci: 将 lint 和静态检查从 Test 作业中分离 ([#10756](https://github.com/QwenLM/qwen-code/pull/10756)) by @wenshao - test(review): 在测试运行时而非加载时标记账本条目 ([#10878](https://github.com/QwenLM/qwen-code/pull/10878)) by @yiliang114 - ci: 仅在合并后运行收集覆盖率,并在 node 环境下运行 cli 测试 ([#10890](https://github.com/QwenLM/qwen-code/pull/10890)) by @wenshao - test(cli): 在测试运行时而非加载时标记 background-work 持续时间夹具 (#10881) ([#10889](https://github.com/QwenLM/qwen-code/pull/10889)) by @qwen-code-dev-bot - test: 停止毫秒预算测量共享池 ([#10870](https://github.com/QwenLM/qwen-code/pull/10870)) by @yiliang114 ## 新贡献者 - @lwind233 在 [#9337](https://github.com/QwenLM/qwen-code/pull/9337) 中首次贡献 - @tonydzi 在 [#9414](https://github.com/QwenLM/qwen-code/pull/9414) 中首次贡献 - @bluefateludi 在 [#9803](https://github.com/QwenLM/qwen-code/pull/9803) 中首次贡献 - @shoemoney 在 [#9817](https://github.com/QwenLM/qwen-code/pull/9817) 中首次贡献 - @KXHXK 在 [#9045](https://github.com/QwenLM/qwen-code/pull/9045) 中首次贡献 - @imrehg 在 [#8725](https://github.com/QwenLM/qwen-code/pull/8725) 中首次贡献 - @Dmatut7 在 [#8702](https://github.com/QwenLM/qwen-code/pull/8702) 中首次贡献 - @mredbishop 在 [#10275](https://github.com/QwenLM/qwen-code/pull/10275) 中首次贡献 - @Sumire-no-kai 在 [#10083](https://github.com/QwenLM/qwen-code/pull/10083) 中首次贡献 - @Wkewen 在 [#10001](https://github.com/QwenLM/qwen-code/pull/10001) 中首次贡献 - @MingyaWang 在 [#10633](https://github.com/QwenLM/qwen-code/pull/10633) 中首次贡献 - @liujiayi771 在 [#10417](https://github.com/QwenLM/qwen-code/pull/10417) 中首次贡献 **完整更新日志**: https://github.com/QwenLM/qwen-code/compare/v0.22.3...v0.23.0