← 返回更新日志

Qwen Code v0.18.4

2026-06-20 · GitHub 原文
<!-- 使用 release/v0.18.4 分支中 .github/release.yml 的配置生成发布说明 --> ## 更新内容 * chore(release): v0.18.3 by @qwen-code-ci-bot in https://github.com/QwenLM/qwen-code/pull/5255 * fix(core): 在文件历史记录中跟踪支持的 sed 编辑 by @doudouOUC in https://github.com/QwenLM/qwen-code/pull/5141 * fix(vscode-ide-companion): 为每个 IDE 会话创建独立的 McpServer by @huww98 in https://github.com/QwenLM/qwen-code/pull/5264 * fix(core): 对于自上而下的位图,将 BMP 高度读取为有符号 int32 by @he-yufeng in https://github.com/QwenLM/qwen-code/pull/5227 * docs: 添加包含 qwen sessions list 的 CLI 子命令部分 by @DragonnZhang in https://github.com/QwenLM/qwen-code/pull/5254 * feat(serve): 使 ACP 权限超时时间可配置 by @doudouOUC in https://github.com/QwenLM/qwen-code/pull/5260 * fix(cli): 保留对话中途的图片消息 by @doudouOUC in https://github.com/QwenLM/qwen-code/pull/5183 * docs: 修复 SSE 环大小错误并添加 /workflows 命令 by @DragonnZhang in https://github.com/QwenLM/qwen-code/pull/5205 * fix(core): 按内容检测 dat 文件 by @tt-a1i in https://github.com/QwenLM/qwen-code/pull/5256 * fix(model): 当多个提供商共享同一模型 ID 时记住已选择的提供商 (#5173) by @doudouOUC in https://github.com/QwenLM/qwen-code/pull/5179 * docs: 重构 README 以提升清晰度与重点 by @pomelo-nwu in https://github.com/QwenLM/qwen-code/pull/5257 * feat(i18n): 对 TUI 和 web-shell 徽章中的工具显示名称进行本地化 by @wenshao in https://github.com/QwenLM/qwen-code/pull/5220 * fix(daemon): 集中化对话中途事件常量 + 恢复超时的 drains by @wenshao in https://github.com/QwenLM/qwen-code/pull/5266 * fix(core): 保持 DeepSeek 预设仅为文本 by @tt-a1i in https://github.com/QwenLM/qwen-code/pull/5268 * fix(cli): 移除可能导致 React #185 报错的 AgentView 清理 setState (#5199) by @wenshao in https://github.com/QwenLM/qwen-code/pull/5286 * fix(core): 从正确的字节偏移量读取 WebP VP8X 画布高度 by @he-yufeng in https://github.com/QwenLM/qwen-code/pull/5194 * fix(cli): 在补全中支持 Ctrl+P/N by @tt-a1i in https://github.com/QwenLM/qwen-code/pull/5259 * feat(serve): 在 GET /health?deep=true 中添加守护进程空闲检测 by @jifeng in https://github.com/QwenLM/qwen-code/pull/4934 * fix(core): 绝不让遥测文件导出器导致进程崩溃 by @DragonnZhang in https://github.com/QwenLM/qwen-code/pull/5246 * fix(cli): 修正上下文文件名设置 schema by @tt-a1i in https://github.com/QwenLM/qwen-code/pull/5269 * feat(hooks): 将原始 API 调用 ID (toolCallId) 传递给钩子系统 by @shiloong in https://github.com/QwenLM/qwen-code/pull/4918 * fix(core): 每次对话的工具调用熔断器 — 始终开启的上限 + 可选的循环启发式算法 (#5234) by @wenshao in https://github.com/QwenLM/qwen-code/pull/5279 * fix(desktop): 处理 git 分支徽章的边缘情况 by @tt-a1i in https://github.com/QwenLM/qwen-code/pull/5247 * feat(core,cli): 工作流工具令牌预算 + 每次运行的 UI 展示 (P5) by @LaZzyMan in https://github.com/QwenLM/qwen-code/pull/5231 * feat(extensions): 为扩展的 displayName 和 description 添加 i18n 支持 by @callmeYe in https://github.com/QwenLM/qwen-code/pull/5289 * feat(loop): 将仅提示的 /loop 连接到按需唤醒 by @qqqys in https://github.com/QwenLM/qwen-code/pull/5197 * fix(cli): 修正沙箱设置 schema by @tt-a1i in https://github.com/QwenLM/qwen-code/pull/5272 * test(cli): 启用加载配置模型选择的测试覆盖率 by @tt-a1i in https://github.com/QwenLM/qwen-code/pull/5274 * docs(cli): 记录 tmux 滚动问题的变通方案 by @tt-a1i in https://github.com/QwenLM/qwen-code/pull/5248 * test(cli): 覆盖选择列表向上滚动 by @tt-a1i in https://github.com/QwenLM/qwen-code/pull/5276 * fix(weixin): 显示允许的图像目录 by @tt-a1i in https://github.com/QwenLM/qwen-code/pull/5296 * fix(cli): 拒绝格式错误的 OSC rgb 颜色 by @tt-a1i in https://github.com/QwenLM/qwen-code/pull/5307 * test(cli): 启用表格前景色重置的测试覆盖率 by @tt-a1i in https://github.com/QwenLM/qwen-code/pull/5278 * test(core): 启用无头代理终止的测试覆盖率 by @tt-a1i in https://github.com/QwenLM/qwen-code/pull/5282 * fix(web-shell): 总结 grep_search 结果 by @tt-a1i in https://github.com/QwenLM/qwen-code/pull/5294 * fix(core): 读取短格式 VP8L WebP 尺寸 by @tt-a1i in https://github.com/QwenLM/qwen-code/pull/5292 * fix(core): 跟踪附加的 stdout fd 重定向 by @tt-a1i in https://github.com/QwenLM/qwen-code/pull/5317 * fix(dingtalk): 拆分过长的 markdown 行 by @tt-a1i in https://github.com/QwenLM/qwen-code/pull/5299 * fix(cli): 保留多行 shell 历史记录 by @tt-a1i in https://github.com/QwenLM/qwen-code/pull/5335 * fix(cli): 验证 GitHub 远程主机 by @tt-a1i in https://github.com/QwenLM/qwen-code/pull/5327 * test(cli): 启用命令搜索长建议的测试覆盖率 by @tt-a1i in https://github.com/QwenLM/qwen-code/pull/5283 * fix(core): 保留已迁移的命令描述字符串 by @tt-a1i in https://github.com/QwenLM/qwen-code/pull/5321 * fix(cli): 强制执行 stdin 字节限制 by @tt-a1i in https://github.com/QwenLM/qwen-code/pull/5331 * fix(core): 在转换为 ~ 路径时尊重主目录路径边界 by @tt-a1i in https://github.com/QwenLM/qwen-code/pull/5333 * fix(cli): 按显示宽度截断会话选择器文本 by @tt-a1i in https://github.com/QwenLM/qwen-code/pull/5338 * fix(core): 支持 GIF 图像令牌元数据 by @tt-a1i in https://github.com/QwenLM/qwen-code/pull/5340 * fix(cli): 处理会话搜索的字素 (graphemes) by @tt-a1i in https://github.com/QwenLM/qwen-code/pull/5342 * fix(cli): 规范化英文输出语言 by @tt-a1i in https://github.com/QwenLM/qwen-code/pull/5346 * fix(core): 解析 OAuth 资源元数据参数 by @tt-a1i in https://github.com/QwenLM/qwen-code/pull/5344 * fix(core): 处理过期的 worktree 会话标记 by @tt-a1i in https://github.com/QwenLM/qwen-code/pull/5229 * feat(loop): 添加秒级会话唤醒引擎 by @qqqys in https://github.com/QwenLM/qwen-code/pull/5182 * fix(core): 忽略重复的提供商工具调用 ID by @YingchaoX in https://github.com/QwenLM/qwen-code/pull/5038 * fix(cli): 在完整转录模式下显示思考过程 by @tt-a1i in https://github.com/QwenLM/qwen-code/pull/5354 * feat(desktop): 在 brand-create 中编译 macOS 26+ Liquid Glass Assets.car by @pomelo-nwu in https://github.com/QwenLM/qwen-code/pull/5284 * fix(cli): 返回全新的空 MCP JSON 结果 by @tt-a1i in https://github.com/QwenLM/qwen-code/pull/5349 * fix(weixin): 规范化 Markdown 图片语法 by @tt-a1i in https://github.com/QwenLM/qwen-code/pull/5297 * fix(core): 在无头 SSH 中跳过睡眠抑制器 by @tt-a1i in https://github.com/QwenLM/qwen-code/pull/5295 * fix(cli): 拒绝格式错误的终端序列 by @tt-a1i in https://github.com/QwenLM/qwen-code/pull/5305 * fix(cli): 展开 Windows 风格的波浪号路径 by @tt-a1i in https://github.com/QwenLM/qwen-code/pull/5298 * fix(core): 验证 OAuth expires_in 值 by @tt-a1i in https://github.com/QwenLM/qwen-code/pull/5356 * fix(core): 拒绝格式错误的 cron 数值字段 by @tt-a1i in https://github.com/QwenLM/qwen-code/pull/5352 * fix(cli): 解析沙箱镜像注册表端口 by @tt-a1i in https://github.com/QwenLM/qwen-code/pull/5325 * fix(cli): 保留空的 MCP 提示参数 by @tt-a1i in https://github.com/QwenLM/qwen-code/pull/5323 * fix(core): 拒绝无效的 cron 任务条目 by @tt-a1i in https://github.com/QwenLM/qwen-code/pull/5309 * fix(cli): 避免代理组合器卸载重置 by @tt-a1i in https://github.com/QwenLM/qwen-code/pull/5302 * fix(cli): 验证通道服务 PID 文件 by @tt-a1i in https://github.com/QwenLM/qwen-code/pull/5300 * fix(core): 保留无效的 schema 长度字符串 by @tt-a1i in https://github.com/QwenLM/qwen-code/pull/5312 * fix(weixin): 确认 WEBP 签名,而不仅仅是 RIFF 前缀 by @he-yufeng in https://github.com/QwenLM/qwen-code/pull/5285 * feat(channel): 添加 QQ 机器人 (QQ Bot) 通道适配器 by @Eric-GoodBoy-Tech in https://github.com/QwenLM/qwen-code/pull/5202 * fix(cli): 拒绝格式错误的 ACP 超时字符串 by @tt-a1i in https://github.com/QwenLM/qwen-code/pull/5315 * fix(cli): 通过文件 URL 导入扩展通道 by @tt-a1i in https://github.com/QwenLM/qwen-code/pull/5301 * fix(cli): 限制流式思考渲染缓冲区 by @kkhomej33-netizen in https://github.com/QwenLM/qwen-code/pull/5314 * feat(core): 进入计划模式时自动显示 exit_plan_mode 工具 by @aspnmy in https://github.com/QwenLM/qwen-code/pull/5311 * fix(cli): 窗口标题显示会话名称而非模型活动状态 by @ZijianZhang989 in https://github.com/QwenLM/qwen-code/pull/5288 * fix(core): 保持 qwen3.6-flash 和 kimi-k2.6 预设仅为文本 by @he-yufeng in https://github.com/QwenLM/qwen-code/pull/5328 * feat(skills): 添加 desktop-pet 技能,用于创建像素艺术伴侣 by @xxlaura in https://github.com/QwenLM/qwen-code/pull/4808 * fix(cli): 将四舍五入为 60s 的不足一分钟时长渲染为 "1m" by @he-yufeng in https://github.com/QwenLM/qwen-code/pull/5287 * fix: 展开 Windows ~\\ 主目录路径,并在桌面会话列表中隐藏虚拟(会话)条目 by @mvanhorn in https://github.com/QwenLM/qwen-code/pull/5253 * feat(stats): 暴露令牌用量以提供成本可见性 by @shenyankm in https://github.com/QwenLM/qwen-code/pull/4564 * fix(plan-gate): 将门控代理的 AbortSignal 从父信号链中隔离 by @CubeLander in https://github.com/QwenLM/qwen-code/pull/5185 * fix(core): 在侧边查询中遵循输出语言设置 by @Jerry2003826 in https://github.com/QwenLM/qwen-code/pull/4519 * fix(cli): 避免设置过期的 git 分支监听器 by @tt-a1i in https://github.com/QwenLM/qwen-code/pull/5271 * fix(desktop): 在 RIFF 魔术字节嗅探中检测 WebP 和 AVI by @he-yufeng in https://github.com/QwenLM/qwen-code/pull/5336 * fix(input): 恢复在 #4779 中回滚的 IME 光标定位 by @BenGuanRan in https://github.com/QwenLM/qwen-code/pull/4993 * fix(cli): 在按 Enter 接受时关闭 @path 补全下拉菜单 by @Alex-ai-future in https://github.com/QwenLM/qwen-code/pull/4841 * fix(core): 当钥匙串不可用时,扩展密钥回退到加密文件存储 by @DragonnZhang in https://github.com/QwenLM/qwen-code/pull/5221 * fix(core): 支持会话元数据字段中的空白字符 by @tt-a1i in https://github.com/QwenLM/qwen-code/pull/5353 * fix(core): 防止在 /quit 期间自动内存提取时发生 OOM(#5147) by @ZijianZhang989 in https://github.com/QwenLM/qwen-code/pull/5181 * refactor(tools): 将 TodoWrite 工具的显示名称重命名为 TodoList by @wenshao in https://github.com/QwenLM/qwen-code/pull/5319 * fix(core): 在缓冲区边界处使令牌过期 by @tt-a1i in https://github.com/QwenLM/qwen-code/pull/5360 * fix(cli): 在修改前验证恢复检查点 by @tt-a1i in https://github.com/QwenLM/qwen-code/pull/5358 * fix(core): 在运行时遵循 ripgrep 内置设置 by @tt-a1i in https://github.com/QwenLM/qwen-code/pull/5362 * fix(core): 首次保存时创建令牌文件 by @tt-a1i in https://github.com/QwenLM/qwen-code/pull/5367 * fix(cli): 为扩展保留工作区信任状态 by @tt-a1i in https://github.com/QwenLM/qwen-code/pull/5369 * fix(cli): 在权限取消后停止 by @doudouOUC in https://github.com/QwenLM/qwen-code/pull/5258 * fix(core): 在搜索权限检查前解析波浪号路径 by @tt-a1i in https://github.com/QwenLM/qwen-code/pull/5378 * fix(cli): 遵守沙箱路径边界 by @tt-a1i in https://github.com/QwenLM/qwen-code/pull/5375 * fix(cli): 更新 acp 取消测试标志 by @tt-a1i in https://github.com/QwenLM/qwen-code/pull/5384 * fix(core): 在 MCP 工具错误时避免重新连接 by @tt-a1i in https://github.com/QwenLM/qwen-code/pull/5382 * fix(core): 接受大写的 Web 获取方案 by @tt-a1i in https://github.com/QwenLM/qwen-code/pull/5391 * fix(cli): 保留 MCP 环境变量值中的等号 by @tt-a1i in https://github.com/QwenLM/qwen-code/pull/5377 * feat(cli): 在输入框占位符中显示后续建议 by @MikeWang0316tw in https://github.com/QwenLM/qwen-code/pull/5145 * fix(core): 避免全局前缀缓存重复使用 by @tt-a1i in https://github.com/QwenLM/qwen-code/pull/5364 * fix(core): 验证 grep 结果限制 by @tt-a1i in https://github.com/QwenLM/qwen-code/pull/5389 * fix(core): 解析包含冒号路径的 grep 结果 by @tt-a1i in https://github.com/QwenLM/qwen-code/pull/5372 * feat(config): 通过 chokidar 监听器添加设置文件变更检测… by @water-in-stone in https://github.com/QwenLM/qwen-code/pull/4933 * fix(acp): 清理子进程的环境变量 by @tt-a1i in https://github.com/QwenLM/qwen-code/pull/5395 * fix(core): 向 systemd-inhibit 传递 --no-ask-password 以防止 TUI 损坏 by @OrbitZore in https://github.com/QwenLM/qwen-code/pull/5318 * fix(cli): 解析包含 Windows 驱动器的沙箱挂载 by @tt-a1i in https://github.com/QwenLM/qwen-code/pull/5388 * fix(core): 将 GLM-5.2 添加到 Z.AI 预设 by @tt-a1i in https://github.com/QwenLM/qwen-code/pull/5397 * fix(openai): 添加字符串工具结果兼容模式 by @tt-a1i in https://github.com/QwenLM/qwen-code/pull/5399 * fix(cli): 明确累计状态栏令牌标签 by @tt-a1i in https://github.com/QwenLM/qwen-code/pull/5400 * feat(cli): 显示可选响应令牌速率 by @tt-a1i in https://github.com/QwenLM/qwen-code/pull/5401 * fix(cli): 减少保留的交互式工具输出内存 by @kkhomej33-netizen in https://github.com/QwenLM/qwen-code/pull/4971 * fix(cli): 从阶段令牌差值计算响应速率 by @tt-a1i in https://github.com/QwenLM/qwen-code/pull/5402 * fix(cli): 明确不可用模型配置提示 by @tt-a1i in https://github.com/QwenLM/qwen-code/pull/5403 * feat(cli): 通过 `qwen serve` 提供 Web Shell UI by @wenshao in https://github.com/QwenLM/qwen-code/pull/5392 * fix(cli): 将 cron 调度器启动绑定到配置初始化 (#5022) by @qwen-code-ci-bot in https://github.com/QwenLM/qwen-code/pull/5230 * fix(core): 保持预估令牌拆分总和等于总量 by @he-yufeng in https://github.com/QwenLM/qwen-code/pull/5420 * fix(core): 共享内存文件名配置状态 by @tt-a1i in https://github.com/QwenLM/qwen-code/pull/5419 * fix(channel): 限定 qqbot 会话备份路径范围 by @tt-a1i in https://github.com/QwenLM/qwen-code/pull/5417 * fix(channel): 跟踪 qqbot 关闭重连计时器 by @tt-a1i in https://github.com/QwenLM/qwen-code/pull/5416 * fix(auth): 安装时保留自定义提供商模型 by @tt-a1i in https://github.com/QwenLM/qwen-code/pull/5404 * fix(core): 针对微压缩缓存禁用触发机制 by @tt-a1i in https://github.com/QwenLM/qwen-code/pull/5407 * fix(channel): 保持 qqbot 令牌刷新重试 by @tt-a1i in https://github.com/QwenLM/qwen-code/pull/5414 * fix(cli): 保持按键处理程序为最新 by @tt-a1i in https://github.com/QwenLM/qwen-code/pull/5421 * refactor(serve): 将会话标题/displayName 统一为单个 displayName 字段 by @chiga0 in https://github.com/QwenLM/qwen-code/pull/5002 * feat(cli): 恢复时添加持久化历史折叠功能并优化命令 by @Gove2004 in https://github.com/QwenLM/qwen-code/pull/4085 * fix(cli): 收窄设置枚举模式 by @tt-a1i in https://github.com/QwenLM/qwen-code/pull/5418 * fix(channel): 限制 qqbot 网关重连重试次数 by @tt-a1i in https://github.com/QwenLM/qwen-code/pull/5415 * fix(core): 阻止广泛的 shell 自杀命令 by @tt-a1i in https://github.com/QwenLM/qwen-code/pull/5409 * fix(cli): 保存时保留 trustedFolders 注释 by @Zoean-z in https://github.com/QwenLM/qwen-code/pull/4746 * fix(hooks): 移除废弃的 updatedMCPToolOutput 字段 (#5422) by @ken-jo in https://github.com/QwenLM/qwen-code/pull/5423 * feat(web-shell): 添加扩展管理 by @ytahdn in https://github.com/QwenLM/qwen-code/pull/5398 * fix(cli): 在 mcp 添加传输检测中接受大写 URL 方案 by @he-yufeng in https://github.com/QwenLM/qwen-code/pull/5426 * fix(extensions): 解析安装源时接受大写 URL 方案 by @he-yufeng in https://github.com/QwenLM/qwen-code/pull/5429 * fix(core): 计划门不可用时提供逃生路径 by @Alex-ai-future in https://github.com/QwenLM/qwen-code/pull/5430 * feat(extensions): 交互式多标签页 /extensions 管理器(已安装 / 发现 / 源) by @BZ-D in https://github.com/QwenLM/qwen-code/pull/4850 * fix(cli): 稳定扩展列表间距 by @yiliang114 in https://github.com/QwenLM/qwen-code/pull/5445 * fix(weixin): 处理大写 CDN 上传方案 by @tt-a1i in https://github.com/QwenLM/qwen-code/pull/5439 ## 新贡献者 * @shiloong 在 https://github.com/QwenLM/qwen-code/pull/4918 首次贡献 * @Eric-GoodBoy-Tech 在 https://github.com/QwenLM/qwen-code/pull/5202 首次贡献 * @aspnmy 在 https://github.com/QwenLM/qwen-code/pull/5311 首次贡献 * @xxlaura 在 https://github.com/QwenLM/qwen-code/pull/4808 首次贡献 * @mvanhorn 在 https://github.com/QwenLM/qwen-code/pull/5253 首次贡献 * @CubeLander 在 https://github.com/QwenLM/qwen-code/pull/5185 首次贡献 * @water-in-stone 在 https://github.com/QwenLM/qwen-code/pull/4933 首次贡献 * @OrbitZore 在 https://github.com/QwenLM/qwen-code/pull/5318 首次贡献 * @Gove2004 在 https://github.com/QwenLM/qwen-code/pull/4085 首次贡献 * @Zoean-z 在 https://github.com/QwenLM/qwen-code/pull/4746 首次贡献 * @ken-jo 在 https://github.com/QwenLM/qwen-code/pull/5423 首次贡献 **完整更新日志**: https://github.com/QwenLM/qwen-code/compare/v0.18.3...v0.18.4