Files
trycua--cua/libs/cua-driver/docs/linux-desktop-validation.md
wehub-resource-sync 91e75e620b
CI: cua-driver distro-compat matrix / debian:12 (glibc 2.36) (push) Has been cancelled
CI: SPDX Headers / Check SPDX headers (warn-only) (push) Has been cancelled
CD: Docs MCP Server / build (linux/amd64) (push) Has been cancelled
CD: Docs MCP Server / build (linux/arm64) (push) Has been cancelled
CD: Docs MCP Server / merge (push) Has been cancelled
CI: cua-driver distro-compat matrix / Resolve release version (push) Has been cancelled
CI: cua-driver distro-compat matrix / fedora:41 (glibc 2.40) (push) Has been cancelled
CI: cua-driver distro-compat matrix / rockylinux:9 (glibc 2.34) (push) Has been cancelled
CI: cua-driver distro-compat matrix / ubuntu:22.04 (glibc 2.35) (push) Has been cancelled
CI: cua-driver distro-compat matrix / ubuntu:24.04 (glibc 2.39) (push) Has been cancelled
CI: cua-driver distro-compat matrix / Distro compat summary (push) Has been cancelled
CI: Rust Linux unit / Rust Linux unit and compile (push) Has been cancelled
CI: Rust Windows unit / Rust Windows unit and compile (push) Has been cancelled
CI: Nix Linux Rust source / Nix / compositor build (push) Has been cancelled
CI: Nix Linux Rust source / Nix / driver package (push) Has been cancelled
CI: Nix Linux Rust source / Nix / Rust unit tests (push) Has been cancelled
chore: import upstream snapshot with attribution
2026-07-13 13:03:19 +08:00

2.7 KiB

Linux representative desktop validation

Hosted CI owns the canonical Xvfb/Openbox and headless Sway environments. Some contracts require a real user desktop and therefore run only when a maintainer explicitly provisions the corresponding environment.

Environments

Environment Required evidence Current status Preflight
GNOME/Mutter WinRects geometry and activation, portal/libei input, portal recording, and shared renderer apps Native GTK behavior, capture, and desktop scope are accepted; shared renderers and portal video remain open Wayland user session, enabled WinRects helper, and portal grant
KDE/KWin KWin-specific activation and portal behavior Plasma 6 session startup, GTK AT-SPI discovery, and portal interfaces were observed; no behavioral matrix is accepted Plasma/KWin 6 Wayland session; Plasma 5.27 is rejected
Real Xorg MPX/uinput behavior that Xvfb cannot provide Not yet validated Non-Wayland Xorg session with /dev/uinput access
DRM/EGL renderer Representative WebKitGTK/Tauri accessibility tree Not available on the hosted Sway or representative desktop hosts used so far A real /dev/dri/renderD128; software-only headless rendering is rejected

Source ownership

The host checkout is the only checkout that commits or pushes. Sync it with:

libs/cua-driver/scripts/sync-vm-worktree.sh push user@host '~/cua'

The sync writes .cua-e2e-source-sha after transferring the worktree. The canonical preflight validates that marker when the VM intentionally has no .git directory, so reports still identify the exact host commit.

Run

Start the command from the graphical user's systemd user manager or an equivalent terminal inside that user's session. The wrapper rejects the wrong desktop generation before building fixtures.

scripts/ci/linux/run-rust-e2e-desktop.sh gnome
scripts/ci/linux/run-rust-e2e-desktop.sh kde
scripts/ci/linux/run-rust-e2e-desktop.sh xorg

The default is the complete canonical matrix. CUA_E2E_INTERNAL_LANE and CUA_E2E_HARNESS_FILTER remain diagnostic/maintainer controls; they do not define a second catalog.

Evidence acceptance

Behavioral acceptance requires typed rows, the exact source SHA, independent fixture-state or refusal evidence, and every action-specific desktop oracle. A representative result without reporter-owned per-cell video may establish that behavior, but it is recorded as lacking full evidence parity.

Full hosted parity also requires the Markdown summary, screenshots, trajectories, and per-cell videos enforced by the reporter. Record accepted behavior and any evidence-parity gap in action-support.md. A setup failure is an environment error, never a smaller green matrix.