Skip to content

fix(cua-driver): preserve unavailable Windows UIA clicks - #3671

Merged
f-trycua merged 47 commits into
mainfrom
fix/windows-uia-unavailability-20260908
Sep 9, 2026
Merged

fix(cua-driver): preserve unavailable Windows UIA clicks#3671
f-trycua merged 47 commits into
mainfrom
fix/windows-uia-unavailability-20260908

Conversation

@f-trycua

@f-trycua f-trycua commented Sep 9, 2026

Copy link
Copy Markdown
Collaborator

Scope

Refs #3621. Preserve the distinction between a completed UIA hit-test miss and an unavailable UIA attempt during a Windows background pixel click.

  • Keep foreground and direct Chromium paths unchanged.
  • Keep PostMessage fallback for a genuine no-pattern or no-target miss.
  • Stop after an uncertain UIA activation instead of replaying it through another input transport.
  • Preserve the single-flight worker bound and cancellation.
  • Run deterministic click-routing and worker tests in Windows CI.

The separate recovery change in #3109 is now merged. This PR does not independently prove delivery without that recovery change.

Validation

The assembled candidate 43a332a66d8379b4fb9330c6a96f0654cc4afea1 contains the typed stack, #3109, this classification change, and #3672.

  • Native unit/compile: pass, including two pixel-routing tests, six UIA worker/outcome tests, 600 core tests, and 55 SDK tests.
  • Full Windows matrix: native 39 delivered/4 expected refusals; shared 62/22; capture 9/0. Zero failures or skips. Installer and matrix summary pass.
  • The unchanged WebView2 background pixel test advances its fixture counter from 2 to 3 through windows_uia_invoke, with focus, z-order, cursor, and input-leakage checks intact. The action result conservatively reports an unverifiable effect; independent fixture state confirms delivery.
  • Full Linux matrix and contracts/bindings pass on the same candidate.

These results name the cumulative candidate, not this patch alone. Ancestor updates must preserve the tested source; final current-head checks and review guards remain required.

Limits and rollback

Provider errors stop this UIA-dependent route conservatively. That can expose failures that previously looked like a successfully posted click. An unknown effect is not proof that no action occurred; inspect target state before another action.

One passing matrix does not rule out every intermittent provider stall. No release, image publication, deployment, or host installation is included. Roll back through a reviewed code revert, not by weakening the test oracle.

trycua-release[bot] and others added 30 commits July 23, 2026 13:46
# Conflicts:
#	libs/cua-driver/rust/crates/cua-driver-sdk/src/lib.rs
f-trycua and others added 15 commits September 8, 2026 19:22
Co-authored-by: Francesco Bonacci <195596869+f-trycua@users.noreply.github.com>
* fix(sandbox): bound typed Driver lifecycle and request deadlines

* fix(cua-driver): allow explicit unrestricted envelope sessions

* docs(sandbox): clarify launcher-selected Driver permissions

---------

Co-authored-by: Francesco Bonacci <195596869+f-trycua@users.noreply.github.com>
@f-trycua
f-trycua changed the base branch from fix/driver-envelope-mode-20260908 to feat/sandbox-typed-driver-20260907 September 9, 2026 03:08
@f-trycua
f-trycua marked this pull request as ready for review September 9, 2026 03:09
@f-trycua
f-trycua requested a review from injaneity as a code owner September 9, 2026 03:09
@f-trycua
f-trycua changed the base branch from feat/sandbox-typed-driver-20260907 to main September 9, 2026 03:14
@f-trycua
f-trycua requested a review from ddupont808 as a code owner September 9, 2026 03:14
@f-trycua
f-trycua merged commit 7b7db5f into main Sep 9, 2026
22 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant