## 更新内容
* 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):在 clean 脚本中移除重复的 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):统一 offset 到 position 的逻辑 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() promise 以防止挂起 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 requests 启用 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): 在清理过程中移除 abort 监听器 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 授权 URL 可点击 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
## New Contributors
* @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.14.5-nightly.20260422.d1c8dff4d
## What's Changed
* feat(acp): add complete hooks support for ACP integration by @DennisYu07 in https://github.com/QwenLM/qwen-code/pull/3248
* feat: optimize compact mode UX — shortcuts, settings sync, and safety by @chiga0 in https://github.com/QwenLM/qwen-code/pull/3100
* feat(hooks): Add HTTP Hook, Function Hook and Async Hook support by @DennisYu07 in https://github.com/QwenLM/qwen-code/pull/2827
* fix(sdk): avoid leaking process exit listeners in ProcessTransport by @reidliu41 in https://github.com/QwenLM/qwen-code/pull/3295
* fix(cli): prevent statusline spawn EBADF from crashing CLI (#3264) by @wenshao in https://github.com/QwenLM/qwen-code/pull/3310
* fix(cli): remember "Start new chat session" until summary changes by @reidliu41 in https://github.com/QwenLM/qwen-code/pull/3308
* feat(memory): managed auto-memory and auto-dream system by @LaZzyMan in https://github.com/QwenLM/qwen-code/pull/3087
* fix(cli): defer update notifications until model response completes by @pic4xiu in https://github.com/QwenLM/qwen-code/pull/3321
* test(core): stabilize glob truncation tests by @reidliu41 in https://github.com/QwenLM/qwen-code/pull/3322
* docs: fix Windows install command to work in both CMD and PowerShell by @Skyline-9 in https://github.com/QwenLM/qwen-code/pull/3252
* feat(cli): support multi-line status line output by @wenshao in https://github.com/QwenLM/qwen-code/pull/3311
* fix(core): limit skill watcher depth to prevent FD exhaustion by @tanzhenxin in https://github.com/QwenLM/qwen-code/pull/3320
* fix(core): strip thinking blocks from history on model switch by @tanzhenxin in https://github.com/QwenLM/qwen-code/pull/3315
* docs: update authentication methods to reflect OAuth discontinuation by @joeytoday in https://github.com/QwenLM/qwen-code/pull/3325
* fix(core): add shell argument quoting guidance to prevent special char errors by @LaZzyMan in https://github.com/QwenLM/qwen-code/pull/3327
* refactor(core): move fork subagent params from execute() to construction time by @tanzhenxin in https://github.com/QwenLM/qwen-code/pull/3255
* feat(skills): add /batch skill for parallel batch operations by @doudouOUC in https://github.com/QwenLM/qwen-code/pull/3079
* feat: background subagents with headless and SDK support by @tanzhenxin in https://github.com/QwenLM/qwen-code/pull/3076
* feat(core): add path-based context rule injection from .qwen/rules/ by @wenshao in https://github.com/QwenLM/qwen-code/pull/3339
* test(integration): match new cron notification format in interactive tests by @tanzhenxin in https://github.com/QwenLM/qwen-code/pull/3402
* feat(cli): add dual-output sidecar mode for TUI by @chiga0 in https://github.com/QwenLM/qwen-code/pull/3352
* feat: bind `M-d` to a reasonable (Emacs-like) default by @pedrormjunior in https://github.com/QwenLM/qwen-code/pull/3358
* fix(cli): reduce terminal redraw cursor movement by @reidliu41 in https://github.com/QwenLM/qwen-code/pull/3381
* fix(dingtalk): only suffix '(cont.)' on continuation chunks, not the first by @chinesepowered in https://github.com/QwenLM/qwen-code/pull/2977
* fix(dingtalk): preserve empty text after @mention strip instead of falling back by @chinesepowered in https://github.com/QwenLM/qwen-code/pull/2978
* fix(dingtalk): remove reactionContext map to stop leak on blocked messages by @chinesepowered in https://github.com/QwenLM/qwen-code/pull/2979
* fix(sandbox): fall back to 'latest' tag when image name has no colon by @chinesepowered in https://github.com/QwenLM/qwen-code/pull/2962
* fix(scripts): remove duplicate bundle rmSync in clean script by @chinesepowered in https://github.com/QwenLM/qwen-code/pull/2964
* fix(integration-tests): honor stdinDoesNotEnd option by @chinesepowered in https://github.com/QwenLM/qwen-code/pull/2966
* fix(scripts): Fix `"undefined Options: ..."` in generated JSON schema for enum settings without descriptions. by @chinesepowered in https://github.com/QwenLM/qwen-code/pull/2963
* fix(text-buffer): unify offset-to-position logic by @chinesepowered in https://github.com/QwenLM/qwen-code/pull/2969
* fix(weixin): check full 4-byte PNG magic signature by @chinesepowered in https://github.com/QwenLM/qwen-code/pull/2970
* fix(cli): re-arm disconnected listener on rebuilt AcpBridge after crash by @chinesepowered in https://github.com/QwenLM/qwen-code/pull/2975
* fix(sdk): settle pending next() promise in Stream.return() to prevent hangs by @chinesepowered in https://github.com/QwenLM/qwen-code/pull/2981
* fix(cli): auto-submit on number key press in AskUserQuestionDialog by @doudouOUC in https://github.com/QwenLM/qwen-code/pull/3407
* feat(core): detect tool validation retry loops and inject stop directive by @euxaristia in https://github.com/QwenLM/qwen-code/pull/3178
* fix(tool-registry): add lazy factory registration with inflight concurrency dedup by @doudouOUC in https://github.com/QwenLM/qwen-code/pull/3297
* Fix typo in class name by @szepeviktor in https://github.com/QwenLM/qwen-code/pull/2189
* test(core): update scheduler registry mock by @reidliu41 in https://github.com/QwenLM/qwen-code/pull/3415
* fix(cli): wait for dual output stream shutdown by @reidliu41 in https://github.com/QwenLM/qwen-code/pull/3416
* feat(mcp): add OSC 52 copy hotkey for OAuth authorization URL by @BZ-D in https://github.com/QwenLM/qwen-code/pull/3393
* feat(vscode-ide-companion): add dedicated agent execution display by @yiliang114 in https://github.com/QwenLM/qwen-code/pull/2590
* perf(vscode): fix input lag in long conversations by @yiliang114 in https://github.com/QwenLM/qwen-code/pull/2550
* feat(cli): add early input capture to prevent keystroke loss during startup by @doudouOUC in https://github.com/QwenLM/qwen-code/pull/3319
* fix(build): invoke tsx directly via node --import instead of npx by @euxaristia in https://github.com/QwenLM/qwen-code/pull/3237
* ci(stale): enable 60+30 stale/close policy for pull requests by @wenshao in https://github.com/QwenLM/qwen-code/pull/3375
* feat(cli): support refreshInterval in statusLine for periodic refresh by @wenshao in https://github.com/QwenLM/qwen-code/pull/3383
* fix(core): support older Git during repository initialization by @reidliu41 in https://github.com/QwenLM/qwen-code/pull/3436
* feat(core): add dynamic swarm worker tool by @reidliu41 in https://github.com/QwenLM/qwen-code/pull/3433
* fix(cli): /clear dismisses active /btw side-question dialog by @sharziki in https://github.com/QwenLM/qwen-code/pull/3431
* fix(cli): let /btw use live conversation context by @yiliang114 in https://github.com/QwenLM/qwen-code/pull/3429
* fix: display ">100%" when context usage exceeds limit by @DennisYu07 in https://github.com/QwenLM/qwen-code/pull/2766
* fix(ui): constrain shell output width to prevent box overflow by @euxaristia in https://github.com/QwenLM/qwen-code/pull/2857
* feat(tools): add Markdown for Agents support to WebFetch tool by @gin-lsl in https://github.com/QwenLM/qwen-code/pull/2734
* fix(core): remove abort listener during cleanup by @reidliu41 in https://github.com/QwenLM/qwen-code/pull/3438
* feat(core): enhanced loop detection with stagnation + validation-retry checks by @euxaristia in https://github.com/QwenLM/qwen-code/pull/3236
* feat(cli): add /doctor diagnostic command by @doudouOUC in https://github.com/QwenLM/qwen-code/pull/3404
* feat(vscode-companion): enable Plan Mode toggle and approval UI by @yiliang114 in https://github.com/QwenLM/qwen-code/pull/2551
* feat(cli): add session recap with /recap and auto-show on return by @wenshao in https://github.com/QwenLM/qwen-code/pull/3434
* fix(vscode-ide-companion): preserve split stream message ordering by @yiliang114 in https://github.com/QwenLM/qwen-code/pull/3450
* feat(cli): add bare startup mode by @yiliang114 in https://github.com/QwenLM/qwen-code/pull/3448
* feat(vscode-ide-companion): support /insight command by @yiliang114 in https://github.com/QwenLM/qwen-code/pull/2593
* feat(cli): add slashCommands.disabled setting to gate slash commands by @ihubanov in https://github.com/QwenLM/qwen-code/pull/3445
* feat(core): PDF text extraction fallback and Jupyter notebook parsing by @wenshao in https://github.com/QwenLM/qwen-code/pull/3160
* feat(cli): add OAuth configuration flags to `mcp add` by @BZ-D in https://github.com/QwenLM/qwen-code/pull/3442
* refactor(cli): replace slash command whitelist with capability-based filtering (Phase 1) by @LaZzyMan in https://github.com/QwenLM/qwen-code/pull/3283
* fix(core): normalize Windows PATH for MCP stdio servers by @yiliang114 in https://github.com/QwenLM/qwen-code/pull/3451
* feat(cli): add tool execution progress messages by @wenshao in https://github.com/QwenLM/qwen-code/pull/3155
* Revert "feat(core): add dynamic swarm worker tool" by @wenshao in https://github.com/QwenLM/qwen-code/pull/3468
* fix(core): prevent malformed permission rules from becoming tool-wide catch-alls by @doudouOUC in https://github.com/QwenLM/qwen-code/pull/3467
* feat(cli): make ACP message rewrite timeout configurable by @zhangxy-zju in https://github.com/QwenLM/qwen-code/pull/3475
* fix(cli): pin /recap above input and align defaults with fastModel by @wenshao in https://github.com/QwenLM/qwen-code/pull/3478
* feat(cli): attribute /stats rows to the originating subagent by @tanzhenxin in https://github.com/QwenLM/qwen-code/pull/3229
* test(integration): switch settings-migration probe from --help to mcp list by @tanzhenxin in https://github.com/QwenLM/qwen-code/pull/3486
* fix(cli): rework session recap rendering and add blur threshold setting by @wenshao in https://github.com/QwenLM/qwen-code/pull/3482
* feat(webui): render markdown in generic and web-fetch tool outputs by @qqqys in https://github.com/QwenLM/qwen-code/pull/3469
* fix(mcp): make the OAuth authorization URL clickable when wrapped by @BZ-D in https://github.com/QwenLM/qwen-code/pull/3489
* feat(cli): display real-time token consumption during streaming (#2742) by @qqqys in https://github.com/QwenLM/qwen-code/pull/3329
* fix(core): recover from truncated tool calls via multi-turn continuation by @wenshao in https://github.com/QwenLM/qwen-code/pull/3313
* fix(editor): detect Zed.app on macOS when CLI is not in PATH by @gy1016 in https://github.com/QwenLM/qwen-code/pull/3303
* fix(openai): when samplingParams is set, pass it through verbatim by @yeelam-gordon in https://github.com/QwenLM/qwen-code/pull/3458
* feat(retry): add persistent retry mode for unattended CI/CD environments by @zhangxy-zju in https://github.com/QwenLM/qwen-code/pull/3080
* feat(vscode): replace OAuth with Coding Plan / API Key provider setup by @yiliang114 in https://github.com/QwenLM/qwen-code/pull/3398
* fix: Handle missing xdg-open (ENOENT) gracefully to prevent crash by @Ojhaharsh in https://github.com/QwenLM/qwen-code/pull/1675
* fix(core): use empty string instead of null for reasoning-only assistant content by @LaZzyMan in https://github.com/QwenLM/qwen-code/pull/3499
* feat(arena): add comparison summary for agent results by @reidliu41 in https://github.com/QwenLM/qwen-code/pull/3394
## New Contributors
* @Skyline-9 made their first contribution in https://github.com/QwenLM/qwen-code/pull/3252
* @pedrormjunior made their first contribution in https://github.com/QwenLM/qwen-code/pull/3358
* @szepeviktor made their first contribution in https://github.com/QwenLM/qwen-code/pull/2189
* @sharziki made their first contribution in https://github.com/QwenLM/qwen-code/pull/3431
* @gin-lsl made their first contribution in https://github.com/QwenLM/qwen-code/pull/2734
* @ihubanov made their first contribution in https://github.com/QwenLM/qwen-code/pull/3445
* @gy1016 made their first contribution in https://github.com/QwenLM/qwen-code/pull/3303
* @yeelam-gordon made their first contribution in https://github.com/QwenLM/qwen-code/pull/3458
* @Ojhaharsh made their first contribution in https://github.com/QwenLM/qwen-code/pull/1675
**Full Changelog**: https://github.com/QwenLM/qwen-code/compare/v0.14.5...v0.14.5-nightly.20260422.d1c8dff4d