## 更新内容
* feat(acp): 为 ACP 集成添加完整的钩子支持 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 钩子、函数钩子和异步钩子支持 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 添加双输出边车模式 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
## 新增贡献者
* @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 中首次贡献
**完整更新日志**: https://github.com/QwenLM/qwen-code/compare/v0.14.5...v0.14.5-nightly.20260419.a623655c8
## 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
## 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
**Full Changelog**: https://github.com/QwenLM/qwen-code/compare/v0.14.5...v0.14.5-nightly.20260419.a623655c8