v0.1.106-preview
Pre-releaseThis preview adds a lightweight security layer for trusted private networks,
reduces realtime packet overhead, standardizes Audio Relay on Opus, and includes
a broad set of provisioning, routing, Bluetooth, and Studio reliability
improvements.
Highlights
Lightweight control security
- Studio now creates a shared GhostInput installation identity while
provisioning and stores it in Windows Credential Manager. - Provisioned Hosts and Clients require challenge-response authentication for
management actions and stream-start requests. Studio and Clients authenticate
and renew short-lived access tokens automatically. - Reinstalling Studio on a new PC can recover the existing installation
identity from a provisioned Pi through the authenticated SSH provisioning
workflow. - Basic discovery endpoints remain available so Studio can find devices before
authenticating. - Authentication protects the control plane without adding encryption, larger
headers, or cryptographic work to latency-sensitive HID and audio packets.
GhostInput still belongs on a trusted private network and should not be
exposed directly to the internet.
Smaller and more responsive realtime streams
- Introduced the compact realtime protocol v2 for HID and audio traffic. Normal
packets use a 9-byte header, with timestamps included only when Studio Live
Preview requests latency measurements. - Audio settings are negotiated once when a stream starts rather than repeated
in every datagram, and the realtime control channel now uses a fixed compact
packet format. - Removed protocol fallback behavior: Hosts, Clients, and Studio explicitly
negotiate v2 and reject incompatible peers instead of silently mixing wire
formats. - Relative mouse movement is coalesced while preserving button ordering and
total movement, reducing stale movement queues and improving responsiveness
under backpressure. - Improved input batching and reporting terminology so expected state
coalescing is distinguished from harmful output drops. - HID and audio workers now run at elevated priority while discovery and API
work remain at normal priority.
Opus Audio Relay
- Audio Relay now uses a single Opus-based path for speaker/headphone and
microphone streaming. - Opus format details are negotiated when the stream starts, while packet-loss
concealment and optional in-band FEC provide recovery for transient network
loss. - Improved relay replacement handling so enabling, disabling, or changing an
Audio Relay request updates the Host runtime and telemetry without requiring
an additional Client service restart. - Improved jitter-buffer, playback, and stream-health reporting in Studio.
Provisioning and runtime reliability
- Provisioning progress automatically follows the newest step unless the user
takes control of the scrollbar. - Device reboot and final discovery refresh now remain part of one visible
progress flow. The progress indicator stays active through Updating Device
Status instead of appearing finished while Studio refreshes inventory. - The SSH password is cleared after every completed provisioning attempt.
- Added an optional Start with a clean GhostInput configuration provisioning
mode for removing existing routes and runtime settings while preserving the
installation identity, networking, hostname, and Bluetooth pairings. - Provisioning and standalone service installation now disable Wi-Fi power
saving by default to reduce wireless latency and packet loss. The setting can
still be changed from the device Network page. - Empty virtual joysticks no longer prevent the Client profile runtime from
starting. - Studio now distinguishes recovered health from historical transient errors
instead of leaving an otherwise healthy stream permanently flagged.
Device discovery and Studio polish
- Device Routing refreshes relevant Host inventories while the page is active,
allowing connected, removed, or newly available devices to resolve routes
without restarting a service. - Known sleeping Bluetooth controllers can remain available for route
selection, while GhostInput Bluetooth peripherals are excluded from Host
pairing results. - Improved offline detection so stale Client and Host details are not presented
as though the device were still connected. - Refreshed warning accents for clearer contrast in both light and dark themes.
- Increased the main window minimum size to prevent dense routing and device
management layouts from becoming unusably compressed. - Studio now displays the installed release notes after completing an in-app
update. - Refreshed the README introduction and supporting documentation for the
current security, protocol, Audio Relay, and provisioning behavior.
Upgrade notes
Realtime protocol v2 is intentionally not backward compatible. Update Studio
and its bundled Host and Client payloads together; older Hosts or Clients must
be updated before they can start streams with this release.
Reprovisioning or updating existing Pis is recommended so they receive the
installation identity, current service scripts, runtime priorities, and Wi-Fi
defaults. Devices without a provisioned identity remain reachable for migration
but do not receive the new control authentication until updated.
GhostInput control APIs continue to use HTTP, and realtime UDP traffic is not
encrypted. Run GhostInput only on a private network you trust and do not expose
its ports directly to the internet.