Repository navigation
fix(mcp): accept bounded signed pointer coordinates - #994
Conversation
|
🦞👀 Pull request received. I will update this pull request when review starts. ClawSweeper review completeClawSweeper finished reviewing this revision. The review result is being finalized. |
|
Codex review: needs maintainer review before merge. Reviewed October 7, 2026, 7:11 AM ET / 11:11 UTC (Revision 3). ClawSweeper reviewWhat this changesThe PR accepts bounded negative coordinates for MCP cursor moves and foreground drags, adds isolated regression coverage, and documents pointer and snapshot behavior. Merge readiness✅ Ready for maintainer review The fix remains necessary on current main, and no actionable introduced defect was found. The prior changelog blocker is resolved; this collaborator-authored PR has no additional review action beyond ordinary landing checks. Priority: P2 Review scores
Verification
How this fits togetherPeekaboo’s MCP pointer tools turn agent requests into macOS cursor movements and drags. They validate coordinates and foreground consent before passing requests to automation services. flowchart TD
A[Agent pointer request] --> B[MCP move or drag]
B --> C[Coordinate validation]
C --> D[Foreground consent or exact window guards]
D --> E[Automation service]
E --> F[Pointer delivery and response]
Before mergeNone. Agent review detailsSecurityNone. Review metrics
Root-cause clusterRelationship: Members:
Proposal only: this assessment does not dispatch repair, suppress jobs, mutate sibling items, close, or merge anything. Technical reviewBest possible solution: Use symmetric coordinate bounds in the existing MCP parsers while retaining foreground consent, exact-window isolation, and refusal before dispatch. Do we have a high-confidence way to reproduce the issue? Yes, from source: current-main parsers reject negative raw coordinates before dispatch, and the added handler tests cover those requests. This read-only review did not execute native tests. Is this the best way to solve the issue? Yes. Adjusting the existing numerical bounds is a focused repair, and the branch preserves the surrounding consent and targeting contracts. AGENTS.md: found and applied where relevant. Codex review notes: model internal, reasoning medium; reviewed against a12017c720ac. LabelsLabel changes: No label changes. Label justifications:
EvidenceWhat I checked:
Likely related people:
Rating scale
Overall follows the weaker of proof and patch quality. Workflow
History |
Accept signed global coordinates in MCP move and foreground drag while preserving magnitude bounds and target guards. Keep explicit test-context isolation, complete snapshot-detection replacement coverage, and motion/snapshot documentation. Rebase the reviewed candidate after the docs fixes and add its serialized Unreleased entry. The nine code, test, and documentation files remain byte-identical to the previously tested candidate. Co-authored-by: Rudy Mizrahi Celekli <47457359+rudycelekli@users.noreply.github.com>
7a6713b to
7f2037a
Compare
PR SummaryMedium Risk Overview Regression coverage adds Snapshot disk readback is documented and tested so a later complete detection overwrites prior dialog/truncation metadata (new test in Reviewed by Cursor Bugbot for commit 7f2037a. Bugbot is set up for automated code reviews on this repo. Configure here. |
Signed global coordinates were rejected by the MCP move and foreground drag handlers, even when they fit the existing coordinate magnitude limit. Accept signed coordinates for both paths while preserving the bounds and target/foreground guards, with exact recorded-delivery regression tests. This finishes the verified claim from #963 and retains contributor credit.
The original consolidation also covered #960, #970, #973 and #989. Those fixes have since landed separately on main; this branch has been reconciled and no longer duplicates their implementation. It keeps stronger explicit test-context isolation, complete-detection replacement coverage, and documentation of the now-landed motion and snapshot behavior.
Verification: the actual handlers reproduced signed-target refusals on main. The integrated candidate passed 69 native tests across nine Core/SDK suites at low priority with two build jobs. All 17 originally tested source/test/docs files match the reconciled branch byte-for-byte. Fourteen changed Swift files passed strict SwiftLint and nonmutating SwiftFormat; both the complete and narrowed diffs have clean independent P0–P2 reviews.
Native pointer delivery is recorded by test services; physical secondary-display input is not claimed. Snapshot tests use real SDK filesystem storage with synthetic data. No UI input was sent by these tests.
Rebased after #992 landed, with its serialized Unreleased entry added. The nine code/test/docs files in the current delta remain byte-identical to the previously tested candidate. Renewed independent review is clean through P2; final exact-head hosted CI is required before merge. No project release version changes.
Co-authored-by: Rudy Mizrahi Celekli 47457359+rudycelekli@users.noreply.github.com