Skip to content

Release v0.23.1-preview.1

Pre-release
Pre-release

Choose a tag to compare

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

Full Changelog: v0.23.0...v0.23.1-preview.1