Skip to content

Add shared scanner defaults and per-area customisation - #804

Merged
enaboapps merged 13 commits into
mainfrom
codex/scanner-settings-801
Sep 20, 2026
Merged

enaboapps merged 13 commits into
mainfrom
codex/scanner-settings-801

Conversation

@enaboapps

@enaboapps enaboapps commented Sep 20, 2026 •

Copy link
Copy Markdown
Contributor

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.

  • Resolve each area's settings in the shared session and native frame; retain point line/grid controls and Remote parity.
  • Require manual navigation bindings whenever an area needs them, cancel live scans on settings changes, and preserve existing settings APIs and BLE protocol.
  • Preserve prediction timing, count reverse passes across empty prediction slots, and keep resume/error instructions above prediction availability warnings. Arriving predictions retain the reverse origin; stale suggestions wait for permitted movement, so replacement cannot bypass pass limits or move a paused scan.
  • Show effective point scanning mode on Home. Update the architecture guide with settings resolution and provider integration.
  • Redesign Scanning settings with shared Movement/Appearance defaults and Point/Menu/Keyboard summary cards. Focused area panels support direct edits, per-field default reset and area override reset; point-specific controls and word prediction live with their respective areas. Compact status/help, preset rate dropdown, responsive layouts and scroll/focus restoration replace the old override switches.

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 telemetry flush_shutdown_detects_reports_queued_during_handoff test; 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; typed qj into disposable TextEdit content (saved as Qj by 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 2a6b4af6a109833b184c72909e7b993eebfdb506 merges current main and is tree-identical to validated 5ff3382. Independent review confirmed the identical tree and main ancestry. All required CI checks passed on this head (run 35517229262) before merge.

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.
@enaboapps enaboapps added this to the v1.0.0-rc.13 milestone Sep 20, 2026
@enaboapps
enaboapps changed the base branch from codex/reusable-scanner to main September 20, 2026 14:40
@enaboapps
enaboapps marked this pull request as ready for review September 20, 2026 14:40
@enaboapps
enaboapps merged commit eac20ae into main Sep 20, 2026
6 checks passed
@enaboapps
enaboapps deleted the codex/scanner-settings-801 branch September 22, 2026 09:14
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 scanner defaults and per-area customisation

1 participant