What's Changed
- chore(release): v0.17.0 by @qwen-code-ci-bot in #4626
- fix(rewind): false "compressed turn" error when mid-turn messages exist by @doudouOUC in #4580
- fix(core): emit enable_thinking on DashScope when reasoning is disabled by @doudouOUC in #4505
- fix(core): surface Anthropic empty stream provider errors by @DragonnZhang in #4540
- feat(core): add memory pressure monitor by @ZevGit in #4403
- fix(core): guard oversized resumed history sends by @Jerry2003826 in #4531
- fix(cli): stabilize statusline preset ordering by @shenyankm in #4634
- fix(config): load home .env vars before settings ${VAR} resolution (#4466) by @kagura-agent in #4474
- fix(acp): drop discontinued Qwen OAuth method by @he-yufeng in #4639
- fix(core): enforce adjacent tool results by @he-yufeng in #4622
- fix(cli): hide completed sticky todos by @he-yufeng in #4635
- feat(cli): Add settings JSON corrupted warning dialog by @zzhenyao in #4560
- fix(core): harden context error text collection by @he-yufeng in #4632
- fix(core): apply output language to side queries by @he-yufeng in #4636
- fix(cli): persist /memory toggle state across dialog reopen by @LaZzyMan in #4650
- fix(docs): Hide internal docs from docs site by @DragonnZhang in #4357
- fix(core): preserve uid in atomicWriteFile to avoid breaking shared-write files by @doudouOUC in #4431
- Improve hooks matcher display by @qqqys in #4545
- fix(cli): use session channel when closing ACP sessions by @Jerry2003826 in #4522
- fix(core,cli): replace full-history structuredClone with shallow/tail variants to prevent OOM on resume by @yiliang114 in #4644
- feat(cli): add respectUserColors and hideContextIndicator options for statusline by @zzhenyao in #4670
- fix(core): tolerate unsupported Streamable HTTP GET SSE by @Jerry2003826 in #4521
- fix(insight): Harden insight facet normalization and empty qualitative handling by @DragonnZhang in #3557
- feat(cli): notify when background shells finish by @DragonnZhang in #4355
- feat(core): add simplify bundled skill by @pomelo-nwu in #3570
- feat(skills): add agent reproduction workflows by @DragonnZhang in #4118
- feat(cli): virtual viewport for long conversations on ink 7 by @chiga0 in #4146
- feat(cli): background housekeeping for stale file-history dirs by @doudouOUC in #4414
- fix(core): loosen auto-mode classifier timeouts, disable stage-2 thinking by @qqqys in #4680
- fix(core): coerce hostile-provider usage token counts (#4350 part 1) by @DragonnZhang in #4439
- feat(core): inject context env vars (session/agent/prompt ID) into shell subprocesses by @yiliang114 in #4649
- Add AUTO mode denial observability and caps by @qqqys in #4476
- feat(core): auto-dump memory diagnostics to disk on pressure detection by @yiliang114 in #4654
- feat(core): atomic write rollout for credentials, memory, config, JSONL (closes #3681, #4095 Phase 2) by @doudouOUC in #4333
- docs: add /diff command and auto theme detection documentation by @BZ-D in #4699
- feat(cli): Add searchable MiniMax-M3 model setup by @shenyankm in #4668
- feat(core,cli): auto-compact follow-up — /compress instructions, PreCompact hook plumb, plan/subagent attachments by @LaZzyMan in #4688
- fix(cli): honor list extensions flag by @he-yufeng in #4673
- feat(input): move physical cursor to visual cursor for IME input by @zzhenyao in #4652
- feat(core): add post tool batch hooks by @qqqys in #4454
- fix(ui): distinguish auto approval mode indicators by @he-yufeng in #4600
- fix(core): disable undici 300s bodyTimeout for no-proxy Node.js path by @Pepograminger in #4605
- feat(prompt): deduplicate tool guidance between system prompt and tool descriptions by @DennisYu07 in #4569
- chore(deps): update @google/genai from 1.30.0 to 2.6.0 by @InfiniteUselessness in #4485
- feat(cli): add CPU profiling support for Chrome DevTools analysis by @yiliang114 in #4620
- feat(prompt): enhance system prompts with global reasoning discipline and iterative planning by @DennisYu07 in #4436
- refactor(cli): rename "Default" approval mode to "Ask permissions" (#4625) by @LaZzyMan in #4674
- fix(cli): suppress completion menu for history-restored text until edited by @DragonnZhang in #4558
- fix(cli): statusline not re-rendering when switching from preset to command type by @BZ-D in #4706
- fix(cli): avoid exit-time history deep clones by @he-yufeng in #4717
- feat(subagent): add fork subagent feature gate and "Don't peek / Don't race" prompt discipline by @DennisYu07 in #4574
- fix(telemetry): clear span dedup state after chat compression (#3731) by @doudouOUC in #4660
- feat(core):strengthen system prompts for reading code before editing, dedicated tool priority, and step-by-step communication by @DennisYu07 in #4375
- fix(core): remove proactive subagent system-reminder injection by @DennisYu07 in #4587
- fix(cli): fix Space key not working in Arena model selection dialog by @ZijianZhang989 in #4701
- feat(skills): add triage skill for issue/PR gatekeeping by @pomelo-nwu in #4577
- feat(computer-use): use @qwen-code/open-computer-use fork (signed + notarized) by @LaZzyMan in #4726
New Contributors
- @zzhenyao made their first contribution in #4560
- @Pepograminger made their first contribution in #4605
- @InfiniteUselessness made their first contribution in #4485
- @ZijianZhang989 made their first contribution in #4701
Full Changelog: v0.17.0...v0.17.1