Skip to content

Add a scannable mouse panel - #857

Merged
enaboapps merged 5 commits into
mainfrom
codex/856-scannable-mouse
Sep 23, 2026
Merged

enaboapps merged 5 commits into
mainfrom
codex/856-scannable-mouse

Conversation

@enaboapps

@enaboapps enaboapps commented Sep 23, 2026 •

Copy link
Copy Markdown
Contributor

Closes #856.

Adds a persistent two-page mouse scanner with eight-way movement, pointer actions, remote-style speed and monitor controls, direct switch entry, and keyboard handoff. Mouse movement now uses the Remote repeat calculation and saved interval, speed, and acceleration. The Remote-style pointer ring appears as soon as Mouse opens, stays visible throughout Mouse scanning even when the general overlay is disabled, and shows repeat and drag feedback. A switch press stops repeating movement and consumes its release. With repeat disabled, a direction moves one step and resumes scanning. Mouse drag is released on close, stop, disconnect, or action failure.

Validation:

  • Node 24: npm run lint, npm test, npm run build passed.
  • Rust 1.97.1: cargo fmt --manifest-path src-tauri/Cargo.toml --check, cargo clippy --manifest-path src-tauri/Cargo.toml --all-targets -- -D warnings, and cargo test --manifest-path src-tauri/Cargo.toml passed (510 tests, 1 ignored; 7 integration tests). New fake-adapter tests cover Remote repeat parity, one-step mode, switch-stop consumption, ring feedback, keyboard return, failure cleanup, and stale scan tokens.
  • Windows 11 Parallels ARM64 VM: built the corrected head 7477e2f as a native Tauri debug executable with Node 24.19.0 and Rust 1.97.1 (npm run tauri -- build --debug --no-bundle --target aarch64-pc-windows-msvc). With physical switch keys, opening Mouse showed the red pointer ring immediately. Selecting East repeated movement until the next switch press; the panel displayed “Moving pointer · Press any switch to stop”, the ring used Remote repeat feedback and followed the pointer, and scanning resumed afterward. With mouseRepeatEnabled=false, selecting East moved one 12-pixel step at 200% VM scaling and stayed in Mouse scanning. With cursorOverlayEnabled=false, the Mouse ring remained visible. Starting drag held the Windows left button and showed drag feedback in the ring; Stop released the button and removed both panel and ring. The earlier VM pass on this PR also exercised both Mouse entry points, all eight directions, clicks, scrolling, speed changes, keyboard return, click-through overlay, and stop cleanup in ordinary Notepad windows. Original VM settings were restored; the corrected build remains running.
  • VM limits: this VM exposed one monitor, so monitor navigation was covered by fake-adapter tests but not live multi-monitor input. No Android remote was connected, so remote disconnect was covered by fake-adapter tests rather than live VM input.
  • Independent review of the corrected latest head 7477e2f found no actionable issues.
  • Required PR CI passed on 7477e2f: frontend, dependency audit, macOS native, Windows native/NSIS and UI Access, CodeQL, and JavaScript/TypeScript analysis.

@enaboapps enaboapps added this to the v1.0.0-rc.16 milestone Sep 23, 2026
@enaboapps
enaboapps marked this pull request as ready for review September 23, 2026 11:56
@enaboapps
enaboapps marked this pull request as draft September 23, 2026 12:28
@enaboapps
enaboapps marked this pull request as ready for review September 23, 2026 13:01
@enaboapps
enaboapps merged commit 0c5a3bc into main Sep 23, 2026
6 checks passed
@enaboapps
enaboapps deleted the codex/856-scannable-mouse branch September 23, 2026 13:17
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.

Add a scannable mouse panel

1 participant