Repository navigation
Add point scanning in Settings with reusable native scan logic - #729
Merged
Merged
Conversation
enaboapps
marked this pull request as ready for review
September 12, 2026 11:04
Greptile SummaryThe update moves point-scan configuration into Settings, extracts reusable scanning and desktop runtime behavior, and retains compatibility with existing point-scan configuration, commands, events, and persistence. Confidence Score: 5/5Safe to merge. There are no outstanding findings. Reviews (2): Last reviewed commit: "Preserve newer scan events across delaye..." | Re-trigger Greptile |
enaboapps
marked this pull request as draft
September 12, 2026 11:57
enaboapps
marked this pull request as ready for review
September 12, 2026 12:13
enaboapps
marked this pull request as draft
September 12, 2026 12:18
enaboapps
marked this pull request as ready for review
September 12, 2026 12:18
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.
Point scanning is available in Settings → Scanning, using keyboard-emulating switches connected directly to the computer. Line mode selects X then Y and clicks once; grid mode selects a row and cell first. Both support automatic movement, manual steps, Android speed presets, pause/resume and Escape cancellation.
Settings save automatically. The app shell owns pending edits so navigating between tabs or views preserves them and leaves scanning running. Enable waits for successful saves, errors retain edits with a retry action, and configuration is locked while enabled.
A reusable pure scanning core owns sessions, semantic actions, press/release handling, repeat suppression, bounded timing, pause/cancel/reset and cyclic traversal. Point scan implements the technique contract with typed point selections. A test-only item technique verifies reuse without pointer geometry. The generic desktop runtime owns shortcut registration, persistence, events and cleanup; native Windows/macOS hosts render shared frame strips. Point-specific adapters handle display discovery and final input activation.
The existing flat point-scan.json settings, Tauri commands and event payload shapes are preserved and covered by compatibility tests. Android connections stop local scanning, stale shortcut generations are rejected, and the existing input adapter checks for held modifiers and active input sessions before clicking. No production item scanner or keyboard integration is included. See docs/point-scan.md.
Closes #728.
Validation on Node 24.13.0 and Rust 1.97.1:
Manual validation remains for physical switch delivery, real desktop clicking/focus retention, mixed-DPI monitor alignment and macOS runtime behavior. No merge is requested.