Releases: QwenLM/qwen-code
Release list
Release v0.22.3-nightly.20260829.e5cb60ad48
What's Changed
- feat(web-shell): show git state hints beside branch picker actions by @wenshao in #10397
- feat(review): emit the Step 3A fan-out as a generated workflow script by @qqqys in #10119
- fix(core): keep the ask_user_question dialog behind allow rules and auto-approval by @qqqys in #10160
- fix(cli): derive bootstrap --help from shared option definitions by @yiliang114 in #8902
Full Changelog: v0.22.3...v0.22.3-nightly.20260829.e5cb60ad48
Release v0.22.3
Highlights
- Added owner-scoped named sessions in Channels to manage up to eight persistent tasks per chat. (#10198)
- Enabled daemon Extension installs to accept absolute local paths while rejecting relative paths and unsupported options. (#10131)
- Updated Web Shell sidebar to display GitHub-style colored state icons for sessions bound to pull requests. (#10258)
- Added an opt-in composer add menu in Web Shell grouping attachments, files, extensions, MCP servers, and skills. (#10379)
- Restored bold text visibility in assistant messages and prevented sidebar session names from being truncated. (#10157)
- Ensured tool summaries are consistently collapsible and separated MCP Apps from other aggregations. (#10231)
Breaking Changes
No known breaking changes.
Complete Change List
Features
- Added a private OpenTelemetry span attribute to report detailed LLM context usage metrics including input categories and remaining capacity. (#10016) by @doudouOUC
- Enabled daemon Extension installs to accept absolute local paths while rejecting relative paths and unsupported options like ref. (#10131) by @callmeYe
- Backfills PR bindings for existing sessions and adds merge-state snapshots to track whether linked pull requests are open, merged, or closed. (#9729) by @wenshao
- Adds an opt-in setting for embedded Web Shell hosts to hide the session source switch, pinning all sidebar catalogs to ordinary task conversations. (#10079) by @dreamWB
- Implements safe projection for reserved [FILE: ...] output markers by redacting malformed or oversized inline markers without uploading files. (#9991) by @qqqys
- Updates Goal prompts to notify the model exactly once when the objective changes, while continuing to assert the current objective on every turn. (#10013) by @qqqys
- Added support for owner-scoped named sessions in Channels, allowing users to manage up to eight persistent named tasks per chat. (#10198) by @doudouOUC
- Updated Web Shell sidebar to display GitHub-style colored state icons for sessions bound to pull requests based on their open, merged, or closed status. (#10258) by @wenshao
- Made deferred review suggestions recoverable by external tooling via a stable invisible marker in the review body artifact. (#9761) by @wenshao
- The /review command now warns when a subsystem's Critical issues repeatedly regrow across rounds by detecting successor chains. (#10010) by @wenshao
- Restored the desktop brand builder skill for the Tauri shell to generate branded packages using brandId and logo inputs. (#10164) by @yiliang114
- Added a standalone daemon session API supporting create, list, resume, archive, and delete operations for top-level sessions. (#10179) by @doudouOUC
- The /review command now remembers the last explicitly used --effort level per project for subsequent runs without arguments. (#9883) by @tlysanhuo
- Long-running review rounds now update their status comment every 10 minutes with elapsed time and last agent activity to distinguish active work from stalled processes. (#9771) by @wenshao
- Local review-fix loops now anchor incremental rounds to working tree content changes instead of commits, reducing token usage by avoiding full tree re-reviews. (#9659) by @wenshao
- Review findings now support an optional fixConstraint field to specify existing facts or limits that suggested fixes must not violate during the repair process. (#10168) by @wenshao
- feat(sdk): Add standalone session APIs (#10294) by @doudouOUC
- feat(cli): OpenTUI migration infra batch — locked deps, dependency-direction arch check, framework-neutral streaming model (#10134) by @chiga0
- Added a configurable Mem0 extension skeleton providing a retrieval-only external-context-mem0 stdio Extension with bounded HTTP request support. (#10149) by @doudouOUC
- Added a new triage gate that automatically identifies and closes duplicate PRs when their changes are already fully resolved by merged fixes. (#10292) by @yiliang114
- Added an opt-in composer add menu to Web Shell that groups attachments, files, extensions, MCP servers, and skills for easier pointer-oriented selection. (#10379) by @ytahdn
- Added an opt-in interactive browser terminal to Web Shell that manages independent PTY sessions per tab with persistent scrollback and state handling. (#9984) by @ytahdn
- Adds the qwen review ab-drive subcommand to run execution-grade verification scripts against PR and base trees with shared or fresh instances. (#9740) by @wenshao
- Confirmed Critical issues now include direction and baseline axes to distinguish between false certifications, failures, regressions, and new surfaces. (#10301) by @wenshao
- Makes Aone a first-class platform for session PR bindings, enabling automatic branch-to-MR mapping and state refresh via the a1 CLI. (#10287) by @wenshao
Bug Fixes
- Fixed Web Shell to correctly restore saved session diffs with accurate line counts even when file bodies were previously truncated. (#10093) by @ytahdn
- Ensured DingTalk rich-text messages preserve all images as ordered attachments across sessions and handle upload failures gracefully. (#9922) by @BenGuanRan
- fix: repair the Windows test lane's standing failures (#10064) by @wenshao
- fix(core): report broadcast delivery failures in send_message (#10081) by @yiliang114
- Moved the autofix scan lane to the persistent self-hosted runner pool to prevent GitHub-hosted runner backlogs from blocking routing. (#10055) by @wenshao
- Restores bold text visibility in assistant messages and prevents session names in the sidebar from being truncated by attention pills. (#10157) by @wenshao
- Prevents large transcript turns from collapsing automatically after pagination completes, ensuring content remains visible until manually closed. (#10086) by @ytahdn
- Makes the delta-resume reconnect test deterministic by waiting for the resumed chunk instead of using a fixed time delay. (#10203) by @qwen-code-dev-bot
- Verifies the previous release tag exists in git before anchoring release notes, falling back to the latest stable tag if missing. (#10167) by @yiliang114
- Exempts off-Linux E2E shards from fatal unhandled vitest RPC-timeout errors while maintaining strict error handling on Linux. (#10112) by @qwen-code-dev-bot
- Ensures tool summaries are consistently collapsible, prevents child tools from opening automatically, and separates MCP Apps from other aggregations. (#10231) by @ytahdn
- Ensures tool results in headless and ACP hosts are stamped with Goal turn permits so they can serve as citable evidence for Goal reasoning. (#10175) by @qqqys
- Removes a duplicate getToolRegistry mock property in telemetry-swap tests to fix TypeScript build errors caused by duplicate object keys. (#10252) by @wenshao
- Fixes TypeScript build failure by removing a duplicate getToolRegistry property from the telemetry swap test configuration mock. (#10243) by @AaronZ345
- Adds qwen3.8-flash and qwen3.8-plus to modality patterns to enable native image and video handling instead of routing through the vision bridge. (#10195) by @yiliang114
- Bounds the goal-runtime startup wait to 5 seconds to prevent hanging and skips unnecessary memory relaunch steps when running under Bun. (#10128) by @chiga0
- Implemented robust process tree reaping for ACP child processes on POSIX and Windows to prevent orphaned processes during shutdown or errors. (#10142) by @doudouOUC
- Ensured model-specific reasoning controls remain available and correctly synchronized for qwen3.8-max before, during, and after session execution. ([#10244](...
Release v0.22.2-nightly.20260828.7357136dd1
What's Changed
- fix(web-shell): restore saved session diffs by @ytahdn in #10093
- fix(channels): preserve DingTalk rich-text multi-image messages by @BenGuanRan in #9922
- feat(telemetry): Emit context usage span attribute by @doudouOUC in #10016
- fix: repair the Windows test lane's standing failures by @wenshao in #10064
- fix(core): report broadcast delivery failures in send_message by @yiliang114 in #10081
- feat(daemon): support local path extension installs by @callmeYe in #10131
- fix(ci): run the autofix scan lane on the persistent pool by @wenshao in #10055
- test(core): give the telemetry-swap client mock a getToolRegistry by @wenshao in #10220
- fix(web-shell): Polish transcript, sidebar, and manager page visuals by @wenshao in #10157
- fix(web-shell): keep pagination-completed turns expanded by @ytahdn in #10086
- fix(webui): make the delta-resume reconnect test deterministic (#10200) by @qwen-code-dev-bot in #10203
- fix(ci): verify previous release tag exists in git before anchoring release notes by @yiliang114 in #10167
- fix(ci): exempt off-Linux E2E shards from vitest RPC-timeout unhandled errors (#10097) by @qwen-code-dev-bot in #10112
- docs(agents): trim redundant context by @DragonnZhang in #10137
- feat(serve): backfill session PR bindings and refresh their merge state by @wenshao in #9729
- fix(web-shell): make tool summaries consistently collapsible by @ytahdn in #10231
- feat(web-shell): allow hiding the session source switch by @dreamWB in #10079
- fix(goal): stamp tool results in every host, so Goals can prove anything by @qqqys in #10175
- feat(dingtalk): project reserved file output safely by @qqqys in #9991
- fix(core): remove duplicate getToolRegistry in telemetry-swap test mock by @wenshao in #10252
- fix(core): remove duplicate telemetry test registry stub by @AaronZ345 in #10243
- feat(goal): tell the model the objective changed, once, when it changed by @qqqys in #10013
- fix(core): add modality metadata for qwen3.8-flash and qwen3.8-plus by @yiliang114 in #10195
- fix(cli): bound the goal-runtime startup wait and skip the no-op Bun memory relaunch by @chiga0 in #10128
- chore(desktop): drop stale packages/desktop references after Electron removal by @yiliang114 in #10021
- fix(acp-bridge): Reap ACP child process trees by @doudouOUC in #10142
- fix(web-shell): keep reasoning effort controls available by @callmeYe in #10244
- fix(core): Reclaim command hook process trees by @doudouOUC in #10100
- feat(channels): Add owner-scoped named sessions by @doudouOUC in #10198
- feat(web-shell): show GitHub-style state icons for session PR bindings by @wenshao in #10258
- feat(review): keep deferred suggestions recoverable off the PR page by @wenshao in #9761
- refactor(core,cli): rename Gemini residue in memory/spinner/leaf ids by @yiliang114 in #9900
- fix(core): recognize new DeepSeek/GLM vision models in modality auto-detection by @yiliang114 in #10278
- fix(autofix): raise the repair and develop-issue agent budgets by @wenshao in #10217
- feat(review): warn when a subsystem's Criticals keep regrowing across rounds by @wenshao in #10010
- refactor(core): centralize worktree config derivation by @yiliang114 in #9915
- fix(core): clarify stream idle timeout guidance by @yu-xin-c in #9896
- feat(desktop-shell): restore the brand builder skill for the Tauri shell by @yiliang114 in #10164
- feat(cli): Add standalone daemon session API by @doudouOUC in #10179
- feat(review): remember explicit effort per project by @tlysanhuo in #9883
- feat(autofix): keep the round status comment live during long rounds by @wenshao in #9771
- fix(web-shell): Polish new-session welcome header visuals by @wenshao in #10230
- fix(artifacts): refresh updatedAt when artifact content changes by @zjgzx1988 in #9929
- fix(skills): separate extension identity from display name by @callmeYe in #10296
- feat(review): content-anchored incremental rounds for the local review-fix loop by @wenshao in #9659
- feat(review): carry the fix's premises beside its claim — add fixConstraint by @wenshao in #10168
- fix(cli): keep Agent View queued messages across teammate tab switches by @yiliang114 in #10102
- fix(core): make stale team reclaim generation-safe by @yiliang114 in #10236
- fix(core): report teammate result settled before event bridge attach by @yiliang114 in #10245
- docs(external-context): Design a configurable Mem0 provider extension by @doudouOUC in #10113
- fix(cli): restore goal-less startup broken by the goal-runtime wait refactor by @yiliang114 in #10290
- fix(test): mount channel plugin fixture in Docker by @yiliang114 in #10318
- fix(ci): stop shared-pool hosts exiting all-green E2E runs red (#10325) by @qwen-code-dev-bot in #10329
- feat(sdk): Add standalone session APIs by @doudouOUC in #10294
Full Changelog: v0.22.2...v0.22.2-nightly.20260828.7357136dd1
cua-driver-rs v0.20.2
Qwen CUA Driver prebuilt binaries
(vendored under packages/cua-driver).
- macOS: codesigned + notarized universal binary +
QwenCuaDriver.app - Linux: unsigned (x86_64 + arm64, glibc 2.31 floor)
- Windows: unsigned (x86_64 + arm64)
- Node.js: the same workflow publishes
@qwen-code/cua-sdk
after a clean install against these release assets and publishes
the independently versioned@qwen-code/node-repl-mcppackage
after its MCP protocol smoke tests
Enable relative coordinates: CUA_DRIVER_RS_COORDINATE_SPACE=1
(default 0 = off; optional CUA_DRIVER_RS_COORDINATE_SCALE=1000).
Enable textual MCP payload filtering for affected model API routes:
MCP_MODEL_PAYLOAD_FILTER=1 (default off).
What's Changed
- feat(web-shell): add session token usage panel by @ytahdn in #9988
- feat(core): accept cross-session messages behind an inbound gate by @qqqys in #9576
- fix(core): keep allowlist-uncovered tools registered as deferred instead of removing them (#10075) by @yiliang114 in #10082
- feat(goal): let a Goal stop early when its objective is infeasible by @qqqys in #10125
- feat(goal): grant one hand-off turn before a spent budget stops the Goal by @qqqys in #10132
- feat(core): add a bundled goal-draft skill that writes verifier-judgeable Goals by @qqqys in #10002
- fix(daemon): Persist empty sessions before scheduled-task binding by @doudouOUC in #10144
- fix(channels): Make same-chat delivery session-aware by @doudouOUC in #10145
- fix(web-shell): restore saved session diffs by @ytahdn in #10093
- fix(channels): preserve DingTalk rich-text multi-image messages by @BenGuanRan in #9922
- feat(telemetry): Emit context usage span attribute by @doudouOUC in #10016
- fix: repair the Windows test lane's standing failures by @wenshao in #10064
- fix(core): report broadcast delivery failures in send_message by @yiliang114 in #10081
- feat(daemon): support local path extension installs by @callmeYe in #10131
- fix(ci): run the autofix scan lane on the persistent pool by @wenshao in #10055
- test(core): give the telemetry-swap client mock a getToolRegistry by @wenshao in #10220
- fix(web-shell): Polish transcript, sidebar, and manager page visuals by @wenshao in #10157
- fix(web-shell): keep pagination-completed turns expanded by @ytahdn in #10086
- fix(webui): make the delta-resume reconnect test deterministic (#10200) by @qwen-code-dev-bot in #10203
- fix(ci): verify previous release tag exists in git before anchoring release notes by @yiliang114 in #10167
- fix(ci): exempt off-Linux E2E shards from vitest RPC-timeout unhandled errors (#10097) by @qwen-code-dev-bot in #10112
- docs(agents): trim redundant context by @DragonnZhang in #10137
- feat(serve): backfill session PR bindings and refresh their merge state by @wenshao in #9729
- fix(web-shell): make tool summaries consistently collapsible by @ytahdn in #10231
- feat(web-shell): allow hiding the session source switch by @dreamWB in #10079
- fix(goal): stamp tool results in every host, so Goals can prove anything by @qqqys in #10175
- feat(dingtalk): project reserved file output safely by @qqqys in #9991
- fix(core): remove duplicate getToolRegistry in telemetry-swap test mock by @wenshao in #10252
- fix(core): remove duplicate telemetry test registry stub by @AaronZ345 in #10243
- feat(goal): tell the model the objective changed, once, when it changed by @qqqys in #10013
- fix(core): add modality metadata for qwen3.8-flash and qwen3.8-plus by @yiliang114 in #10195
- fix(cli): bound the goal-runtime startup wait and skip the no-op Bun memory relaunch by @chiga0 in #10128
- chore(desktop): drop stale packages/desktop references after Electron removal by @yiliang114 in #10021
- fix(acp-bridge): Reap ACP child process trees by @doudouOUC in #10142
- fix(web-shell): keep reasoning effort controls available by @callmeYe in #10244
- fix(core): Reclaim command hook process trees by @doudouOUC in #10100
- feat(channels): Add owner-scoped named sessions by @doudouOUC in #10198
- feat(web-shell): show GitHub-style state icons for session PR bindings by @wenshao in #10258
- feat(review): keep deferred suggestions recoverable off the PR page by @wenshao in #9761
- refactor(core,cli): rename Gemini residue in memory/spinner/leaf ids by @yiliang114 in #9900
- fix(core): recognize new DeepSeek/GLM vision models in modality auto-detection by @yiliang114 in #10278
- fix(autofix): raise the repair and develop-issue agent budgets by @wenshao in #10217
- feat(review): warn when a subsystem's Criticals keep regrowing across rounds by @wenshao in #10010
- refactor(core): centralize worktree config derivation by @yiliang114 in #9915
- fix(core): clarify stream idle timeout guidance by @yu-xin-c in #9896
- feat(desktop-shell): restore the brand builder skill for the Tauri shell by @yiliang114 in #10164
- feat(cli): Add standalone daemon session API by @doudouOUC in #10179
- feat(review): remember explicit effort per project by @tlysanhuo in #9883
- feat(autofix): keep the round status comment live during long rounds by @wenshao in #9771
- fix(web-shell): Polish new-session welcome header visuals by @wenshao in #10230
- fix(artifacts): refresh updatedAt when artifact content changes by @zjgzx1988 in #9929
- fix(skills): separate extension identity from display name by @callmeYe in #10296
- feat(review): content-anchored incremental rounds for the local review-fix loop by @wenshao in #9659
- feat(review): carry the fix's premises beside its claim — add fixConstraint by @wenshao in #10168
- fix(cli): keep Agent View queued messages across teammate tab switches by @yiliang114 in #10102
- fix(core): make stale team reclaim generation-safe by @yiliang114 in #10236
- fix(core): report teammate result settled before event bridge attach by @yiliang114 in #10245
- docs(external-context): Design a configurable Mem0 provider extension by @doudouOUC in #10113
- fix(cli): restore goal-less startup broken by the goal-runtime wait refactor by @yiliang114 in #10290
- fix(test): mount channel plugin fixture in Docker by @yiliang114 in #10318
- fix(ci): stop shared-pool hosts exiting all-green E2E runs red (#10325) by @qwen-code-dev-bot in #10329
- feat(sdk): Add standalone session APIs by @doudouOUC in #10294
- feat(cli): OpenTUI migration infra batch — locked deps, dependency-direction arch check, framework-neutral streaming model by @chiga0 in #10134
- refactor(core,cli): rename generic Gemini identifiers to Llm by @yiliang114 in #10124
- fix(test): isolate integration tests from the host global qwen dir by @wenshao in #10337
- feat(external-context): Add configurable Mem0 extension skeleton by @doudouOUC in #10149
- fix(ci): retry transient sandbox image build failures in E2E (#10355) by @qwen-code-dev-bot in #10359
- fix(web-shell): keep archive out of the sidebar hover slot and block it on running sessions by @wenshao in #10302
- fix(serve): treat Skill toggles as settings writes by @callmeYe in #10077
- fix(test): isolate tool-control E2E from shared state by @yiliang114 in #10340
- fix(goal): stamp t...
Release v0.22.2
Highlights
See the complete change list below.
Breaking Changes
- refactor(node-repl)!: deliver the persistent Node REPL as a standalone MCP server (#9499) by @LaZzyMan
Complete Change List
Features
- Added temporal-reachability and incident-replay lenses to review briefs to analyze whether values exist at the correct moments to steer decisions. (#9708) by @wenshao
- Review findings now include specific test acceptance criteria for their fixes and explicitly rule on non-convergence to reduce review-fix loops. (#9596) by @wenshao
- Daemon sessions now restore to their last selected model across restarts and detaches, while new sessions continue to use the current settings default. (#9687) by @doudouOUC
- Validates inline anchors for /review --comment on Aone targets before posting, relocating Critical findings to the summary body and discarding Suggestions if anchors are invalid. (#9634) by @wenshao
- Adds a tokensUsed field to GoalRecord to report the total tokens consumed by a Goal alongside its turn count in the lastGoal summary. (#9583) by @qqqys
- Enables dynamic workflows via the tools.workflowsEnabled user setting, replacing the previous undocumented environment variable method. (#9098) by @qqqys
- Enables PR context fetching for Aone Code targets in the /review command, restoring full review capabilities including native approval and issue fidelity. (#9621) by @wenshao
- Web Shell now correctly refreshes composer skills after toggles, preventing disabled skills from reappearing and surfacing failed refreshes instead of stale suggestions. (#9131) by @samuelhsin
- The review skill now supports comment-status and presubmit flows for Aone Code targets, generating the same JSON report schema as GitHub for merge-gate and CI state checks. (#9627) by @wenshao
- feat(models): support dual-role image generation models (#9650) by @callmeYe
- Review compose now surfaces a land-with-residual-risk advisory when critical findings persist across rounds, signaling that manual risk acceptance is required to exit the loop. (#9526) by @wenshao
- The Computer Use SDK for Node.js is now updated to v0.20.0, providing versioned accessibility observations and stable element tokens across macOS, Windows, and Linux platforms. (#9587) by @LaZzyMan
- Added support for MCP 2026 core protocol and introduced an MCP Apps host for rendering inline applications in daemon-backed WebShell sessions. (#8992) by @samuelhsin
- Adds a do-not-refute list and constructible rejection bar to the /review skill verifier to prevent invalid rejections of speculative findings. (#9799) by @wenshao
- feat(core): declare create_sub_session only under qwen serve (#9425) by @DragonnZhang
- Added support for creating scheduled tasks that reuse an existing live session by providing an optional sessionId. (#9361) by @yiliang114
- Compact mode now folds adjacent thinking, tool activity, and parallel agents into a single expandable summary row in the web shell. (#9657) by @ytahdn
- Kimi (Moonshot AI) is added as a built-in third-party provider with support for international and China endpoints and editable model catalogs. (#9814) by @TianYuan1024
- The Workflow tool now displays a detailed approval dialog showing the script's name, phases, and arguments before execution. (#9837) by @qqqys
- WebShell now exposes an optional callback to report the active session's complete subagent task snapshot for embedding hosts. (#9637) by @callmeYe
- Added an optional async prepareSubmit callback for Web Shell hosts to resolve context dynamically before submission. (#9802) by @dreamWB
- Adds four built-in output styles (Concise, Proactive, Explanatory, Learning) to control how the agent reports work throughout a session. (#9565) by @qqqys
- Introduces qwen serve --open-with-auth to open a loopback Web Shell with bearer authentication using a provided or auto-generated token. (#9738) by @doudouOUC
- Adopts the shared WebShell transcript renderer as the default and only conversation timeline in the VS Code companion, replacing the legacy renderer. (#9719) by @yiliang114
- Replaced built-in Computer Use tools with a bundled skill that automatically configures the external Node REPL MCP server and CUA SDK on first use. (#9856) by @LaZzyMan
- Promoted language-pitfall and wrapper/proxy checks from Agent 1a to dedicated high-effort Step 3A roles for more thorough code review. (#9805) by @wenshao
- The /review command now adds an advisory note when the overall approach, rather than the current patch, is identified as the primary open question. (#9340) by @qqqys
- Added a new find-simplifications sweep skill that identifies dead code and orphaned resources, generating evidence-backed proposals for maintainer review. (#9384) by @qqqys
- Required explicit user opt-in before launching workflows by defining five specific triggers to prevent unintended multi-agent orchestration. (#9806) by @qqqys
- Review executions now run the repository's own commands inside a container boundary defined by operator policy instead of relying on local installation. (#9723) by @wenshao
- feat(core): add a per-project outside-repo artifact landing (#9776) by @wenshao
- feat(review): report findings to clients as a typed contract (#9794) by @wenshao
- Engages the critical severity floor immediately after two consecutive rounds of sustained finding rates instead of waiting for the fixed round-6 schedule. (#9938) by @wenshao
- Removed the Electron desktop package and related sync scripts since the code has been forked to the OpenWork repository. (#9085) by @yiliang114
- Adds an opt-in liveness check for daemon child processes using ACP channels, with retries and timeouts to detect failures without false positives from host suspension. (#9976) by @doudouOUC
- Introduces a built-in DingTalk Workspace channel supporting direct messages, mentions, document notifications, and todo tracking using authenticated DWS CLI profiles. (#9394) by @qqqys
- feat(review): add a --topology minimal single-pass A/B arm (#9919) by @wenshao
- feat(cli): Manage agent view session lifecycle (#9986) by @ZijianZhang989
- feat(goal): make get_goal's default view a summary instead of the whole catalog (#9973) by @qqqys
- feat(goal): stop a Goal whose checkpoints stall three times in a row (#9975) by @qqqys
- feat(web-shell): make compact view the only mode (#9993) by @ytahdn
- feat(daemon): Support current-session scheduled tasks (#9838) by @doudouOUC
- feat(core): trust a generated-scripts root for workflow scriptPath loads (#9987) by @qqqys
- feat(providers): load model recommendations before editing (#9980) by @qqqys
- feat(goal): stop autonomous continuation at a token budget the user re-arms (#9891) by @qqqys
- feat(acp): enable managed auto-memory lifecycle (#9992) by @zgxkbtl
- feat(cli): Add standalone sessions for projectless tasks (#9978) by @doudouOUC
- feat(web-shell): add session token usage panel (#9988) by @ytahdn
- feat(core): accept cross-session messages behind an inbound gate (#9576) by @qqqys
- feat(goal): let a Goal stop early when its objective is infeasible (#10125) by @qqqys
- feat(goal): grant one hand-off turn before a spent budget stops the Goal (#10132) by @qqqys
- feat(core): add a bundled goal-draft skill that writes verifier-judgeable Goals (#10002) by @qqqys
Bug Fixes
- Clicking a session in the ...
Release v0.22.2-preview.1
What's Changed
- fix(goal): converge the three continuation prompts on one guarded contract by @qqqys in #9834
- feat(core): require an explicit user opt-in before the model launches a workflow by @qqqys in #9806
- fix(review): ban unexecuted mutation claims in coverage briefs by @wenshao in #9923
- fix(ci): scope workflow-size ratchet to the PR that grew the file by @wenshao in #9931
- feat(review): run the reviewed repository's own commands behind a container (#9556) by @wenshao in #9723
- feat(core): add a per-project outside-repo artifact landing by @wenshao in #9776
- fix(web-shell): reduce streaming thought render jank by @ytahdn in #9914
- feat(review): report findings to clients as a typed contract by @wenshao in #9794
- fix(ci): neutralize legacy ##[ commands in autofix stdout echoes by @wenshao in https://github.com//pull/9871
- fix(core): refuse a workflow script before it can spend anything by @qqqys in #9873
- feat(review): engage the severity floor early on a sustained convergence signal (#9903) by @wenshao in #9938
- fix(serve): Repair persisted session lifecycle by @doudouOUC in #9626
- fix(cli): degrade gracefully when messageRewrite.promptFile cannot be read by @yiliang114 in #9753
- fix(webui): hydrate Goal independently of session metadata by @ytahdn in #9977
- test(core): pin transport retry diagnostics and correct the replay-safety comment by @ComplexSimply in #8861
- refactor(core): break config client runtime cycle by @DragonnZhang in #9959
- refactor(cli): reuse trusted workspace runtime resolver by @DragonnZhang in #9958
- feat(desktop): remove the Electron package after OpenWork fork; keep the Tauri upgrade bridge by @yiliang114 in #9085
- fix(goal): resume an evidence-limited Goal from a fresh window by @qqqys in #9840
- chore(github): add @qqqys as core package codeowner by @yiliang114 in #9982
- feat(daemon): Add ACP channel transport liveness by @doudouOUC in #9976
- fix(core): allow scoped Git credential config by @callmeYe in #9870
- feat(channels): add DingTalk Workspace channel by @qqqys in #9394
- fix(session): preserve source titles when branching by @water-in-stone in #9764
- fix(telemetry): restore usage aggregate when a session swap fails by @yiliang114 in #9844
- fix(channels/qqbot): key the cron textChunk guard on active prompts, not streamState by @yiliang114 in #9971
- fix(cli): mark estimated compression token counts in banners by @yiliang114 in #9568
- fix(core): emit OpenRouter's reasoning disable when thinking is off by @yiliang114 in #9758
- fix(core): validate skill commands against the live provider to survive late attach by @yiliang114 in #9824
- fix(cli): keep in-flight tool calls pending during live session replay by @yiliang114 in #9705
- test(cli): teach session-swap telemetry fakes the /branch title prerequisites by @yiliang114 in #9998
- fix(core): reject unverifiable validated read inodes by @AaronZ345 in #9857
- feat(review): add a --topology minimal single-pass A/B arm by @wenshao in #9919
- feat(cli): Manage agent view session lifecycle by @ZijianZhang989 in #9986
- fix(review): the sandbox default named an image that does not exist by @wenshao in #9972
- fix(web-shell): localize vision bridge notices by @ytahdn in #10003
- fix(web-shell): allow reasoning selection before session creation by @callmeYe in #10008
- refactor(acp-bridge): narrow workspace event capabilities by @DragonnZhang in #9957
- refactor(web-shell): extract shared contexts by @DragonnZhang in #9954
- fix(core): subordinate the coordinate skill's teammate count to the configured cap by @yiliang114 in #9403
- fix: repair the Windows and macOS test lane failures by @wenshao in #9728
- fix(ci): give the macOS and Windows lanes a trigger again by @wenshao in #9370
- fix(core): make permissions.allow restrict the tool schemas sent to the model by @yiliang114 in #9829
- fix(webui): preserve hydrated Goal state during event startup by @ytahdn in #10012
- refactor(web-shell): reuse canonical todo parser by @DragonnZhang in #9956
- fix(cli): graft the review anchor forward across fail-closed rounds by @wenshao in #9932
- feat(goal): make get_goal's default view a summary instead of the whole catalog by @qqqys in #9973
- refactor(cli): remove unused EnumSelector component by @qqqys in #9997
- fix(live): restore Live Host after desktop removal by @yiliang114 in #9994
- fix(goal): cite this turn's delivered output instead of refusing over it by @qqqys in #9880
- fix(serve): let channel workers reach TLS-enabled daemons by @qqqys in #9392
- feat(goal): stop a Goal whose checkpoints stall three times in a row by @qqqys in #9975
- fix(cli): drop duplicate fake properties breaking the main build by @yiliang114 in #10022
- fix(core): register report_findings in the permission alias table by @yiliang114 in #10033
- feat(web-shell): make compact view the only mode by @ytahdn in #9993
- fix(cli): preserve bridge timeouts for mid-turn media by @ytahdn in #9995
- ci: take the macOS and Windows lanes off pull requests by @wenshao in #10059
- fix(mcp): recover restarted HTTP MCP servers in-session and in CLI by @yiliang114 in #9962
- fix(core): sync loaded-skill state with history eviction by @ZijianZhang989 in #9500
Full Changelog: pr-9806-verification-assets...v0.22.2-preview.1
Qwen Code Desktop v0.2.2
What's Changed
- fix(goal): converge the three continuation prompts on one guarded contract by @qqqys in #9834
- feat(core): require an explicit user opt-in before the model launches a workflow by @qqqys in #9806
- fix(review): ban unexecuted mutation claims in coverage briefs by @wenshao in #9923
- fix(ci): scope workflow-size ratchet to the PR that grew the file by @wenshao in #9931
- feat(review): run the reviewed repository's own commands behind a container (#9556) by @wenshao in #9723
- feat(core): add a per-project outside-repo artifact landing by @wenshao in #9776
- fix(web-shell): reduce streaming thought render jank by @ytahdn in #9914
- feat(review): report findings to clients as a typed contract by @wenshao in #9794
- fix(ci): neutralize legacy ##[ commands in autofix stdout echoes by @wenshao in https://github.com//pull/9871
- fix(core): refuse a workflow script before it can spend anything by @qqqys in #9873
- feat(review): engage the severity floor early on a sustained convergence signal (#9903) by @wenshao in #9938
- fix(serve): Repair persisted session lifecycle by @doudouOUC in #9626
- fix(cli): degrade gracefully when messageRewrite.promptFile cannot be read by @yiliang114 in #9753
- fix(webui): hydrate Goal independently of session metadata by @ytahdn in #9977
- test(core): pin transport retry diagnostics and correct the replay-safety comment by @ComplexSimply in #8861
- refactor(core): break config client runtime cycle by @DragonnZhang in #9959
- refactor(cli): reuse trusted workspace runtime resolver by @DragonnZhang in #9958
- feat(desktop): remove the Electron package after OpenWork fork; keep the Tauri upgrade bridge by @yiliang114 in #9085
- fix(goal): resume an evidence-limited Goal from a fresh window by @qqqys in #9840
- chore(github): add @qqqys as core package codeowner by @yiliang114 in #9982
- feat(daemon): Add ACP channel transport liveness by @doudouOUC in #9976
- fix(core): allow scoped Git credential config by @callmeYe in #9870
- feat(channels): add DingTalk Workspace channel by @qqqys in #9394
- fix(session): preserve source titles when branching by @water-in-stone in #9764
- fix(telemetry): restore usage aggregate when a session swap fails by @yiliang114 in #9844
- fix(channels/qqbot): key the cron textChunk guard on active prompts, not streamState by @yiliang114 in #9971
- fix(cli): mark estimated compression token counts in banners by @yiliang114 in #9568
- fix(core): emit OpenRouter's reasoning disable when thinking is off by @yiliang114 in #9758
- fix(core): validate skill commands against the live provider to survive late attach by @yiliang114 in #9824
- fix(cli): keep in-flight tool calls pending during live session replay by @yiliang114 in #9705
- test(cli): teach session-swap telemetry fakes the /branch title prerequisites by @yiliang114 in #9998
- fix(core): reject unverifiable validated read inodes by @AaronZ345 in #9857
- feat(review): add a --topology minimal single-pass A/B arm by @wenshao in #9919
- feat(cli): Manage agent view session lifecycle by @ZijianZhang989 in #9986
- fix(review): the sandbox default named an image that does not exist by @wenshao in #9972
- fix(web-shell): localize vision bridge notices by @ytahdn in #10003
- fix(web-shell): allow reasoning selection before session creation by @callmeYe in #10008
- refactor(acp-bridge): narrow workspace event capabilities by @DragonnZhang in #9957
- refactor(web-shell): extract shared contexts by @DragonnZhang in #9954
- fix(core): subordinate the coordinate skill's teammate count to the configured cap by @yiliang114 in #9403
- fix: repair the Windows and macOS test lane failures by @wenshao in #9728
- fix(ci): give the macOS and Windows lanes a trigger again by @wenshao in #9370
- fix(core): make permissions.allow restrict the tool schemas sent to the model by @yiliang114 in #9829
- fix(webui): preserve hydrated Goal state during event startup by @ytahdn in #10012
- refactor(web-shell): reuse canonical todo parser by @DragonnZhang in #9956
- fix(cli): graft the review anchor forward across fail-closed rounds by @wenshao in #9932
- feat(goal): make get_goal's default view a summary instead of the whole catalog by @qqqys in #9973
- refactor(cli): remove unused EnumSelector component by @qqqys in #9997
- fix(live): restore Live Host after desktop removal by @yiliang114 in #9994
- fix(goal): cite this turn's delivered output instead of refusing over it by @qqqys in #9880
- fix(serve): let channel workers reach TLS-enabled daemons by @qqqys in #9392
- feat(goal): stop a Goal whose checkpoints stall three times in a row by @qqqys in #9975
- fix(cli): drop duplicate fake properties breaking the main build by @yiliang114 in #10022
- fix(core): register report_findings in the permission alias table by @yiliang114 in #10033
- feat(web-shell): make compact view the only mode by @ytahdn in #9993
- fix(cli): preserve bridge timeouts for mid-turn media by @ytahdn in #9995
- ci: take the macOS and Windows lanes off pull requests by @wenshao in #10059
- fix(mcp): recover restarted HTTP MCP servers in-session and in CLI by @yiliang114 in #9962
- fix(core): sync loaded-skill state with history eviction by @ZijianZhang989 in #9500
- refactor(core): remove unused LruCache utility by @AaronZ345 in #9926
- fix(core): preserve images for multimodal DeepSeek by @shenyankm in #9854
- fix(ci): yield the event loop between script tests to avoid vitest RPC timeouts (#10037) by @qwen-code-dev-bot in #10050
- fix(vscode): sync companion token limits by @AaronZ345 in #9850
- fix(ui): suppress duplicate identical TodoList panels in a single turn by @PratikWayase in #9692
- refactor(cli): remove unused useInputHistoryStore hook by @qqqys in #10041
- feat(daemon): Support current-session scheduled tasks by @doudouOUC in #9838
Full Changelog: pr-9806-verification-assets...desktop-v0.2.2
cua-driver-rs v0.20.1
Qwen CUA Driver prebuilt binaries
(vendored under packages/cua-driver).
- macOS: codesigned + notarized universal binary +
QwenCuaDriver.app - Linux: unsigned (x86_64 + arm64, glibc 2.31 floor)
- Windows: unsigned (x86_64 + arm64)
- Node.js: the same workflow publishes
@qwen-code/cua-sdk
after a clean install against these release assets and publishes
the independently versioned@qwen-code/node-repl-mcppackage
after its MCP protocol smoke tests
Enable relative coordinates: CUA_DRIVER_RS_COORDINATE_SPACE=1
(default 0 = off; optional CUA_DRIVER_RS_COORDINATE_SCALE=1000).
Enable textual MCP payload filtering for affected model API routes:
MCP_MODEL_PAYLOAD_FILTER=1 (default off).
What's Changed
- feat(core): trust a generated-scripts root for workflow scriptPath loads by @qqqys in #9987
- docs: consolidate assorted documentation corrections by @AaronZ345 in #9855
- fix(ci): retry sandbox image builds and file an issue when a release build fails by @yiliang114 in #9916
- feat(providers): load model recommendations before editing by @qqqys in #9980
- feat(goal): stop autonomous continuation at a token budget the user re-arms by @qqqys in #9891
- fix(web-shell): constrain responsive sidebar drawer by @dreamWB in #10020
- fix(core): dedupe hierarchical memory files by canonical identity by @yiliang114 in #9600
- fix(cua-driver): support sandboxed Windows SDK clients by @LaZzyMan in #10120
- chore(ci): migrate CUA npm packages to trusted publishing by @yiliang114 in #9836
- feat(acp): enable managed auto-memory lifecycle by @zgxkbtl in #9992
- chore(cua-driver): bump SDK to 0.20.1 by @LaZzyMan in #10127
- fix(node-repl): make package verification idempotent by @LaZzyMan in #10133
- fix(review): give cancelled runs an accurate fallback body instead of the failure comment by @wenshao in #10114
- fix(cua-driver): synchronize release version marker by @LaZzyMan in #10135
- feat(cli): Add standalone sessions for projectless tasks by @doudouOUC in #9978
New Contributors
Full Changelog: desktop-v0.2.2...cua-driver-rs-v0.20.1
Release v0.22.0-nightly.20260825.22bb5e8b9f
What's Changed
- fix(web-shell): pass session workspace cwd when opening from overview panel by @wenshao in #9730
- fix(web-shell): fall back after stale mid-turn rejection by @ytahdn in #9732
- fix(review): stop the fallback comment from firing on superseded runs by @wenshao in #9716
- feat(review): add temporal-reachability and incident-replay lenses by @wenshao in #9708
- fix(web-shell): stable pinned-section order and instant pin feedback by @yiliang114 in #9560
- feat(review): ask each fix for its test, and rule on non-convergence by @wenshao in #9596
- chore(ci): migrate autofix prose to the design record and ratchet growth by @wenshao in #9677
- feat(cli): restore each daemon session onto its last selected model by @doudouOUC in #9687
- feat(review): validate Aone inline anchors against the captured diff before posting by @wenshao in #9634
- fix(ci): record qwen-autofix.yml's shipped size in the workflow size baseline by @wenshao in #9747
- fix(ci): gate the fork signal on fields the review payload delivers by @qqqys in #9469
- feat(goal): account the tokens a Goal spends by @qqqys in #9583
- fix(core): reject session titles that echo the prompt's own examples by @yiliang114 in #9709
- fix(core): parse the workflow meta literal instead of evaluating it by @qqqys in #9325
- fix(sdk): support relative artifact download URLs by @ytahdn in #9734
- fix(autofix): give the repair pass a budget it can finish in by @qqqys in #9691
- feat(cli): enable dynamic workflows from a settings key by @qqqys in #9098
- fix(core): widen the workflow stall watchdog past the transport retry ladder by @qqqys in #9397
- test(core): pin that subagent registries carry no MCP instructions by @wenshao in #9720
- fix(core): gate skill announcements on what the model was declared by @wenshao in #9718
- feat(review): back pr-context on Aone Code targets by @wenshao in #9621
- fix(review): count a fix-induced re-report as first-time work by @wenshao in #9744
- docs(review): name the axis when two of them both call it "rank 3" by @wenshao in #9759
- fix(web-shell): preview document-classified artifacts by @ytahdn in #9760
- feat(web-shell): refresh composer skills incrementally after toggles by @samuelhsin in #9131
- feat(review): back comment-status and presubmit for Aone Code targets by @wenshao in #9627
- perf(cli): raise VP scroll rendering to 60 FPS by @DragonnZhang in #9681
- feat(models): support dual-role image generation models by @callmeYe in #9650
- fix(daemon): keep restored ask_user_question valid after load by @doudouOUC in #9763
- feat(review): add the persistently-critical convergence advisory (land-with-residual-risk) by @wenshao in #9526
- fix(core): support public GitHub extensions with older Git by @yiliang114 in #9690
- feat(cua-driver): add versioned Computer Use SDK and release pipeline by @LaZzyMan in #9587
- refactor(node-repl)!: deliver the persistent Node REPL as a standalone MCP server by @LaZzyMan in #9499
- fix(review): repair permissions before giving up on worktree cleanup by @wenshao in #9748
- fix(core): Normalize both sides of the session title echo comparison by @yiliang114 in #9809
- refactor(cli): enforce utils leaf-layer dependency direction (#9146) by @yiliang114 in #9737
- fix(web-shell): cap React dev performance.measure accumulation to stop renderer OOM by @wenshao in #9770
- fix(dingtalk): parse forwarded chat records by @qqqys in #9339
- fix(web-shell): add remark-cjk-friendly so bold adjacent to CJK punct… by @cactuser-Lu in #9457
- feat(mcp): add MCP 2026 core and WebShell Apps host by @samuelhsin in #8992
- fix(config): allow prompt hooks in settings schema by @zjunothing in #8779
- fix(web-shell): show reasoning effort before session creation by @callmeYe in #9599
- fix(auth): let Vertex AI authenticate with Application Default Credentials by @axiom-of-choice in #9017
- fix(ci): record cd-cua-driver.yml's shipped size in the workflow size baseline by @wenshao in #9822
- feat(review): give verifiers a do-not-refute list and a constructible rejection bar by @wenshao in #9799
- fix(core): clear tool display list before awaiting completion callback by @qwen-code-dev-bot in #9602
- refactor(cli): extract ACP skill management by @callmeYe in #8865
- fix(cli): normalize win32 drive-letter casing in MCP approval keys by @zhou2024NAU in #9779
- Support MiniMax image generation schema by @octo-patch in #8322
- fix(core): sniff image content before read by @rbalachandar in #9113
- fix(vscode): preserve Windows file links in session exports by @yefuyou in #8953
- fix(cli): prevent input border overflow on resize by @tlysanhuo in #8991
- feat(core): declare create_sub_session only under qwen serve by @DragonnZhang in #9425
- fix(core): report remaining background agents by @tao943 in #9018
- fix(core): cap the effort tier at what each endpoint accepts by @harjothkhara in #9501
- fix(cli): probe microphone permission on recording start, not voice warmup by @Nas01010101 in #8912
- fix(core): detect long verbatim repetition loops in content and reasoning streams by @yiliang114 in #9668
- feat(scheduled-tasks): allow creating a task with an existing session by @yiliang114 in #9361
- docs(agent): clarify parameter preconditions by @tao943 in #9580
- fix(review): pin the verified git identity across the residue probe (#9557) by @wenshao in #9742
- fix(core): surface nested sub-agent approvals under background parents by @wenshao in #9793
- fix(core): mark agent launch failures as failed tool calls by @yiliang114 in #9519
- refactor(goal): render Goal continuation prompts from one core renderer by @qqqys in #9581
- fix(core): avoid ghost shutdown pending state by @AaronZ345 in #9550
- fix(core): isolate fork cache readers by session by @tomsen02 in #9471
- refactor(review): split SKILL.md into a core body plus verdict-gated reference files by @wenshao in #9804
- feat(web-shell): compact agent activity summaries by @ytahdn in #9657
- feat(auth): add Kimi (Moonshot AI) as a built-in third-party provider by @TianYuan1024 in #9814
- fix(goal): count catalog previews in the unit their budget is written in by @qqqys in #9835
- feat(core): show what a workflow will do, and scope the grant that approves it by @qqqys in #9837
- feat(web-shell): expose agent task changes by @callmeYe in #9637
- fix(cli): skip terminal redraw optimizer on WSL/ConPTY by @C0d3N1nja97342 in #7897
- chore(ci): refresh the core issue-owner pool by @yiliang114 in #9808
- fix(core): invalidate token counts recorded for a switched model route by @yiliang114 in #9506
- fix(daemon): Bound conditional-close refusal holds by @doudouOUC in #9820
- fix(core): allow hook-bounced workflow reapproval by @AaronZ345 in #9547
- docs(vscode): correct minimum VS Code version by @AaronZ345 in #9852
- fix(core)...
Release v0.22.0-nightly.20260824.3a1f86d805
What's Changed
- fix(web-shell): pass session workspace cwd when opening from overview panel by @wenshao in #9730
- fix(web-shell): fall back after stale mid-turn rejection by @ytahdn in #9732
- fix(review): stop the fallback comment from firing on superseded runs by @wenshao in #9716
- feat(review): add temporal-reachability and incident-replay lenses by @wenshao in #9708
- fix(web-shell): stable pinned-section order and instant pin feedback by @yiliang114 in #9560
- feat(review): ask each fix for its test, and rule on non-convergence by @wenshao in #9596
- chore(ci): migrate autofix prose to the design record and ratchet growth by @wenshao in #9677
- feat(cli): restore each daemon session onto its last selected model by @doudouOUC in #9687
- feat(review): validate Aone inline anchors against the captured diff before posting by @wenshao in #9634
- fix(ci): record qwen-autofix.yml's shipped size in the workflow size baseline by @wenshao in #9747
- fix(ci): gate the fork signal on fields the review payload delivers by @qqqys in #9469
- feat(goal): account the tokens a Goal spends by @qqqys in #9583
- fix(core): reject session titles that echo the prompt's own examples by @yiliang114 in #9709
- fix(core): parse the workflow meta literal instead of evaluating it by @qqqys in #9325
- fix(sdk): support relative artifact download URLs by @ytahdn in #9734
- fix(autofix): give the repair pass a budget it can finish in by @qqqys in #9691
- feat(cli): enable dynamic workflows from a settings key by @qqqys in #9098
- fix(core): widen the workflow stall watchdog past the transport retry ladder by @qqqys in #9397
- test(core): pin that subagent registries carry no MCP instructions by @wenshao in #9720
- fix(core): gate skill announcements on what the model was declared by @wenshao in #9718
- feat(review): back pr-context on Aone Code targets by @wenshao in #9621
- fix(review): count a fix-induced re-report as first-time work by @wenshao in #9744
- docs(review): name the axis when two of them both call it "rank 3" by @wenshao in #9759
- fix(web-shell): preview document-classified artifacts by @ytahdn in #9760
- feat(web-shell): refresh composer skills incrementally after toggles by @samuelhsin in #9131
- feat(review): back comment-status and presubmit for Aone Code targets by @wenshao in #9627
- perf(cli): raise VP scroll rendering to 60 FPS by @DragonnZhang in #9681
- feat(models): support dual-role image generation models by @callmeYe in #9650
- fix(daemon): keep restored ask_user_question valid after load by @doudouOUC in #9763
- feat(review): add the persistently-critical convergence advisory (land-with-residual-risk) by @wenshao in #9526
- fix(core): support public GitHub extensions with older Git by @yiliang114 in #9690
- feat(cua-driver): add versioned Computer Use SDK and release pipeline by @LaZzyMan in #9587
- refactor(node-repl)!: deliver the persistent Node REPL as a standalone MCP server by @LaZzyMan in #9499
- fix(review): repair permissions before giving up on worktree cleanup by @wenshao in #9748
- fix(core): Normalize both sides of the session title echo comparison by @yiliang114 in #9809
- refactor(cli): enforce utils leaf-layer dependency direction (#9146) by @yiliang114 in #9737
- fix(web-shell): cap React dev performance.measure accumulation to stop renderer OOM by @wenshao in #9770
- fix(dingtalk): parse forwarded chat records by @qqqys in #9339
- fix(web-shell): add remark-cjk-friendly so bold adjacent to CJK punct… by @cactuser-Lu in #9457
- feat(mcp): add MCP 2026 core and WebShell Apps host by @samuelhsin in #8992
- fix(config): allow prompt hooks in settings schema by @zjunothing in #8779
- fix(web-shell): show reasoning effort before session creation by @callmeYe in #9599
- fix(auth): let Vertex AI authenticate with Application Default Credentials by @axiom-of-choice in #9017
- fix(ci): record cd-cua-driver.yml's shipped size in the workflow size baseline by @wenshao in #9822
- feat(review): give verifiers a do-not-refute list and a constructible rejection bar by @wenshao in #9799
New Contributors
- @cactuser-Lu made their first contribution in #9457
- @axiom-of-choice made their first contribution in #9017
Full Changelog: v0.22.0...v0.22.0-nightly.20260824.3a1f86d805