<!-- 使用 release/v0.17.1 分支中 .github/release.yml 的配置生成的发布说明 -->
## 更新内容
* chore(release): 发布 v0.17.0 by @qwen-code-ci-bot in https://github.com/QwenLM/qwen-code/pull/4626
* fix(rewind): 修复存在中途消息时出现的错误“压缩轮次”提示 by @doudouOUC in https://github.com/QwenLM/qwen-code/pull/4580
* fix(core): 当推理功能禁用时,在 DashScope 上触发 enable_thinking by @doudouOUC in https://github.com/QwenLM/qwen-code/pull/4505
* fix(core): 暴露 Anthropic 空流提供程序错误 by @DragonnZhang in https://github.com/QwenLM/qwen-code/pull/4540
* feat(core): 添加内存压力监控 by @ZevGit in https://github.com/QwenLM/qwen-code/pull/4403
* fix(core): 防止发送过大的恢复历史记录 by @Jerry2003826 in https://github.com/QwenLM/qwen-code/pull/4531
* fix(cli): 稳定状态栏预设排序 by @shenyankm in https://github.com/QwenLM/qwen-code/pull/4634
* fix(config): 在解析 settings ${VAR} 前加载 home .env 变量 (#4466) by @kagura-agent in https://github.com/QwenLM/qwen-code/pull/4474
* fix(acp): 移除已弃用的 Qwen OAuth 方法 by @he-yufeng in https://github.com/QwenLM/qwen-code/pull/4639
* fix(core): 强制相邻工具结果 by @he-yufeng in https://github.com/QwenLM/qwen-code/pull/4622
* fix(cli): 隐藏已完成的固定待办事项 by @he-yufeng in https://github.com/QwenLM/qwen-code/pull/4635
* feat(cli): 添加设置 JSON 损坏警告对话框 by @zzhenyao in https://github.com/QwenLM/qwen-code/pull/4560
* fix(core): 增强上下文错误文本收集 by @he-yufeng in https://github.com/QwenLM/qwen-code/pull/4632
* fix(core): 将输出语言应用到侧边查询 by @he-yufeng in https://github.com/QwenLM/qwen-code/pull/4636
* fix(cli): 在对话框重新打开时保持 /memory 切换状态 by @LaZzyMan in https://github.com/QwenLM/qwen-code/pull/4650
* fix(docs): 从文档站点隐藏内部文档 by @DragonnZhang in https://github.com/QwenLM/qwen-code/pull/4357
* fix(core): 在 atomicWriteFile 中保留 uid 以避免破坏共享写入文件 by @doudouOUC in https://github.com/QwenLM/qwen-code/pull/4431
* 改进 hooks 匹配器显示 by @qqqys in https://github.com/QwenLM/qwen-code/pull/4545
* fix(cli): 关闭 ACP 会话时使用会话通道 by @Jerry2003826 in https://github.com/QwenLM/qwen-code/pull/4522
* fix(core,cli): 将 full-history structuredClone 替换为 shallow/tail 变体,以防止恢复时内存溢出 (OOM) by @yiliang114 in https://github.com/QwenLM/qwen-code/pull/4644
* feat(cli): 为状态栏添加 respectUserColors 和 hideContextIndicator 选项 by @zzhenyao in https://github.com/QwenLM/qwen-code/pull/4670
* fix(core): 容忍不支持的 Streamable HTTP GET SSE by @Jerry2003826 in https://github.com/QwenLM/qwen-code/pull/4521
* fix(insight): 增强 insight 维度归一化和空定性处理 by @DragonnZhang in https://github.com/QwenLM/qwen-code/pull/3557
* feat(cli): 后台 shell 完成时通知 by @DragonnZhang in https://github.com/QwenLM/qwen-code/pull/4355
* feat(core): 添加简化的内置技能 by @pomelo-nwu in https://github.com/QwenLM/qwen-code/pull/3570
* feat(skills): 添加智能体复现工作流 by @DragonnZhang in https://github.com/QwenLM/qwen-code/pull/4118
* feat(cli): 在 ink 7 上为长对话提供虚拟视口 by @chiga0 in https://github.com/QwenLM/qwen-code/pull/4146
* feat(cli): 后台清理过期的 file-history 目录 by @doudouOUC in https://github.com/QwenLM/qwen-code/pull/4414
* fix(core): 放宽自动模式分类器超时限制,禁用阶段2推理 by @qqqys in https://github.com/QwenLM/qwen-code/pull/4680
* fix(core): 强制转换 hostile-provider 使用 token 计数 (#4350 part 1) by @DragonnZhang in https://github.com/QwenLM/qwen-code/pull/4439
* feat(core): 将上下文环境变量(session/agent/prompt ID)注入 shell 子进程 by @yiliang114 in https://github.com/QwenLM/qwen-code/pull/4649
* 添加 AUTO 模式拒绝的可观测性与限制 by @qqqys in https://github.com/QwenLM/qwen-code/pull/4476
* feat(core): 在检测到压力时自动将内存诊断信息转储到磁盘 by @yiliang114 in https://github.com/QwenLM/qwen-code/pull/4654
* feat(core): 凭证、内存、配置、JSONL 的原子写入推广(关闭 #3681, #4095 Phase 2) by @doudouOUC in https://github.com/QwenLM/qwen-code/pull/4333
* docs: 添加 /diff 命令和自动主题检测文档 by @BZ-D in https://github.com/QwenLM/qwen-code/pull/4699
* feat(cli): 添加可搜索的 MiniMax-M3 模型设置 by @shenyankm in https://github.com/QwenLM/qwen-code/pull/4668
* feat(core,cli): 自动压缩后续操作 — /compress 指令、PreCompact 钩子连接、plan/subagent 附件 by @LaZzyMan in https://github.com/QwenLM/qwen-code/pull/4688
* fix(cli): 遵循 list extensions 标志 by @he-yufeng in https://github.com/QwenLM/qwen-code/pull/4673
* feat(input): 将物理光标移动到视觉光标以进行 IME 输入 by @zzhenyao in https://github.com/QwenLM/qwen-code/pull/4652
* feat(core): 添加工具后批处理钩子 by @qqqys in https://github.com/QwenLM/qwen-code/pull/4454
* fix(ui): 区分自动批准模式指示器 by @he-yufeng in https://github.com/QwenLM/qwen-code/pull/4600
* fix(core): 为无代理 Node.js 路径禁用 undici 300s bodyTimeout by @Pepograminger in https://github.com/QwenLM/qwen-code/pull/4605
* feat(prompt): 去重系统提示与工具描述之间的工具指导 by @DennisYu07 in https://github.com/QwenLM/qwen-code/pull/4569
* chore(deps): 将 @google/genai 从 1.30.0 更新至 2.6.0 by @InfiniteUselessness in https://github.com/QwenLM/qwen-code/pull/4485
* feat(cli): 为 Chrome DevTools 分析添加 CPU 性能分析支持 by @yiliang114 in https://github.com/QwenLM/qwen-code/pull/4620
* feat(prompt): 通过全局推理纪律和迭代规划增强系统提示 by @DennisYu07 in https://github.com/QwenLM/qwen-code/pull/4436
* refactor(cli): 将“Default”审批模式重命名为“Ask permissions” (#4625) by @LaZzyMan in https://github.com/QwenLM/qwen-code/pull/4674
* fix(cli): 在历史恢复的文本被编辑前,隐藏补全菜单 by @DragonnZhang in https://github.com/QwenLM/qwen-code/pull/4558
* fix(cli): 从预设模式切换到命令模式时状态栏未重新渲染 by @BZ-D in https://github.com/QwenLM/qwen-code/pull/4706
* fix(cli): 避免退出时进行历史记录的深度克隆 by @he-yufeng in https://github.com/QwenLM/qwen-code/pull/4717
* feat(subagent): 添加 fork 子代理功能开关及“Don't peek / Don't race”提示词规范 by @DennisYu07 in https://github.com/QwenLM/qwen-code/pull/4574
* fix(telemetry): 在聊天压缩后清除 span 去重状态 (#3731) by @doudouOUC in https://github.com/QwenLM/qwen-code/pull/4660
* feat(core): 强化编辑前阅读代码的系统提示词、专用工具优先级及逐步沟通机制 by @DennisYu07 in https://github.com/QwenLM/qwen-code/pull/4375
* fix(core): 移除主动注入的子代理系统提醒 by @DennisYu07 in https://github.com/QwenLM/qwen-code/pull/4587
* fix(cli): 修复 Arena 模型选择对话框中空格键无效的问题 by @ZijianZhang989 in https://github.com/QwenLM/qwen-code/pull/4701
* feat(skills): 添加用于 Issue/PR 初审的 triage 技能 by @pomelo-nwu in https://github.com/QwenLM/qwen-code/pull/4577
* feat(computer-use): 使用 @qwen-code/open-computer-use 分支(已签名+公证) by @LaZzyMan in https://github.com/QwenLM/qwen-code/pull/4726
## 新贡献者
* @zzhenyao 在 https://github.com/QwenLM/qwen-code/pull/4560 完成了首次贡献
* @Pepograminger 在 https://github.com/QwenLM/qwen-code/pull/4605 完成了首次贡献
* @InfiniteUselessness 在 https://github.com/QwenLM/qwen-code/pull/4485 完成了首次贡献
* @ZijianZhang989 在 https://github.com/QwenLM/qwen-code/pull/4701 完成了首次贡献
**完整更新日志**: https://github.com/QwenLM/qwen-code/compare/v0.17.0...v0.17.1
<!-- Release notes generated using configuration in .github/release.yml at release/v0.17.1 -->
## What's Changed
* chore(release): v0.17.0 by @qwen-code-ci-bot in https://github.com/QwenLM/qwen-code/pull/4626
* fix(rewind): false "compressed turn" error when mid-turn messages exist by @doudouOUC in https://github.com/QwenLM/qwen-code/pull/4580
* fix(core): emit enable_thinking on DashScope when reasoning is disabled by @doudouOUC in https://github.com/QwenLM/qwen-code/pull/4505
* fix(core): surface Anthropic empty stream provider errors by @DragonnZhang in https://github.com/QwenLM/qwen-code/pull/4540
* feat(core): add memory pressure monitor by @ZevGit in https://github.com/QwenLM/qwen-code/pull/4403
* fix(core): guard oversized resumed history sends by @Jerry2003826 in https://github.com/QwenLM/qwen-code/pull/4531
* fix(cli): stabilize statusline preset ordering by @shenyankm in https://github.com/QwenLM/qwen-code/pull/4634
* fix(config): load home .env vars before settings ${VAR} resolution (#4466) by @kagura-agent in https://github.com/QwenLM/qwen-code/pull/4474
* fix(acp): drop discontinued Qwen OAuth method by @he-yufeng in https://github.com/QwenLM/qwen-code/pull/4639
* fix(core): enforce adjacent tool results by @he-yufeng in https://github.com/QwenLM/qwen-code/pull/4622
* fix(cli): hide completed sticky todos by @he-yufeng in https://github.com/QwenLM/qwen-code/pull/4635
* feat(cli): Add settings JSON corrupted warning dialog by @zzhenyao in https://github.com/QwenLM/qwen-code/pull/4560
* fix(core): harden context error text collection by @he-yufeng in https://github.com/QwenLM/qwen-code/pull/4632
* fix(core): apply output language to side queries by @he-yufeng in https://github.com/QwenLM/qwen-code/pull/4636
* fix(cli): persist /memory toggle state across dialog reopen by @LaZzyMan in https://github.com/QwenLM/qwen-code/pull/4650
* fix(docs): Hide internal docs from docs site by @DragonnZhang in https://github.com/QwenLM/qwen-code/pull/4357
* fix(core): preserve uid in atomicWriteFile to avoid breaking shared-write files by @doudouOUC in https://github.com/QwenLM/qwen-code/pull/4431
* Improve hooks matcher display by @qqqys in https://github.com/QwenLM/qwen-code/pull/4545
* fix(cli): use session channel when closing ACP sessions by @Jerry2003826 in https://github.com/QwenLM/qwen-code/pull/4522
* fix(core,cli): replace full-history structuredClone with shallow/tail variants to prevent OOM on resume by @yiliang114 in https://github.com/QwenLM/qwen-code/pull/4644
* feat(cli): add respectUserColors and hideContextIndicator options for statusline by @zzhenyao in https://github.com/QwenLM/qwen-code/pull/4670
* fix(core): tolerate unsupported Streamable HTTP GET SSE by @Jerry2003826 in https://github.com/QwenLM/qwen-code/pull/4521
* fix(insight): Harden insight facet normalization and empty qualitative handling by @DragonnZhang in https://github.com/QwenLM/qwen-code/pull/3557
* feat(cli): notify when background shells finish by @DragonnZhang in https://github.com/QwenLM/qwen-code/pull/4355
* feat(core): add simplify bundled skill by @pomelo-nwu in https://github.com/QwenLM/qwen-code/pull/3570
* feat(skills): add agent reproduction workflows by @DragonnZhang in https://github.com/QwenLM/qwen-code/pull/4118
* feat(cli): virtual viewport for long conversations on ink 7 by @chiga0 in https://github.com/QwenLM/qwen-code/pull/4146
* feat(cli): background housekeeping for stale file-history dirs by @doudouOUC in https://github.com/QwenLM/qwen-code/pull/4414
* fix(core): loosen auto-mode classifier timeouts, disable stage-2 thinking by @qqqys in https://github.com/QwenLM/qwen-code/pull/4680
* fix(core): coerce hostile-provider usage token counts (#4350 part 1) by @DragonnZhang in https://github.com/QwenLM/qwen-code/pull/4439
* feat(core): inject context env vars (session/agent/prompt ID) into shell subprocesses by @yiliang114 in https://github.com/QwenLM/qwen-code/pull/4649
* Add AUTO mode denial observability and caps by @qqqys in https://github.com/QwenLM/qwen-code/pull/4476
* feat(core): auto-dump memory diagnostics to disk on pressure detection by @yiliang114 in https://github.com/QwenLM/qwen-code/pull/4654
* feat(core): atomic write rollout for credentials, memory, config, JSONL (closes #3681, #4095 Phase 2) by @doudouOUC in https://github.com/QwenLM/qwen-code/pull/4333
* docs: add /diff command and auto theme detection documentation by @BZ-D in https://github.com/QwenLM/qwen-code/pull/4699
* feat(cli): Add searchable MiniMax-M3 model setup by @shenyankm in https://github.com/QwenLM/qwen-code/pull/4668
* feat(core,cli): auto-compact follow-up — /compress instructions, PreCompact hook plumb, plan/subagent attachments by @LaZzyMan in https://github.com/QwenLM/qwen-code/pull/4688
* fix(cli): honor list extensions flag by @he-yufeng in https://github.com/QwenLM/qwen-code/pull/4673
* feat(input): move physical cursor to visual cursor for IME input by @zzhenyao in https://github.com/QwenLM/qwen-code/pull/4652
* feat(core): add post tool batch hooks by @qqqys in https://github.com/QwenLM/qwen-code/pull/4454
* fix(ui): distinguish auto approval mode indicators by @he-yufeng in https://github.com/QwenLM/qwen-code/pull/4600
* fix(core): disable undici 300s bodyTimeout for no-proxy Node.js path by @Pepograminger in https://github.com/QwenLM/qwen-code/pull/4605
* feat(prompt): deduplicate tool guidance between system prompt and tool descriptions by @DennisYu07 in https://github.com/QwenLM/qwen-code/pull/4569
* chore(deps): update @google/genai from 1.30.0 to 2.6.0 by @InfiniteUselessness in https://github.com/QwenLM/qwen-code/pull/4485
* feat(cli): add CPU profiling support for Chrome DevTools analysis by @yiliang114 in https://github.com/QwenLM/qwen-code/pull/4620
* feat(prompt): enhance system prompts with global reasoning discipline and iterative planning by @DennisYu07 in https://github.com/QwenLM/qwen-code/pull/4436
* refactor(cli): rename "Default" approval mode to "Ask permissions" (#4625) by @LaZzyMan in https://github.com/QwenLM/qwen-code/pull/4674
* fix(cli): suppress completion menu for history-restored text until edited by @DragonnZhang in https://github.com/QwenLM/qwen-code/pull/4558
* fix(cli): statusline not re-rendering when switching from preset to command type by @BZ-D in https://github.com/QwenLM/qwen-code/pull/4706
* fix(cli): avoid exit-time history deep clones by @he-yufeng in https://github.com/QwenLM/qwen-code/pull/4717
* feat(subagent): add fork subagent feature gate and "Don't peek / Don't race" prompt discipline by @DennisYu07 in https://github.com/QwenLM/qwen-code/pull/4574
* fix(telemetry): clear span dedup state after chat compression (#3731) by @doudouOUC in https://github.com/QwenLM/qwen-code/pull/4660
* feat(core):strengthen system prompts for reading code before editing, dedicated tool priority, and step-by-step communication by @DennisYu07 in https://github.com/QwenLM/qwen-code/pull/4375
* fix(core): remove proactive subagent system-reminder injection by @DennisYu07 in https://github.com/QwenLM/qwen-code/pull/4587
* fix(cli): fix Space key not working in Arena model selection dialog by @ZijianZhang989 in https://github.com/QwenLM/qwen-code/pull/4701
* feat(skills): add triage skill for issue/PR gatekeeping by @pomelo-nwu in https://github.com/QwenLM/qwen-code/pull/4577
* feat(computer-use): use @qwen-code/open-computer-use fork (signed + notarized) by @LaZzyMan in https://github.com/QwenLM/qwen-code/pull/4726
## New Contributors
* @zzhenyao made their first contribution in https://github.com/QwenLM/qwen-code/pull/4560
* @Pepograminger made their first contribution in https://github.com/QwenLM/qwen-code/pull/4605
* @InfiniteUselessness made their first contribution in https://github.com/QwenLM/qwen-code/pull/4485
* @ZijianZhang989 made their first contribution in https://github.com/QwenLM/qwen-code/pull/4701
**Full Changelog**: https://github.com/QwenLM/qwen-code/compare/v0.17.0...v0.17.1