Control PC scanning through remote forwarding - #750
Merged
Merged
Conversation
enaboapps
marked this pull request as ready for review
September 13, 2026 18:07
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.
Choosing the Switchify scanning forwarding profile now lets Switchify Remote control the existing PC point scanner and icon menus. Eight numbered remote slots are configured on PC, independently of local keys, using shared scan and hold settings. Remote exclusively owns scanning until stop/disconnect; PC Escape remains available.
The profile is opt-in through switchScanning capability and includeScanning catalog requests, preserving existing v1 clients. Remote edges use the gesture engine directly. Sessions use explicit ownership, bounded queues, neutral-state recovery and a five-second heartbeat timeout. Windows dispatch is serialized on the main thread. Stop completes drag cleanup before acknowledgement; failed releases block direct controls until retry succeeds.
Closes #749. Companion Remote PR: switchifyapp/switchify-remote#167.
Validation on Node 24 and Rust 1.97.1: frontend lint, 147 frontend tests, 5 Node tests and production build passed. Rust formatting check, Clippy all targets with warnings denied, 344 unit tests and 7 integration tests passed. Fake-input coverage includes failed drag cleanup, cancelled/resynchronized edges, stale ownership, queue bounds and timeout. Independent review of latest head 2ea3ca2 found no actionable issues after fixes. All latest-head CI checks passed, including Windows installer and macOS app/DMG builds, frontend, dependency audit and CodeQL.
Physical Android-to-Windows/macOS BLE, overlay and switch checks remain unverified. Only an Android emulator with the main Switchify app was available locally; no real desktop input was injected. Identities, release versions and existing forwarding settings are unchanged.