Skip to content

fix(cua-driver): Windows e2e convergence (conv2 2/7) - #2180

Merged
f-trycua merged 5 commits into
mainfrom
codex/conv2-02-windows
Jul 12, 2026
Merged

fix(cua-driver): Windows e2e convergence (conv2 2/7)#2180
f-trycua merged 5 commits into
mainfrom
codex/conv2-02-windows

Conversation

@f-trycua

@f-trycua f-trycua commented Jul 12, 2026

Copy link
Copy Markdown
Collaborator

Summary

Second landing PR extracted from #2161, built on the typed evidence foundation in #2179.

  • converges Windows capture, UIA caching, keyboard/pointer injection, background delivery, and recording hooks
  • replaces the old UX guard/focus-monitor executable with typed cursor, launch, desktop-scope, WPF, WinUI3, WebView2, Electron, and Tauri harness coverage
  • makes run-rust-e2e.ps1 the canonical all-lanes Windows entrypoint and wires independent native, shared, and capture lanes into GitHub Actions
  • records every declared row as structured case/result data with source identity, side-effect oracles, trajectory JSON, screenshots when capture is available, and an owned MP4
  • removes every residual focus-monitor-win reference

This PR intentionally excludes macOS, Linux/Wayland, support docs, and the independent Docker/TypeScript sidecars. The extraction plan is documented on the frozen source branch.

What this fixes

  • background Windows actions no longer report success when Chromium or native controls did not receive the input
  • supported WPF, WinUI3, WebView2, Electron, and Tauri routes are verified through fixture state rather than driver return values alone
  • unsupported background keyboard, hotkey, scroll, drag, and occluded Chromium pointer shapes return typed, actionable refusals without focus, z-order, cursor, or leaked-input side effects
  • native and shared harnesses are built from repository source during the run; no downloaded desktop fixture binaries are used
  • window capture has GDI, WGC, and visible desktop-region fallbacks while preserving an honest unavailable result for minimized or non-capturable windows
  • minimized-window restore is validated with before/after UIA state and video even on the hosted runner where still-image capture remains unavailable after restore

Validation

Exact source: 6d7f02e447d5a4ff638e0828780d25a86f28f77e

  • Windows canonical E2E run 29211506624: all lanes and matrix summary passed
  • shared Electron + Tauri: 54 delivered, 18 exact refusals, 0 failed, 0 skipped
  • native WPF + WinUI3 + WebView2: 31 delivered, 3 exact refusals, 0 failed, 0 skipped
  • capture + desktop scope: 8 delivered, 0 refused, 0 failed, 0 skipped
  • total: 93 delivered, 21 exact refusals, 0 failed, 0 skipped across 114 rows
  • each row links an owned MP4 and trajectory in the uploaded lane artifact
  • Rust Windows compile/unit, Rust Linux compile/unit, Nix source, distro compatibility, docs sync, release reminder, and SPDX checks passed on the same head

Source: #2161.

@github-actions

Copy link
Copy Markdown
Contributor

📦 Publishable packages changed

  • cua-driver-rs

Add release:<service> labels to auto-release on merge (+ optional bump:minor or bump:major, default is patch).
Or add no-release to skip.

@f-trycua
f-trycua force-pushed the codex/conv2-02-windows branch from 60ad910 to 6fa00e5 Compare July 12, 2026 20:19
@github-actions

Copy link
Copy Markdown
Contributor

📦 Publishable packages changed

  • cua-driver-rs

Add release:<service> labels to auto-release on merge (+ optional bump:minor or bump:major, default is patch).
Or add no-release to skip.

@f-trycua
f-trycua force-pushed the codex/conv2-02-windows branch from 6fa00e5 to 1073e27 Compare July 12, 2026 20:22
@github-actions

Copy link
Copy Markdown
Contributor

📦 Publishable packages changed

  • cua-driver-rs

Add release:<service> labels to auto-release on merge (+ optional bump:minor or bump:major, default is patch).
Or add no-release to skip.

@f-trycua
f-trycua force-pushed the codex/conv2-02-windows branch from 1073e27 to bccb646 Compare July 12, 2026 20:52
@github-actions

Copy link
Copy Markdown
Contributor

📦 Publishable packages changed

  • cua-driver-rs

Add release:<service> labels to auto-release on merge (+ optional bump:minor or bump:major, default is patch).
Or add no-release to skip.

@f-trycua
f-trycua force-pushed the codex/conv2-02-windows branch from bccb646 to 3ed0a91 Compare July 12, 2026 21:11
@github-actions

Copy link
Copy Markdown
Contributor

📦 Publishable packages changed

  • cua-driver-rs

Add release:<service> labels to auto-release on merge (+ optional bump:minor or bump:major, default is patch).
Or add no-release to skip.

@github-actions

Copy link
Copy Markdown
Contributor

📦 Publishable packages changed

  • cua-driver-rs

Add release:<service> labels to auto-release on merge (+ optional bump:minor or bump:major, default is patch).
Or add no-release to skip.

@github-actions

Copy link
Copy Markdown
Contributor

📦 Publishable packages changed

  • cua-driver-rs

Add release:<service> labels to auto-release on merge (+ optional bump:minor or bump:major, default is patch).
Or add no-release to skip.

@github-actions

Copy link
Copy Markdown
Contributor

📦 Publishable packages changed

  • cua-driver-rs

Add release:<service> labels to auto-release on merge (+ optional bump:minor or bump:major, default is patch).
Or add no-release to skip.

@github-actions

Copy link
Copy Markdown
Contributor

📦 Publishable packages changed

  • cua-driver-rs

Add release:<service> labels to auto-release on merge (+ optional bump:minor or bump:major, default is patch).
Or add no-release to skip.

@github-actions

Copy link
Copy Markdown
Contributor

📦 Publishable packages changed

  • cua-driver-rs

Add release:<service> labels to auto-release on merge (+ optional bump:minor or bump:major, default is patch).
Or add no-release to skip.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants