Qwen CUA Driver 预构建二进制文件
(以 vendor 形式置于 `packages/cua-driver` 下)。
- **macOS**:已代码签名并公证的通用二进制文件 + `QwenCuaDriver.app`
- **Linux**:未签名(x86_64 + arm64,glibc 2.31 最低要求)
- **Windows**:未签名的 UIAccess worker + 原生 SDK 负载
(x86_64 + arm64);部署时必须在目标机器上对 worker 进行签名并信任,
才能激活 UIAccess
- **Node.js**:同一工作流在针对这些发布资产进行干净安装后
发布 `@qwen-code/cua-sdk`,并在其 MCP 协议冒烟测试通过后
发布独立版本化的 `@qwen-code/node-repl-mcp` 包
启用相对坐标:`CUA_DRIVER_RS_COORDINATE_SPACE=1`
(默认 `0` = 关闭;可选 `CUA_DRIVER_RS_COORDINATE_SCALE=1000`)。
为受影响的模型 API 路由启用文本 MCP 负载过滤:
`MCP_MODEL_PAYLOAD_FILTER=1`(默认关闭)。
<!-- Release notes generated using configuration in .github/release.yml at 5e562efe554214d2e458ef83d6f3d45afddd850e -->
## 变更内容
* fix(review): keep unplanned chunks out of coverage, and read the denominator from the plan by @wenshao in https://github.com/QwenLM/qwen-code/pull/12370
* feat(review): record what a plan was computed from, and report drift by @wenshao in https://github.com/QwenLM/qwen-code/pull/12369
* fix(core): accept nullable pagination when reading notebooks by @DragonnZhang in https://github.com/QwenLM/qwen-code/pull/12421
* fix(cli): clean up stale session debug logs by @doudouOUC in https://github.com/QwenLM/qwen-code/pull/12374
* feat(java): Add managed tool execution state by @doudouOUC in https://github.com/QwenLM/qwen-code/pull/12391
* fix(web-shell): isolate npm pack diagnostics from verifier output by @dvd233 in https://github.com/QwenLM/qwen-code/pull/12367
* feat(serve): support SSH workspaces without a remote daemon by @wenshao in https://github.com/QwenLM/qwen-code/pull/12255
* feat(web-shell): enable expiring QR pairing on non-loopback listeners by @wenshao in https://github.com/QwenLM/qwen-code/pull/12322
* fix(live): spend JPEG quality, not pixels, when a shared screen will not fit by @qqqys in https://github.com/QwenLM/qwen-code/pull/12397
* fix(web-shell): expose markdown message completion state by @callmeYe in https://github.com/QwenLM/qwen-code/pull/12431
* fix(web-shell): verify wildcard export targets against the packed file list by @yiliang114 in https://github.com/QwenLM/qwen-code/pull/12364
* fix(web-shell): recover queued prompt binding after refresh failure by @elizabethbrunette21 in https://github.com/QwenLM/qwen-code/pull/12279
* fix(desktop): restore window zoom in the Tauri shell by @yiliang114 in https://github.com/QwenLM/qwen-code/pull/12410
* test(scripts): warm the pinned corepack pnpm cache before workers fork (#12436) by @qwen-code-dev-bot in https://github.com/QwenLM/qwen-code/pull/12446
* feat(mobile): add encrypted, isolated connection profiles (Phase 2) by @jabrailkhalil in https://github.com/QwenLM/qwen-code/pull/12121
* fix(web-shell): preserve reference tags across reloads by @ytahdn in https://github.com/QwenLM/qwen-code/pull/12404
* feat(java): Add runtime broker service core by @doudouOUC in https://github.com/QwenLM/qwen-code/pull/12438
* fix(web-shell): browse remote workspace folders without page refresh by @yiliang114 in https://github.com/QwenLM/qwen-code/pull/12412
* fix(cli): close the remaining OpenTUI parity gaps against ink by @chiga0 in https://github.com/QwenLM/qwen-code/pull/12309
* fix(core): warn when tools.eager entries match no discovered tool by @yiliang114 in https://github.com/QwenLM/qwen-code/pull/12451
* chore(cli): bump the OpenTUI renderer to 0.5.10 by @chiga0 in https://github.com/QwenLM/qwen-code/pull/12321
* fix(web-shell): open a Live session on a daemon serving one project by @qqqys in https://github.com/QwenLM/qwen-code/pull/12441
* feat(cli): Add managed runtime attestation contract by @doudouOUC in https://github.com/QwenLM/qwen-code/pull/12447
* fix(web-shell): show edit diffs before approval by @yiliang114 in https://github.com/QwenLM/qwen-code/pull/12443
* feat(serve): Add opt-in fixed ACP child heap enforcement by @doudouOUC in https://github.com/QwenLM/qwen-code/pull/12353
* feat(cli): Move bwrap sandboxing to tool execution by @doudouOUC in https://github.com/QwenLM/qwen-code/pull/12267
* feat(serve): add --token-qr escape hatch and address-only QR fallback by @wenshao in https://github.com/QwenLM/qwen-code/pull/12266
* chore(sdk-java): bump fastjson2 to 2.0.65 by @wenshao in https://github.com/QwenLM/qwen-code/pull/12465
* docs: update README hero image by @yiliang114 in https://github.com/QwenLM/qwen-code/pull/12474
* feat(java): Persist managed tool executions with JDBC by @doudouOUC in https://github.com/QwenLM/qwen-code/pull/12445
* fix(core,docs): correct what the deferred-tool bridge made stale or untested by @yiliang114 in https://github.com/QwenLM/qwen-code/pull/12355
* docs(plans): record why CI test time is bound by module import, not scheduling by @yiliang114 in https://github.com/QwenLM/qwen-code/pull/10909
* perf(core): move the Agent tool's prompt-writing guidance into a bundled skill by @yiliang114 in https://github.com/QwenLM/qwen-code/pull/12323
* fix(vscode-ide-companion): regenerate NOTICES.txt after release dependency reorder (#12479) by @qwen-code-dev-bot in https://github.com/QwenLM/qwen-code/pull/12483
* chore(vscode-ide-companion): regenerate NOTICES.txt after dependency reorder (#12481) by @qwen-code-dev-bot in https://github.com/QwenLM/qwen-code/pull/12485
* fix(java): Fence stale tool dispatch owners by @doudouOUC in https://github.com/QwenLM/qwen-code/pull/12477
* fix(java): Make JDBC lease clocks timezone and storage safe by @doudouOUC in https://github.com/QwenLM/qwen-code/pull/12478
* fix(cli): hide external editor option when the configured editor is unavailable by @yiliang114 in https://github.com/QwenLM/qwen-code/pull/12498
* fix(review): 将受信任状态移出工作区,由 @doudouOUC 在 https://github.com/QwenLM/qwen-code/pull/12491 中提交
* docs(verify-pr): 添加持久化状态、稳态和跳过覆盖率规则,由 @wenshao 在 https://github.com/QwenLM/qwen-code/pull/12456 中提交
* feat(channels): 将群组成员访问与 senderPolicy 解耦,由 @qwen-code-dev-bot 在 https://github.com/QwenLM/qwen-code/pull/12475 中提交
* fix(cli): 在 Linux 上报告剪贴板不可用,而不是静默失败,由 @yiliang114 在 https://github.com/QwenLM/qwen-code/pull/12489 中提交
* fix(release): 在升级版本时保持清单布局,由 @yiliang114 在 https://github.com/QwenLM/qwen-code/pull/12487 中提交
* fix(chrome-extension): 让商店发布在可读取处失败,由 @tanzhenxin 在 https://github.com/QwenLM/qwen-code/pull/12392 中提交
* docs(browser-use): 引导用户前往 Chrome 网上应用店列表,由 @tanzhenxin 在 https://github.com/QwenLM/qwen-code/pull/12510 中提交
* fix(cli): 当原生模块抛出异常时报告剪贴板不可用,由 @yiliang114 在 https://github.com/QwenLM/qwen-code/pull/12508 中提交
* feat(cli): 添加托管运行时证明工作器,由 @doudouOUC 在 https://github.com/QwenLM/qwen-code/pull/12506 中提交
* fix(web-shell): 保持移动端编辑器控件在软键盘上方可访问,由 @wenshao 在 https://github.com/QwenLM/qwen-code/pull/12462 中提交
* fix(web-shell): 在 Live 聊天中从 New task 打开普通任务,由 @qqqys 在 https://github.com/QwenLM/qwen-code/pull/12516 中提交
* fix(channels): 为共享会话制定一条操作员规则,并带有明确的 operators 列表,由 @qqqys 在 https://github.com/QwenLM/qwen-code/pull/12515 中提交
* feat(serve): 为启动后注册的工作区恢复一次 serve.channels,由 @qqqys 在 https://github.com/QwenLM/qwen-code/pull/12396 中提交
* feat(core): 记录每次工具调用的开始时间,由 @qqqys 在 https://github.com/QwenLM/qwen-code/pull/12517 中提交
* docs(design): 添加内存压力监控设计的中文翻译,由 @yiliang114 在 https://github.com/QwenLM/qwen-code/pull/12521 中提交
* fix(core): 简化系统提示并移除冲突示例,由 @doudouOUC 在 https://github.com/QwenLM/qwen-code/pull/12360 中提交
* refactor(channels): 将群组发送者移入群组并按对话解析,由 @qqqys 在 https://github.com/QwenLM/qwen-code/pull/12520 中提交
* fix(web-shell): 在没有受信任主节点的情况下,使 Live 聊天中的 New task 脱离 Live 上下文,由 @qqqys 在 https://github.com/QwenLM/qwen-code/pull/12519 中提交
* fix(cli): 在 VP 模式下输入为空时,按裸 Up/Down 滚动对话,由 @yiliang114 在 https://github.com/QwenLM/qwen-code/pull/12518 中提交
* fix(vscode-ide-companion): 在消息编辑回退时停止发送未注册的客户端 ID,由 @yar3333 在 https://github.com/QwenLM/qwen-code/pull/12502 中提交
* feat(cua): 统一 App 工作流并修复 SDK 0.20.11 的无 Metal 捕获,由 @LaZzyMan 在 https://github.com/QwenLM/qwen-code/pull/12386 中提交
* fix(dws): 将文档线程和待办事项保持在直接消息轴上,由 @qqqys 在 https://github.com/QwenLM/qwen-code/pull/12525 中提交
* fix(serve): 绝不在通道控制通道上持有工作区注册,由 @qqqys 在 https://github.com/QwenLM/qwen-code/pull/12527 中提交
* feat(web-shell): 轨迹概览条显示运行时间花费在哪里,由 @qqqys 在 https://github.com/QwenLM/qwen-code/pull/12524 中提交
* feat(web-shell): 在绘制整个轨迹窗口之前先加载它,由 @qqqys 在 https://github.com/QwenLM/qwen-code/pull/12533 中提交
* fix(web-shell): 在空闲时处理过期的流式消息,由 @callmeYe 在 https://github.com/QwenLM/qwen-code/pull/12439 中提交
* fix(core): 注册会话提交,使修正豁免可达,由 @yiliang114 在 https://github.com/QwenLM/qwen-code/pull/12463 中提交
* feat(web-shell): 为页面和会话添加共享 URL 导航,由 @Lilian0122 在 https://github.com/QwenLM/qwen-code/pull/12499 中提交
* feat(web-shell): 在通道编辑器中编辑群组发送者和会话操作员,由 @qqqys 在 https://github.com/QwenLM/qwen-code/pull/12535 中提交
## 新贡献者
* @elizabethbrunette21 在 https://github.com/QwenLM/qwen-code/pull/12279 中做出了首次贡献
* @yar3333 在 https://github.com/QwenLM/qwen-code/pull/12502 中做出了首次贡献
**完整变更日志**: https://github.com/QwenLM/qwen-code/compare/desktop-v0.24.3...cua-driver-rs-v0.20.11
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-mcp` package
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).
<!-- Release notes generated using configuration in .github/release.yml at 5e562efe554214d2e458ef83d6f3d45afddd850e -->
## What's Changed
* fix(review): keep unplanned chunks out of coverage, and read the denominator from the plan by @wenshao in https://github.com/QwenLM/qwen-code/pull/12370
* feat(review): record what a plan was computed from, and report drift by @wenshao in https://github.com/QwenLM/qwen-code/pull/12369
* fix(core): accept nullable pagination when reading notebooks by @DragonnZhang in https://github.com/QwenLM/qwen-code/pull/12421
* fix(cli): clean up stale session debug logs by @doudouOUC in https://github.com/QwenLM/qwen-code/pull/12374
* feat(java): Add managed tool execution state by @doudouOUC in https://github.com/QwenLM/qwen-code/pull/12391
* fix(web-shell): isolate npm pack diagnostics from verifier output by @dvd233 in https://github.com/QwenLM/qwen-code/pull/12367
* feat(serve): support SSH workspaces without a remote daemon by @wenshao in https://github.com/QwenLM/qwen-code/pull/12255
* feat(web-shell): enable expiring QR pairing on non-loopback listeners by @wenshao in https://github.com/QwenLM/qwen-code/pull/12322
* fix(live): spend JPEG quality, not pixels, when a shared screen will not fit by @qqqys in https://github.com/QwenLM/qwen-code/pull/12397
* fix(web-shell): expose markdown message completion state by @callmeYe in https://github.com/QwenLM/qwen-code/pull/12431
* fix(web-shell): verify wildcard export targets against the packed file list by @yiliang114 in https://github.com/QwenLM/qwen-code/pull/12364
* fix(web-shell): recover queued prompt binding after refresh failure by @elizabethbrunette21 in https://github.com/QwenLM/qwen-code/pull/12279
* fix(desktop): restore window zoom in the Tauri shell by @yiliang114 in https://github.com/QwenLM/qwen-code/pull/12410
* test(scripts): warm the pinned corepack pnpm cache before workers fork (#12436) by @qwen-code-dev-bot in https://github.com/QwenLM/qwen-code/pull/12446
* feat(mobile): add encrypted, isolated connection profiles (Phase 2) by @jabrailkhalil in https://github.com/QwenLM/qwen-code/pull/12121
* fix(web-shell): preserve reference tags across reloads by @ytahdn in https://github.com/QwenLM/qwen-code/pull/12404
* feat(java): Add runtime broker service core by @doudouOUC in https://github.com/QwenLM/qwen-code/pull/12438
* fix(web-shell): browse remote workspace folders without page refresh by @yiliang114 in https://github.com/QwenLM/qwen-code/pull/12412
* fix(cli): close the remaining OpenTUI parity gaps against ink by @chiga0 in https://github.com/QwenLM/qwen-code/pull/12309
* fix(core): warn when tools.eager entries match no discovered tool by @yiliang114 in https://github.com/QwenLM/qwen-code/pull/12451
* chore(cli): bump the OpenTUI renderer to 0.5.10 by @chiga0 in https://github.com/QwenLM/qwen-code/pull/12321
* fix(web-shell): open a Live session on a daemon serving one project by @qqqys in https://github.com/QwenLM/qwen-code/pull/12441
* feat(cli): Add managed runtime attestation contract by @doudouOUC in https://github.com/QwenLM/qwen-code/pull/12447
* fix(web-shell): show edit diffs before approval by @yiliang114 in https://github.com/QwenLM/qwen-code/pull/12443
* feat(serve): Add opt-in fixed ACP child heap enforcement by @doudouOUC in https://github.com/QwenLM/qwen-code/pull/12353
* feat(cli): Move bwrap sandboxing to tool execution by @doudouOUC in https://github.com/QwenLM/qwen-code/pull/12267
* feat(serve): add --token-qr escape hatch and address-only QR fallback by @wenshao in https://github.com/QwenLM/qwen-code/pull/12266
* chore(sdk-java): bump fastjson2 to 2.0.65 by @wenshao in https://github.com/QwenLM/qwen-code/pull/12465
* docs: update README hero image by @yiliang114 in https://github.com/QwenLM/qwen-code/pull/12474
* feat(java): Persist managed tool executions with JDBC by @doudouOUC in https://github.com/QwenLM/qwen-code/pull/12445
* fix(core,docs): correct what the deferred-tool bridge made stale or untested by @yiliang114 in https://github.com/QwenLM/qwen-code/pull/12355
* docs(plans): record why CI test time is bound by module import, not scheduling by @yiliang114 in https://github.com/QwenLM/qwen-code/pull/10909
* perf(core): move the Agent tool's prompt-writing guidance into a bundled skill by @yiliang114 in https://github.com/QwenLM/qwen-code/pull/12323
* fix(vscode-ide-companion): regenerate NOTICES.txt after release dependency reorder (#12479) by @qwen-code-dev-bot in https://github.com/QwenLM/qwen-code/pull/12483
* chore(vscode-ide-companion): regenerate NOTICES.txt after dependency reorder (#12481) by @qwen-code-dev-bot in https://github.com/QwenLM/qwen-code/pull/12485
* fix(java): Fence stale tool dispatch owners by @doudouOUC in https://github.com/QwenLM/qwen-code/pull/12477
* fix(java): Make JDBC lease clocks timezone and storage safe by @doudouOUC in https://github.com/QwenLM/qwen-code/pull/12478
* fix(cli): hide external editor option when the configured editor is unavailable by @yiliang114 in https://github.com/QwenLM/qwen-code/pull/12498
* fix(review): Move trusted state outside workspaces by @doudouOUC in https://github.com/QwenLM/qwen-code/pull/12491
* docs(verify-pr): add persisted-state, steady-state and skip-coverage rules by @wenshao in https://github.com/QwenLM/qwen-code/pull/12456
* feat(channels): decouple group-member access from senderPolicy by @qwen-code-dev-bot in https://github.com/QwenLM/qwen-code/pull/12475
* fix(cli): report clipboard unavailability on Linux instead of failing silently by @yiliang114 in https://github.com/QwenLM/qwen-code/pull/12489
* fix(release): keep manifest layout when bumping versions by @yiliang114 in https://github.com/QwenLM/qwen-code/pull/12487
* fix(chrome-extension): make the store release fail where it can be read by @tanzhenxin in https://github.com/QwenLM/qwen-code/pull/12392
* docs(browser-use): point users at the Chrome Web Store listing by @tanzhenxin in https://github.com/QwenLM/qwen-code/pull/12510
* fix(cli): report clipboard unavailability when the native module throws by @yiliang114 in https://github.com/QwenLM/qwen-code/pull/12508
* feat(cli): Add managed runtime attestation worker by @doudouOUC in https://github.com/QwenLM/qwen-code/pull/12506
* fix(web-shell): keep mobile composer controls reachable above a soft keyboard by @wenshao in https://github.com/QwenLM/qwen-code/pull/12462
* fix(web-shell): open an ordinary task from New task in a Live chat by @qqqys in https://github.com/QwenLM/qwen-code/pull/12516
* fix(channels): one operator rule for shared sessions, with an explicit operators list by @qqqys in https://github.com/QwenLM/qwen-code/pull/12515
* feat(serve): restore serve.channels once for a workspace registered after boot by @qqqys in https://github.com/QwenLM/qwen-code/pull/12396
* feat(core): record when each tool call started by @qqqys in https://github.com/QwenLM/qwen-code/pull/12517
* docs(design): add Chinese translation of the memory pressure monitor design by @yiliang114 in https://github.com/QwenLM/qwen-code/pull/12521
* fix(core): Simplify system prompts and remove conflicting examples by @doudouOUC in https://github.com/QwenLM/qwen-code/pull/12360
* refactor(channels): move group senders into groups and resolve them per conversation by @qqqys in https://github.com/QwenLM/qwen-code/pull/12520
* fix(web-shell): keep New task from a Live chat off the Live context without a trusted primary by @qqqys in https://github.com/QwenLM/qwen-code/pull/12519
* fix(cli): scroll conversation on bare Up/Down in VP mode with empty input by @yiliang114 in https://github.com/QwenLM/qwen-code/pull/12518
* fix(vscode-ide-companion): stop sending unregistered client id on message-edit rewind by @yar3333 in https://github.com/QwenLM/qwen-code/pull/12502
* feat(cua): unify App workflows and fix no-Metal capture for SDK 0.20.11 by @LaZzyMan in https://github.com/QwenLM/qwen-code/pull/12386
* fix(dws): keep document threads and todos on the direct-message axis by @qqqys in https://github.com/QwenLM/qwen-code/pull/12525
* fix(serve): never hold a workspace registration on the channel-control lane by @qqqys in https://github.com/QwenLM/qwen-code/pull/12527
* feat(web-shell): trajectory overview strip showing where a run spent its time by @qqqys in https://github.com/QwenLM/qwen-code/pull/12524
* feat(web-shell): load the whole trajectory window before drawing it by @qqqys in https://github.com/QwenLM/qwen-code/pull/12533
* fix(web-shell): settle stale streaming messages when idle by @callmeYe in https://github.com/QwenLM/qwen-code/pull/12439
* fix(core): register session commits so the amend exemption is reachable by @yiliang114 in https://github.com/QwenLM/qwen-code/pull/12463
* feat(web-shell): add shared URL navigation for pages and sessions by @Lilian0122 in https://github.com/QwenLM/qwen-code/pull/12499
* feat(web-shell): edit group senders and session operators in the channel editor by @qqqys in https://github.com/QwenLM/qwen-code/pull/12535
## New Contributors
* @elizabethbrunette21 made their first contribution in https://github.com/QwenLM/qwen-code/pull/12279
* @yar3333 made their first contribution in https://github.com/QwenLM/qwen-code/pull/12502
**Full Changelog**: https://github.com/QwenLM/qwen-code/compare/desktop-v0.24.3...cua-driver-rs-v0.20.11