What's Changed
- feat(cli): wrap markdown links in OSC 8 so wrapped URLs stay clickable by @BZ-D in #4037
- fix(core): normalize cumulative OpenAI stream deltas to suffixes by @chiga0 in #3896
- fix(cli): auto-restore prompt and preserve queue on cancel by @wenshao in #4023
- docs(auth): add custom API key wizard PRD by @pomelo-nwu in #3583
- feat(cli): support batch deletion of sessions in /delete by @qqqys in #3733
- feat(cli,sdk): qwen serve daemon (Stage 1) by @wenshao in #3889
- fix(core): tag subagent OpenAI JSON logs by @tanzhenxin in #4099
- feat(subagents): use fastModel for Explore subagent by @tanzhenxin in #4086
- fix(dashscope): use URL hostname check instead of regex to avoid ReDoS (CodeQL) by @qqqys in #4112
- fix(core): improve runtime fetch options error handling and documentation by @ZevGit in #3997
- fix(telemetry): address PR #3847 review follow-ups for trace correlation by @doudouOUC in #4058
- feat(perf): progressive MCP availability — MCP no longer blocks first input by @chiga0 in #3994
- fix(search): make empty-query exit synchronous and normalize Windows Backspace by @B-A-M-N in #3981
- chore(release): v0.15.11 by @qwen-code-ci-bot in #4100
- fix(anthropic): allow cache_control on tool_result blocks by @tanzhenxin in #4121
- feat(core): strip inline media before chat compaction summary by @LaZzyMan in #4101
- ci(deps): bump docker/* actions to Node 24 majors (silences GitHub Node 20 deprecation warning) by @chiga0 in #4131
- fix(core): merge IDE context into user prompt by @yiliang114 in #3980
- fix(cli): apply /language output to running session without restart by @chiga0 in #4143
- feat(tools): add generic worktree support — EnterWorktree/ExitWorktree + Agent isolation by @LaZzyMan in #4073
- feat(cli): add ModelScope as a built-in third-party API provider by @Col0ring in #4150
- fix(core): correct context-usage Footer for prompt size and Anthropic caches by @tanzhenxin in #4109
- fix(core): support cross-auth fast side queries by @tanzhenxin in #4117
- test(integration): pin simple-mcp-server to legacy MCP path until #4163 is fixed by @tanzhenxin in #4164
- refactor(serve): 1 daemon = 1 workspace (#3803 §02) by @wenshao in #4113
- fix(vscode): preserve thinking state and recover missing edit snapshots by @DragonnZhang in #4147
- fix(cli): handle MinTTY Ctrl+Backspace as delete-previous-word by @dreamWB in #4059
- refactor(serve): extract createInMemoryChannel helper (#4156 A1) by @doudouOUC in #4160
- fix(cli): preserve debug session across sandbox relaunch by @kkhomej33-netizen in #4060
- feat(core): add image+video support for Qwen3.6-35B-A3B quant variants by @Dinsmoor in #4106
- fix(hooks): inject SessionStart additionalContext into chat context by @DennisYu07 in #4115
- fix(i18n): Correct zh-TW translations to match Traditional Chinese conventions by @MikeWang0316tw in #4129
- feat(hooks): Add TodoCreated and TodoCompleted hooks for todo lifecycle events by @DennisYu07 in #3378
- refactor(cli): revert dynamic slash command LLM translation by @tanzhenxin in #4145
- chore(deps): re-upgrade ink 6 → 7.0.3 (upstream Static remount fix landed) by @chiga0 in #4119
- feat(hooks): add prompt hook type with LLM evaluation support by @DennisYu07 in #3388
New Contributors
- @ZevGit made their first contribution in #3997
- @Col0ring made their first contribution in #4150
- @Dinsmoor made their first contribution in #4106
Full Changelog: v0.15.11...v0.15.12-preview.1