用途
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。