Release v0.23.1-preview.1
Pre-release
Pre-release
What's Changed
- feat(web-shell): visualize and manage dynamic workflow runs by @qqqys in #10594
- perf(web-shell): derive the session workflow projection once by @yiliang114 in #10871
- test(integration): synchronize mid-turn /quit completion by @qwen-code-dev-bot in #10926
- feat(ipc): tell senders when a message is refused, and expire held ones by @qqqys in #10809
- fix(web-shell): make the 30 s overview-poll e2e deterministic by @yiliang114 in #10934
- feat(serve): add session resource catalog by @w9lsky in #10837
- fix(cli): submit exact slash commands from the live input by @yiliang114 in #10929
- fix(web-shell): disable Push while the branch is behind its upstream by @wenshao in #10754
- fix(cli): resolve session-management settings per request, not from the stale this.settings cache by @tomsen02 in #10095
- fix(ci): name the failing job when a main CI run reports no test result by @qwen-code-dev-bot in #10855
- test(cli): keep the redaction ReDoS guard asserting on the shared pool by @yiliang114 in #10912
- fix(cli): complete the live slash-submit deps and fixture (#10944) by @qwen-code-dev-bot in #10961
- fix(test): end interactive PTY sessions a test never closed by @qwen-code-dev-bot in #10971
- feat(web-shell): give running subagents a live status in the transcript by @wenshao in #10939
- ci(e2e): build once on a hosted runner and unpack it on every leg by @wenshao in #10894
- fix(cli): submit exact OpenTUI slash commands from live input by @yiliang114 in #10987
- fix(cli): resolve the OpenTUI slash submit from the live buffer on Enter by @wenshao in #10986
- docs(web-shell): align follow-up suggestion copy by @Theater-ahyeon in #10851
- fix(channels/dingtalk): keep SDK connect logging from printing clientSecret and stream ticket by @yiliang114 in #10945
- feat(cli): Open OSC 8 links with a plain click in VP mode by @chiga0 in #10979
- feat(channels): Add worktree-isolated named tasks by @doudouOUC in #10643
- feat(serve): add session turn navigation protocol by @doudouOUC in #10751
- fix(cli): OpenTUI transcript visibility for commands, /clear and steers by @chiga0 in #10947
- fix(docs): sync daemon capability count by @yiliang114 in #11012
- feat(web-shell): restore environment panel state by @ytahdn in #10627
- feat(ipc): keep the peer inbox reachable, and say so when it is not by @qqqys in #10800
- feat: chat transcript mr2a html export by @water-in-stone in #10076
- feat(serve): Fence Conversations writers with mandatory session leases by @doudouOUC in #10924
- fix(dws): recognize slash commands after bot mentions by @qqqys in #10930
- feat: load custom output styles from ~/.qwen/output-styles and .qwen/output-styles by @qqqys in #10761
- fix(ci): retry a registry-side npm audit failure instead of reporting it as a CVE by @yiliang114 in #11006
- fix(cli): allow quit before slash commands load by @yiliang114 in #11029
- fix(test): stop measuring model latency on the shared E2E pool by @qwen-code-dev-bot in #11004
- refactor(cli): route every per-request runtime-root pin through runWithPinnedRuntimeBaseDir by @tomsen02 in #10988
- docs(web-shell): add global turn navigation Phase 2 design by @doudouOUC in #11020
- fix(cli): keep input closed until chat initialization completes by @yiliang114 in #11000
- fix: restore ACP-related main CI checks by @yiliang114 in #11033
- refactor(rewind): unify the ACP and TUI user-prompt classifiers by @yiliang114 in #10959
- test(web-shell): render the Session Workflow cockpit in the visuals preview by @yiliang114 in #11014
- fix(web-shell): label usage-limited goal cards correctly by @yu-xin-c in #10553
- feat(ui): add ui.showToolCallArgs to render tool-call arguments inline by @TianYuan1024 in #10565
- fix(test): sync the pinned no-AK integration script list (#11050) by @qwen-code-dev-bot in #11052
- fix(web-shell): scope select-all in the cell value dialog to the value by @LizunovSergey in #10857
- fix(test): raise the ACP initialize budget for inline E2E daemon spawns (#11034) by @qwen-code-dev-bot in #11041
- fix(core): allow manual retry after auto mode blocks by @qqqys in #11025
- feat(ipc): hold peer messages across review classes, let repositories only tighten inbound settings by @qqqys in #11026
- fix(cli): route turn-index reads through runtime-root pin by @yiliang114 in #11036
- feat(skills): add built-in zvec-grep installer by @zhourrr in #10723
- docs(cli): mention Token Plan env setup in the qwen auth removal notice by @now-ing in #10993
- fix(core): coalesce concurrent Config.initialize() calls by @yiliang114 in #11037
- fix(cli): repair the live slash gate fallout on main by @qwen-code-dev-bot in #10940
- feat(core): send session ID to Routify endpoints by @DragonnZhang in #10896
- feat(core): make todo_write opt-in by @DragonnZhang in #10645
- perf(cli): avoid hashing invalid inline image cache hits by @zjunothing in #10626
- fix(core): reject ambiguous send_message destinations by @GCGH159 in #10090
- fix(core): strip reasoning_content from Cerebras requests by @yiliang114 in #11049
- feat(serve): add workspace-scoped Skills runtime by @ytahdn in #10697
- feat(channels): filter messages by configured prefix by @qqqys in #10817
- fix(goal): end daemon turns at verification checkpoints by @qqqys in #11011
- refactor!: retire @qwen-code/webui by @yiliang114 in #9812
- docs: record where a background agent shows up, and who owns it by @yiliang114 in #10951
- chore(ci): remove retired WebUI dependency guard by @yiliang114 in #11095
- docs(core): say why the Todo dependency semantics are not behind the flag by @yiliang114 in #11078
- fix(core): harden Config.initialize() join path by @yiliang114 in #11075
- fix(docs): correct DaemonSessionProvider path in architecture diagram by @yiliang114 in #11099
- fix(cli): wait for the startup chat before an OpenTUI turn sends (#11042) by @qwen-code-dev-bot in #11046
- fix(cli): deliver Agent View queued follow-ups from the provider by @yiliang114 in #10315
- fix(cli): keep the tmux IME composition cell free of a fixed background (#8177) by @now-ing in #10998
- fix(cli): route the transcript turn-index handler through the pin choke point by @wenshao in #11047
- test(e2e): split model latency from the cron fire budget in cron-interactive by @he-yufeng in #11085
- config: make goal readiness methods reject instead of throwing sync by @rootkiller6788 in #10647
- fix(release): let an operator retune the quality lane timeouts (#11104) by @qwen-code-dev-bot in #11110
- fix(release): price the static quality lane from the reserved host by @qwen-code-dev-bot in #11127
- fix(review): keep quoted code from blinding the footer strip by @wenshao in #10458
- fix(web-shell): close the four deferred #9812 review follow-ups by @yiliang114 in #11107
- test(core): pin Config.initialize() join ordering so the await-drop mutant fails by @yiliang114 in #11113
- fix(release): block the transport-timeout pass-through on any exception header by @yiliang114 in #10902
- fix(ci): stop the scripts-suite timeout knob from failing open on an empty value by @yiliang114 in #10910
- test(sdk): pin the skills entry in the transcript compactor keep-set by @yiliang114 in #11079
- fix(test): put the scripts suite's quiet-host budgets on its own knob by @qwen-code-dev-bot in #11106
- test(web-shell): stop the pagination scroll test racing the auto-scroll driver by @yiliang114 in #11105
- fix(ci): salvage superseded review runs and hold the loop's report-time base refresh by @wenshao in #10123
- feat(review): add low-effort recall floor by @yu-xin-c in #9912
- fix(core): normalize tool schemas for grammar-based providers by @yiliang114 in #10080
- fix(core): include full filePath alongside fileName in edit/write-file diff results by @JonathanOrr in #8607
- fix(export): shrink the exported transcript renderer to what a read-only transcript needs by @yiliang114 in #11038
- fix(core): preserve host-confirmed user answers in auto classification by @qqqys in #11084
- feat(workflows): return run handles and persist inline scripts by @qqqys in #11089
- fix(goal): pause the Goal on every user-cancel path, and say why by @qqqys in #10802
- fix(acp): emit standard session title updates by @zjunothing in #8782
- feat(review): add the prose-execution audit and the counter-frame audit by @wenshao in #10221
- fix(ci): record the release.yml size drift two in-allowance PRs accumulated by @wenshao in #11157
- fix(web-shell): keep the auto-sized dialog's gutter on a phone by @yiliang114 in #11077
- docs(arena): clarify unset run limits by @AaronZ345 in #9860
- feat(web-shell): add headless global turn navigation by @doudouOUC in #11054
- feat(web-shell): bridge a browser-granted local directory into a session by @wenshao in #10962
- docs(auth): document Token Plan setup (endpoint, regions, env key, settings.json example) by @now-ing in #10980
- feat(acp): make subagent execution visible via parent tool_call updates by @PratikWayase in #8729
- fix(dws): isolate IM ingestion across conversations by @qqqys in #10952
- fix(core): replay retained shell notifications after transient unbind by @yiliang114 in #11132
- test(ci): make verify-capture fallback assertion rasterization-safe by @qwen-code-dev-bot in #10758
- perf(cli): let tests resolve core modules individually by @yiliang114 in #10917
- fix(test): stop timing tsx startup in the export separator bound by @qwen-code-dev-bot in #11044
- test(integration): make compress E2E deterministic by @yiliang114 in #11175
- fix(web-shell): scope mock sessions by workspace by @AaronZ345 in #10273
- perf(cli): import core modules directly instead of the package root by @yiliang114 in #10957
- fix(export): point documents at a published renderer, drop mermaid by @yiliang114 in #11167
New Contributors
- @w9lsky made their first contribution in #10837
- @Theater-ahyeon made their first contribution in #10851
- @LizunovSergey made their first contribution in #10857
- @zhourrr made their first contribution in #10723
- @now-ing made their first contribution in #10993
- @GCGH159 made their first contribution in #10090
- @rootkiller6788 made their first contribution in #10647
- @JonathanOrr made their first contribution in #8607
Full Changelog: v0.23.0...v0.23.1-preview.1