Highlights
See the complete change list below.
Breaking Changes
No known breaking changes.
Complete Change List
Features
- feat(core): expand Kimi, Qwen and DeepSeek reasoning presets (#11349) by @callmeYe
- feat(sessions): record what kind of session registered, and document the registry and wire contract (#11463) by @qqqys
- feat(web-shell): keep answered questions visible outside processed summaries (#11461) by @ytahdn
- feat(web-shell): improve session overview navigation and details (#11238) by @wenshao
- feat(core): add OpenAI Responses API content generator (#8169) by @netbrah
- feat(providers): show newest discovered models first (#11449) by @qqqys
- feat(web-shell): add unified session sources (#11262) by @callmeYe
- feat: delegate a subagent turn to an external agent over ACP (Claude Code first) (#11003) by @wenshao
- feat(web-shell): make the product name and logo configurable (#11244) by @wenshao
- feat(autofix): run one bounded self-review before an address-review commit (A/B) (#11516) by @wenshao
- feat(acp): register daemon-managed sessions in the session registry and let them send peer messages (#11488) by @qqqys
- feat(web-shell): render URLs in user messages as clickable links (#11464) by @wenshao
- feat(serve): support 256 workspaces by default (#11515) by @doudouOUC
Bug Fixes
- fix(goal): retry a checkpoint that overran the claim budget instead of spending a stall (#11365) by @qqqys
- fix(dws): forward Aone sandbox identifier (#11462) by @qqqys
- fix(cli): quiesce a fire-and-forget serve handler across tests (#11346) (#11362) by @qwen-code-dev-bot
- fix(serve): reconnect evicted SSE clients (#11467) by @yiliang114
- fix(ci): space PR creation from release to avoid secondary rate limit (#11444) by @yiliang114
- fix(cua): preserve degraded UIAccess responses (#11479) by @LaZzyMan
- fix(release): pin Debian 11 repositories to a coherent snapshot (#11487) by @LaZzyMan
- fix(web-shell): hide the sidebar version label at the compact footer breakpoint (#11470) by @yiliang114
- fix(permissions): cite matching deny rule for compound and virtual-op shell denials (#11411) by @yiliang114
- fix(core): reject pre-aborted queued tool requests (#11483) by @lorenzozanee
- fix(web-shell): avoid duplicate cold session restoration (#11413) by @wenshao
- fix(core): preserve every reasoning episode's signature during history consolidation (#8260) by @netbrah
- fix(dws): retry completed response delivery (#11387) by @qqqys
- fix(core): host Windows shell PTYs via bundled ConPTY to stop orphaning conhost.exe (#11497) by @yiliang114
- fix(web-shell): restore standalone header and scroll button styles (#11517) by @ytahdn
- fix(desktop): unblock macOS and Linux desktop packaging (#11518) by @yiliang114
- fix(review): reply carried findings into their thread, resolve fixed ones (#9940) by @wenshao
- fix(desktop): realign the release test with the new signing step (#11522) by @yiliang114
- fix(bridge): keep pending permission/question across refreshed session loads (#11468) by @wenshao
- fix(export): restore document runtime budget headroom (#11372) by @yiliang114
- fix(core): preserve Responses stream error details (#11523) by @tanzhenxin
- fix(core): release node-pty's conout worker after every PTY on Windows (#11313) by @yiliang114
- fix(web-shell): make the workspace provider guard self-diagnosing and reload on root retry (#11421) by @wenshao
- fix(web-shell): move scheduled task row icon into trailing meta slot (#11356) by @qqqys
- fix(vscode): restore pre-cutover conversation history in the panel (#11495) by @yiliang114
- fix(ci): record the qwen-autofix.yml size drift two in-allowance PRs accumulated (#11529) (#11537) by @qwen-code-dev-bot
- fix(web-shell): realign two suites with shipped behavior to unbreak main CI (#11525) (#11530) by @qwen-code-dev-bot
- fix(ci): grant the packaging check the permissions its callee declares (#11532) by @yiliang114
- fix(dev): install hooks during worktree bootstrap (#11496) by @yiliang114
- fix(review): dispatch review agents through parallel workflows (#11524) by @wenshao
- fix(vscode): preserve active file exclusion (#11568) by @yiliang114
- fix(cli): drain notification queue when a turn errors out (#11559) by @yiliang114
- fix(review): keep host-trusted state out of the container's writable surface (#9983) by @wenshao
- fix(acp): pass shell execution config to tool invocations (#11102) by @yiliang114
Performance
- perf(export): split the transcript renderer's embedded CSS into a versioned asset (#11485) by @yiliang114
Documentation
- docs: highlight Qwen Code interfaces in the README (#11491) by @pomelo-nwu
- docs(daemon): add a REST integration entry point, guarded against the route surface (#11477) by @yiliang114
Internal Changes
- refactor(cli): drop the legacy Goal Stop-hook plumbing (#11459) by @qqqys
- refactor(core): stop routing Goal turns through the legacy Stop hook (#11458) by @qqqys
- test(channels): canonicalize restored worktree fixture paths (#11476) by @yiliang114
- ci(desktop): exercise desktop packaging on a schedule (#11519) by @yiliang114
- test(integration): deflake the /compress E2E event budget (#11088) (#11094) by @qwen-code-dev-bot
- test(core): cover bundled ConPTY fallback and terminal replies (#11555) by @yiliang114
New Contributors
- @lorenzozanee made their first contribution in #11483
Full Changelog: v0.23.2...v0.23.3