Skip to content

v0.1.106-preview

Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 19 Jul 16:46
· 37 commits to main since this release

This 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.

Full changelog

Compare v0.1.105-preview...v0.1.106-preview