Skip to content

Spike: native Mac and Windows keyboard predictions #797

Closed as not planned
Closed as not planned

Description

@enaboapps

Prototype native word prediction in the Mac and Windows scanning keyboard, using native results by default and the existing database as fallback. Depends on #795 / #796; keep delivery in a separate draft PR until spike findings are reviewed.

Use NSSpellChecker completion with surrounding text and prefix ranges on Mac, and TextPredictionGenerator on Windows. Prefer UK English; retry US English on Windows when UK yields no usable results, and generic English on Mac if UK is unavailable. Preserve ranking, bound/filter candidates, retain suffix-only insertion and context/cancellation safeguards. Native timeout/failure/empty results fall back to the database within the existing two-second worker deadline. No saved schema, BLE or cloud-service changes.

Validate fake provider ranking/filtering/fallback/deadlines/cancellation/locale retry/exactly-once insertion; stable scanning and repeated predictions; synthetic comparisons and native switch typing in both VMs, including offline, protected fields, selections and focus changes. Restore VM state and leave the local signed Mac app untouched. Run frontend/Rust checks, independent latest-head review and CI. No merge or release is authorized.

Spike findings

Draft #798 is stacked on #796. Measured results and reproduction include 120 successful synthetic native requests across both VMs online/offline, with no fallback in that sample. Native-first generation, bounded helper cleanup and fake-provider coverage are implemented.

Production qualification remains blocked: Mac switch-driven letters, Space and Close work, but TextEdit's suggestion row remained empty; the shared context/worker/provider path has not yet been isolated. Windows interactive computer control was unreliable even with Switchify stopped. Live suggestion acceptance, row timing and the full protected/focus/selection matrix are not passed. Keep both providers experimental and the PR draft. VM settings/networks were restored; the signed local Mac app was untouched.

Activity

  1. added this to the v1.0.0-rc.13 milestone on Sep 19, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions