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 UIAccess worker + native SDK payload
(x86_64 + arm64); deployments must sign and trust the worker
on the target machine before UIAccess activation - 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
- fix(web-shell): realign two suites with shipped behavior to unbreak main CI (#11525) by @qwen-code-dev-bot in #11530
- feat(acp): register daemon-managed sessions in the session registry and let them send peer messages by @qqqys in #11488
- fix(ci): grant the packaging check the permissions its callee declares by @yiliang114 in #11532
- fix(dev): install hooks during worktree bootstrap by @yiliang114 in #11496
- test(core): cover bundled ConPTY fallback and terminal replies by @yiliang114 in #11555
- fix(review): dispatch review agents through parallel workflows by @wenshao in #11524
- feat(web-shell): render URLs in user messages as clickable links by @wenshao in #11464
- fix(vscode): preserve active file exclusion by @yiliang114 in #11568
- feat(serve): support 256 workspaces by default by @doudouOUC in #11515
- fix(cli): drain notification queue when a turn errors out by @yiliang114 in #11559
- fix(review): keep host-trusted state out of the container's writable surface by @wenshao in #9983
- fix(acp): pass shell execution config to tool invocations by @yiliang114 in #11102
- refactor(dingtalk): remove obsolete background response aggregation by @qqqys in #11570
- feat(channels)!: remove message prefix filtering by @qqqys in #11571
- fix(ci): widen the replayed supersede-cede timeline margin to deflake Scripts by @wenshao in #11581
- test(review): pin the fold invariant the per-line escape rests on by @wenshao in #11533
- fix(autofix): charge regressions to the brake and gate test weakening by @wenshao in #10188
- fix(acp): Preserve submitted prompt provenance for auto recall by @doudouOUC in #11455
- fix(serve): restore configured channels after restart by @qqqys in #11472
- feat(goal): start approved Web Shell proposals after their owning turn by @qqqys in #11360
- refactor(core): move the web_search DashScope client behind a backend interface by @qqqys in #11490
- fix(serve): load persisted MCP config after ACP preheat at startup by @kabishou11 in #11145
- fix(vscode-ide-companion): resolve diff paths once in DiffManager by @CanReader in #10494
- feat(sdk): add a peer endpoint so a program outside Qwen Code can join cross-session messaging by @qqqys in #11560
- feat(goal): stop a Goal at a turn or an active-time budget by @qqqys in #11457
- perf(core): drop the redundant history clone in session recovery planning by @DragonnZhang in #11595
- fix(core): free an exited web terminal's PTY resources at exit time by @yiliang114 in #11572
- test(integration): assert successful /compress token reduction by @yu-xin-c in #11259
- fix(ci): retry transient E2E build artifact upload failures once (#11364) by @qwen-code-dev-bot in #11375
- feat(web-shell): route scheduled runs by model and group by @qqqys in #11396
- feat(web-shell): enrich browser notifications and open target sessions by @doudouOUC in #11447
- feat(web-shell): improve composer and context usage presentation by @wenshao in #11509
- feat(live): add visual input, proactive assistance and memory by @wangxiongts in #11369
- fix(bridge): preserve child error detail on session explicit-close and kill paths (#11123) by @now-ing in #11190
- feat(review): focus automatic static navigation reviews by @wenshao in #11456
- fix(web-shell): persist cancelled responses and elapsed time by @ytahdn in #11608
- feat(subagents): add Codex executor and native agent builtins by @wenshao in #11474
- fix(ci): pin the fleet install to the /usr/local prefix by @yiliang114 in #11593
- fix(core): recover from rejected Responses encrypted reasoning by @DragonnZhang in #11596
- feat(core): add CodeModeOnly tool execution by @DragonnZhang in #10607
- fix(goal): strip fences and retry the checkpoint verifier on the shapes a note can fix by @qqqys in #11578
- fix(web-shell): show source retry only after load failure by @callmeYe in #11629
- chore(core): remove the unused trusted hooks manager and implement unregisterSkillHooks by @qqqys in #11621
- fix(core): route plain-text hook stdout to additionalContext for prompt and session events by @qqqys in #11612
- fix(cli): close the OpenTUI renderer's parity gaps against ink by @chiga0 in #11630
- fix(core): mark reattached image snapshots as potentially outdated by @yiliang114 in #11602
- feat(workflows): move the authoring reference into a bundled skill by @qqqys in #11520
- feat(web-shell): hide sources panel add-source button behind URL flag by @callmeYe in #11639
- feat(channels): show channel turns exactly as the model receives them by @qqqys in #11646
- fix(vscode): localize rewind preflight errors by @yiliang114 in #11628
- feat(web-shell): add web previews with saved delivery history by @wenshao in #11276
- feat(web-shell): Edit and resend the latest user message by @ytahdn in #11650
- fix(core): preserve Responses retry metadata and assistant phases by @DragonnZhang in #11652
- fix(cli): keep the expanded confirmation dialog inside the viewport by @qwen-code-dev-bot in #11656
- fix(core): retry transient server errors in established streams by @DragonnZhang in #11634
- test(integration): isolate the QWEN_HOME-unset case from the real $HOME (#10900) by @qwen-code-dev-bot in #10920
- fix(vscode): preserve IDE workspace env var on Remote-SSH (#11556) by @yiliang114 in #11624
- test(core): pin the deferred exit-time PTY release against trailing output by @yiliang114 in #11585
- fix(vscode): give the edit back when a permission diff is closed by @yiliang114 in #11171
- feat(core): add permission_mode, agent_id and prompt_id to every hook input by @qqqys in #11618
- chore(core): cover every hook event in the settings schema and hook bus by @qqqys in #11620
- fix(goal): persist why a checkpoint failed and show it before the Goal stops by @qqqys in #11576
- fix(web-shell): suppress abort toasts on preflight rejection by @yiliang114 in #11676
- feat(web-shell): continue interrupted sessions by @wenshao in #11545
- fix(core): redact request-body prefix in Responses debug logs by @yiliang114 in #11668
- fix(web-shell): label blocked goal cards correctly by @yu-xin-c in #11174
- fix(cli): quiesce the fire-and-forget serve handler across tests by @qwen-code-dev-bot in #11417
- fix(core): keep Responses reasoning replay data off foreign wires by @yiliang114 in #11567
- feat(skills): extension skills are named by their extension by @nerdalytics in #10841
- fix(web-shell): close the trust-gate and bystander gaps in the local-files bridge by @wenshao in #11169
- fix(core): place DashScope cache breakpoint before reattached images by @yiliang114 in #11640
- fix(core): report real stop_hook_active on Stop hooks by @qqqys in #11613
- fix(core): cite web search sources as bare URLs by @qqqys in #11677
- fix(acp-bridge): reject unlimited cgroup sentinel for ACP child heaps by @doudouOUC in #11653
- fix(core): prevent duplicate task owner dispatch by @AaronZ345 in #10237
- refactor(web-shell): share sidebar test harness by @bluefateludi in #9797
- feat(vscode): add an explicit session source switch by @yiliang114 in #11584
- feat(core): auto-retry transient network errors (EOF) where Ctrl+Y is unavailable by @qwen-code-dev-bot in #10347
- fix(core)!: read command hook timeout in seconds by @qqqys in #11615
- fix(telemetry): gate request_text/response_text on logPrompts by @yiliang114 in #11670
- docs(daemon): publish the REST API reference by @yiliang114 in #11592
- chore: enforce Playwright version parity and close the deferred #11101 follow-ups by @yiliang114 in #11371
- chore(pnpm): gate pnpm-lock on package-lock and declare hoisted imports by @yiliang114 in #11625
- test(lockfile): pin the Playwright parity check's first manifest and both nested directions by @yiliang114 in #11716
- fix(vscode): unify session history and remove source switch by @yiliang114 in #11713
- fix(acp): preserve original filenames in resource-link prompts by @zhangxy-zju in #11721
- fix(vscode): shut the ACP CLI down gracefully instead of killing it by @yiliang114 in #11642
- docs(vscode): record the cross-source delete consequence by @yiliang114 in #11730
- docs(daemon): describe the prompt rate-limit and queue-full responses separately by @yiliang114 in #11733
- fix(core): redact error text in usage-statistics telemetry sink by @yiliang114 in #11649
- fix(core): reap surviving hook process trees on Windows by @yiliang114 in #11623
- fix(core): compute cron next-fire time with epoch arithmetic across DST fall-back by @yiliang114 in #11723
- fix(goal): remove backtracking fence unwrap from judge replies by @yiliang114 in #11693
- fix(core): keep the mirrored reasoning field off Fireworks requests by @bluefateludi in #11701
- fix(core): fire active-todo reminders at delegation boundaries and user turns by @yiliang114 in #10963
- refactor(core): apply one matcher rule to every hook event by @qqqys in #11619
- fix(core): guard internal git calls against configured helper programs by @yiliang114 in #11669
- feat(workflows): add effort and disallowedTools to agent() options by @qqqys in #11691
- feat(goal): rerun a stalled checkpoint in batches, smaller after each stall by @qqqys in #11690
- feat(web-shell): add model role and context window configuration by @wenshao in #11342
- test(web-shell): give the 200-record history-viewport smoke case its own budget by @yiliang114 in #11740
- fix(lsp): synchronize target documents before queries by @shenyankm in #11443
- fix(core): run web terminal PTYs on the bundled ConPTY backend by @yiliang114 in #11643
- fix(core): retry status-less upstream errors instead of ending the turn by @wenshao in #11291
- fix(dashscope): send request metadata only for qwen-family models by @shoemoney in #11606
- test(core): account for the extra Windows fstat in the tail-growth session mocks by @F415643 in #11750
- fix(web-shell): prevent terminal query freezes and clean up protocol rejection by @yiliang114 in #11748
- fix(cli): break Ink useBoxMetrics commit-phase setState loop (React #185) by @zaalipro in #11565
- perf(web-shell): load metadata on demand and reuse capability checks by @ytahdn in #11644
- fix(dingtalk): handle replied rich-text media by @qqqys in #11759
- fix(dingtalk): preserve callback text by @qqqys in #11757
- fix(cli): prevent dialog clipping in short terminals by @shenyankm in #9040
- fix(web-shell): keep mid-turn messages the daemon rejects at idle by @wenshao in #11289
- fix(core): strip AppImage PYTHONHOME/PYTHONPATH from stdio MCP children by @yiliang114 in #11763
- feat(cua): add app-bound actions and compact native observations by @LaZzyMan in #11705
- fix(cua): address tool failures and efficiency in OSWorld runs by @tanzhenxin in #11683
- fix(cua): bound observations and reduce model round trips by @DragonnZhang in #11735
- fix(web-shell): pin es2021 floor across both build configs and harden terminal tests by @yiliang114 in #11758
- feat: agent board — share work across independently started agents by @yiliang114 in #9402
- feat(review): record a default deadline in the plan so every run has a wall by @wenshao in #11686
- chore(release): bump node repl to 0.1.4 by @LaZzyMan in #11771
New Contributors
- @kabishou11 made their first contribution in #11145
- @CanReader made their first contribution in #10494
- @wangxiongts made their first contribution in #11369
- @F415643 made their first contribution in #11750
- @zaalipro made their first contribution in #11565
Full Changelog: desktop-v0.3.0...cua-driver-rs-v0.20.6