SuperAPI AI 工具集

verify-cua-driver

测试与质量

查看项目

更新于 11-02 20:29

技能介绍

用途

verify-cua-driver 用于在 Cua Driver 驱动发生变更后,验证守护进程的桌面工具表面(daemon's desktop-tool surface),而不是 bench。它不会通过只走一条便利路径来认证所有映射入口点。使用前应先阅读 feature map。

该技能要求只使用一次性桌面环境:前台测试单元会主动移动焦点和输入。

主要能力

  • 在 Linux 上通过 X11 或嵌套 Wayland 运行验证。
  • 执行只读诊断(Doctor):探测无障碍总线、运行 cua-driver doctor --json、获取版本、预检 get_config、health_report、check_permissions。
  • 驱动真实 Electron fixture 应用,使用 AX 优先的操作,验证副作用。
  • 收集完整证据:MCP 请求与响应、轨迹、录屏、动作前后截图、fixture 独立日志、前台心跳、桌面观察信息。
  • 清理后调用 check-evidence.sh 校验证据完整性。

使用方式

从仓库根目录运行。使用 CI 工具链(Rust 1.97.1、Node 22),并安装 .github/workflows/e2e-rust-linux.yml 中的 Linux 依赖:

sudo apt-get update
sudo apt-get install -y --no-install-recommends \
  xvfb dbus-x11 at-spi2-core openbox picom python3-gi gir1.2-gtk-3.0 \
  libgtk-3-dev clang pkg-config libdbus-1-dev libpipewire-0.3-dev \
  libspa-0.2-dev libei-dev libx11-dev libxi-dev libxtst-dev libxext-dev \
  libwebkit2gtk-4.1-dev libssl-dev libxdo-dev \
  libayatana-appindicator3-dev librsvg2-dev ffmpeg jq x11-utils

运行 X11 验证:

CUA_E2E_RETRY_ONCE=0 .cursor/skills/verify-cua-driver/scripts/verify-linux.sh x11

复用已有构建:

timeout 1260 .cursor/skills/verify-cua-driver/scripts/verify-linux.sh x11 --no-build

嵌套 Wayland(需先安装 .github/workflows/e2e-rust-linux-wayland.yml 中的合成器依赖):

timeout 1260 .cursor/skills/verify-cua-driver/scripts/verify-linux.sh wayland --no-build

Doctor 诊断命令:

gdbus call --session --dest org.a11y.Bus --object-path /org/a11y/bus --method org.a11y.Bus.GetAddress
libs/cua-driver/rust/target/release/cua-driver doctor --json
libs/cua-driver/rust/target/release/cua-driver --version

驱动测试复用 libs/cua-driver/rust/crates/cua-driver-e2e/tests/cross_platform_behavior_test.rs,实际 MCP 工具序列为:

let windows = fixture.driver.call("list_windows", serde_json::json!({}));
let pre = snapshot(fixture);
let args = action_target_args(fixture, &pre, "border-click-target", "ax", "background");
let response = fixture.driver.call("click", args);

适用场景

  • 在驱动变更后验证 Cua Driver 守护进程的桌面工具路径。
  • 在 Linux X11 或嵌套 Wayland 环境中执行端到端验证。
  • 需要留存完整证据(MCP 流量、录屏、截图、fixture 日志)的验证流程。

限制

  • 只使用一次性桌面环境,前台测试单元会移动焦点和输入。
  • 不要附加到已安装的守护进程。
  • 不要使用 DOM setter、fixture 控制端点或直接写日志来让目标状态通过。
  • 不要粘贴数字句柄或在另一次快照后复用 token。
  • 不要按进程名匹配或杀死其他桌面。
  • 不要删除证据目录。
  • 权限报告不等于授权覆盖;canonical testkit 显式启用不受限 GUI 操作并绕过交互式批准。
  • Wayland 在此未经验证;X11 结果不能认证其捕获或输入路径。
  • macOS 和 Windows 未经验证。macOS 需要已安装的 TCC 授权守护进程和辅助功能/屏幕录制同意;Windows 需要交互式桌面、原生 UIA 和命名管道传输。
  • Linux X11 CI 证明在 .github/workflows/e2e-rust-linux.yml 的 verify-skill 任务中仍待完成;未声称有成功的 CI 运行。
  • 工具、fixture 标记、CI 通道或支持的输入路径变更时,使用 /maintain-verification-skill。