Repository navigation
Add shared scanner defaults and per-area customisation - #804
Merged
Merged
Conversation
Resolve compatible settings for point, menu and keyboard scanning, including timing, direction, passes, traversal and highlights. Preserve switch ownership and safe cancellation, and cover override persistence and reverse prediction traversal.
added 6 commits
September 20, 2026 11:31
2 tasks
enaboapps
marked this pull request as ready for review
September 20, 2026 14:40
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.
Add shared scanning defaults with optional overrides for point scanning, menus and the keyboard. Existing configurations retain their current movement, colour and three-pass behaviour. Users can customise automatic/manual movement, interval, initial direction, pass limits, grouped/linear item traversal and highlight thickness without changing global switch assignments.
#803 is merged; this PR now targets main. App/settings-screen scanning is out of scope; #802 is closed as not planned.
Validation:
Frontend lint, 158 frontend tests, 5 script tests and production build pass.
Rust format and Clippy pass; 471 Mac unit tests and 7 configuration tests pass, one intentionally ignored.
Windows ARM VM on
931f7b4(before removing the unused app-area settings): native source compiled; 469 unit tests pass, one intentionally ignored. One prior run failed the unchanged telemetryflush_shutdown_detects_reports_queued_during_handofftest; the complete rerun passed. All scanner tests passed on both runs.Mac VM on
fbd0e63(before the final pure prediction reconciliation fixes): inspected inheritance UI; verified green thick single-item menu highlights and red thick keyboard highlights; typedqjinto disposable TextEdit content (saved asQjby native capitalization), including mapped J without recursion; reverse navigation reached Close. With point/menu manual and keyboard automatic/reverse/one-pass, keyboard movement ran, suspended, and Select resumed without activation. That build visibly showed the resume HUD despite unavailable predictions.Windows interactive VM qualification: used Parallels Devices → Keyboard with temporary Insert/F1/F2 bindings to work around the computer-control mouse-coordinate error. Verified green thick linear menu, red thick linear keyboard, exactly-once repeated typing (
qq) into a disposable WinForms editor with preserved focus, reverse access to Close, and automatic grouped reverse scanning with one-pass suspension and Select-only resume. Live prediction replacement is present in the final reverse test.Mac VM settings restored byte-for-byte, temporary app stopped, VM returned to suspended. Windows settings restored byte-for-byte and previous Add offline word prediction to the scanning keyboard #796 app restarted; temporary test editor stopped. The signed host Mac app remained running and untouched.
UX head
e5c4d681febedd9ba728a92b5147132372419024: all required local frontend/Rust checks pass; independent latest-head review is clean. Regression tests cover navigation without saves, inherited values, individual/area resets, disabled-rate reset focus, scroll restoration and preservation of point/keyboard-specific settings.UX visual checks: light appearance in Mac VM at normal and compact window sizes; direct direction override and reset verified. Dark compact layout inspected in the browser preview. Final Windows ARM build launches, but computer-control clicks did not navigate its settings page, so native Windows layout/interactions remain unqualified. Both VMs restored to their prior settings/running states; no host Mac app interruption. All required CI checks pass on UX head
e5c4d68, including both native packages and Windows installer validation.Review fix
5ff33821b29dbcf7c2f783c30f9c2bc5e4926e02: opening an area scrolls its header and Back button into view even with help expanded; Back preserves the overview scroll position and card focus. Expanded-help regression passes, all required local frontend/Rust checks pass, and independent latest-head review is clean. Browser preview confirmed the visible header with expanded help. All required CI checks pass on this head, including Mac packaging, Windows UIAccess packaging and installer validation (run 35511215273).The original Windows mouse-control limitation was bypassed using Parallels virtual-key menu actions; it is no longer a customisation validation blocker. A subsequent foundation-only Windows run had unresolved typing/capture behaviour; #803 documents that remaining prerequisite gate. The user has explicitly instructed merging both scanner PRs with this qualification limitation documented. No release requested.
Closes #801.
Merge preparation: head
2a6b4af6a109833b184c72909e7b993eebfdb506merges current main and is tree-identical to validated5ff3382. Independent review confirmed the identical tree and main ancestry. All required CI checks passed on this head (run 35517229262) before merge.