fix(cua-driver): isolate screenshot transforms between clients - #3628
Closed
injaneity wants to merge 3 commits into
Closed
fix(cua-driver): isolate screenshot transforms between clients#3628injaneity wants to merge 3 commits into
injaneity wants to merge 3 commits into
Conversation
Refs #1882. Establish shared session-owned resize storage before wiring platform adapters.
Refs #1882. Wire capture, pointer consumers, lifecycle cleanup, and common missing-context refusal. Extend the canonical AppKit pixel row with independent-client capture interference.
Add a second unrecorded connection to the same test daemon for AppKit, WPF, and supported GTK3 pixel rows. Fix the Windows zoom resize consumer found by native CI. Document remaining compositor refusal-precedence validation.
10 tasks
Collaborator
Author
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Superseded by issue #3630
At maintainer request, this work has moved to #3630 as a defect/evidence record for architectural review alongside RFC #3473 and active PR #3616. This prototype is closed without merging. Its branch and commits are retained for regression-test reuse and provenance; do not treat the session-registry design or its refusal changes as approved. The validation below is the historical prototype record, not a current readiness claim.
Scope
Refs #1882. This draft fixes cross-client screenshot transform interference, rather than claiming that the metadata/documentation issue is fully resolved. It does not introduce image-token machinery or supersede RFC #3473 / PR #3616.
Current head:
21fad867081f6b69d91418c39572aededdbace22.Confirmed defect
Two persistent MCP clients captured the same unchanged 1470×932-point disposable AppKit window using installed macOS cua-driver 0.23.2. Client A requested a 200×127 image; client B requested native resolution. A clicked the same image coordinate
(99.5, 62.5)throughout:(731.325, 459.375)(99.5, 62.5)(731.325, 459.375)The receiver's mouse events, not the driver's unverifiable action response, are the oracle. Window geometry and backing scale remained unchanged. The baseline binary SHA-256 was
67ccfc99e69ebb5881fdfc3787d85abcd8cc2beb7423f255549557623cab6907; its reported source SHA was null. This is installed-version diagnostic evidence, not exact-main or candidate certification. No existing user browser tabs were targeted.Implementation
screenshot_context_missing, rather than borrowing another client's transform or guessing native pixels.sessionusage. Unnamed one-shot CLI calls cannot retain screenshot context across processes.Validation so far
cargo test -p cua-driver-core --locked: 620 passed (615 library, 5 integration); one documentation test ignored. Rerun against the final local source before the latest commit.cargo test -p platform-macos --lib --locked: 365 passed, 2 ignored, atdfd15de01f00b85d3685aba9039e5529ffcd5acc. The subsequent product diff is a Windows-only zoom call-site correction; remaining changes are tests/testkit/docs.cargo test -p cua-driver-testkit --lib --locked: passed after adding the peer-connection helper.Readiness blockers / boundaries
A later capture in the same session still replaces that session's previous transform. This draft does not claim image-ID freshness, window/display-change invalidation, zoom-context ownership, or every recording-rendering alignment case.
screenshot_scaleretains its existing native-backing-scale meaning.The PR remains draft and must not be treated as merge-ready or exact-candidate desktop-certified.