FXG Desk Windows - complete offline runtime

Install using the matching FXGDesk-Windows-*-Setup.exe, or extract the entire portable folder.
Run FXGDesk.exe. Do NOT copy only the executable to another PC.
The package includes Node, host-agent, native WebRTC module and the required VC runtime.
No npm install, system-wide Node installation or source checkout is needed.
Windows 10/11 x64 desktop; remote viewing uses the browser. HEVC hardware availability varies.

Online updating: the app checks its own release channel on launch and every 6 hours.
Click the upgrade button to download the complete package. Installation briefly ends remote access.
The app verifies HTTPS, exact byte size and SHA256 before closing, then installs into the same directory and restarts.
Settings/passwords/device identity remain outside the application directory.
For manual installation, fully exit the old GUI first. This installer never force-stops sharing.
First launch does not start sharing automatically; later launches restore your last sharing preference.
New devices receive a 6-digit code; existing 8-digit codes are preserved.
Wait for the server-confirmed code before connecting.
Access passwords require at least 6 characters (at most 256 UTF-8 bytes).
Device identity is created for the current Windows user, not bundled or shared between machines.
If registration fails, check the UI error, network connectivity and system date/time.
Offline runtime check: runtime\node.exe host-agent\launch.js --check

Playback: v6 encoder backpressure retained; v7 FPS/status switch included.
v8 holds the last displayed frame during temporary underruns and learns a bounded jitter cushion.
This is not a guarantee of no network stalls; frozen frames never renew control readiness.

Touch control (v9): tap once for left click; tap with two fingers for right click.
The right click is placed at the midpoint of the two initial contacts.
One-finger movement or holding starts a left-button drag.
Two-finger swipes, pinches, long holds and three-finger gestures do not click.
Touch gestures are cancelled on lost control, page hiding and stream replacement.

Settings/passwords/identity are not removed by uninstall. Existing server downloads remain available for rollback.
Build identity is displayed in the app and exported diagnostic logs.
This preview installer is unsigned; verify its SHA256 against the published manifest.

Unified Windows release (0.1.7+):
- Source-linked, in-process FRP is compiled into FXGDesk.exe. No frpc.exe or FRP DLL is required.
- Internet transport is selected in the GUI. Existing saved transport choices are preserved.
- FRP mode uses an authenticated memory Desk; it does not listen on local TCP 8787.
- The bundled Node/WebRTC runtime is for the optional legacy DataChannel transport only.
- Clipboard: explicit text send/read and remote PNG read/download. Not background monitoring.
- Clipboard HTTP access requires the authenticated session that currently owns control.
- Desktop audio: default playback-device loopback, AAC/fMP4. Disabled until explicitly enabled.
- Multi-viewer: at most 16 authenticated viewers and one input owner; spectators never auto-take control.
Use release.json or FXGDesk.exe --version-json to verify all compiled feature flags before distributing.

Installation/update behavior (0.1.8+ NSIS installer):
- Clicking Install requests the FXGDesk.exe in the selected installation folder to exit.
- The welcome/directory pages alone do not interrupt sharing.
- Current releases use local IPC; verified official 0.1.6/0.1.7 binaries use tray Quit.
- Sharing/input/FRP cleanup completes before executable files are replaced.
- There is a 30-second bounded wait. Hung apps, unknown legacy binaries, or locked
  runtimes stop installation without replacing the payload. No force-kill is used.
- Only the selected installation is targeted, not other portable copies by name.
- User settings, protected password, device identity and saved sharing intent are retained.
- Interactive installs leave Launch unchecked; silent updates restart via the update helper.
- Exit codes: 10 timeout, 11 unsupported legacy quit interface, 12 locked/inaccessible
  files or helper failure, 20 another installer/installation-guard failure.
- Shutdown log: %LOCALAPPDATA%\FXGDesk\updates\installer-shutdown.log
