Skip to content

Release v2.0.4: Sub-frame Input Precision, Wayland Stability, and WebRTC Quality Control

Choose a tag to compare

@github-actions github-actions released this 05 Jun 03:43

This release focuses heavily on competitive-grade input latency and bulletproofing the Linux host experience. By decoupling the input polling architecture and tapping directly into native Chromium APIs, Version 2.0.4 completely eliminates stream-ending deadlocks and guarantees zero-latency inputs for competitive fighting games.

Dedicated Input Fast-Lane (250Hz)
The entire controller and KBM polling pipeline has been rewritten to bypass the main WebSocket signaling channel, completely eliminating TCP Head-of-Line blocking during network congestion.

  • Sub-frame Precision: Inputs are now routed through a dedicated /ws/input fast-lane, allowing the polling rate to safely return to a blistering 250Hz (4ms). Games that require frame-perfect inputs (like JoJo's Bizarre Adventure: All-Star Battle R) will now feel identical to local couch co-op.
  • Decoupled State: Video frame drops or signaling hiccups will no longer cause delayed bursts of input commands.

Native Wayland & PipeWire Stability
The Linux screen capture pipeline has been fundamentally restructured to route around a highly destructive C++ thread deadlock buried inside Electron's IPC bridge.

  • Native OS Portal Invocation: By forcing the engine to use getUserMedia instead of desktopCapturer, Nearsec now natively hooks into Chromium's pristine PipeWire implementation.
  • Deadlock Eradication: Canceling the native OS screen picker no longer permanently freezes the host UI or crashes the underlying WebRTC engine.

WebRTC Quality & Congestion Control
The dynamic congestion monitor has been recalibrated to correctly respect user preferences regarding stream degradation.

  • True "Crisp" Mode: When prioritizing quality over latency, the network monitor will now enforce a strict 2.5 Mbps minimum floor. Instead of aggressively slashing the bitrate into a blurry mosaic during network lag, WebRTC will now correctly drop framerates to maintain a razor-sharp image.

Under the Hood

  • Host UI State Sync: Fixed a WebSocket bug where viewers' active controller slots would turn into "ghosts" if the host performed a Ctrl+R page refresh.
  • Windows Audio Failsafe: Rewrote the Windows fallback capturer to safely stitch Desktop Audio and Window Video together manually, preventing Chromium OverconstrainedError crashes when capturing specific applications.

Full Changelog: v2.0.3...v2.0.4