Skip to content

v2.2.0

Choose a tag to compare

@coddingtonbear coddingtonbear released this 31 Jul 02:49
· 12 commits to main since this release

2.2.0

Reliability: no more restarts after unplugging a receiver or changing networks

Previously, unplugging a receiver (moving a laptop, docking/undocking) or changing networks could silently break device switching until you restarted flow-server and/or flow-client. This release makes both recoverable:

  • Receivers now survive unplug/replug. A new supervisor watches every receiver on both the server and the client. When one drops off the bus, it re-runs discovery until the receiver returns (even on a different hidraw node, as usually happens after a replug), reopens it, re-resolves your devices by serial, and picks up right where it left off -- no restart needed.
  • A network blip can no longer kill or hang the client. Notification-listener threads survive failed server requests; every HTTP call now has a timeout; and the /events stream detects dead connections via the server's keepalives and falls back into the existing reconnect loop instead of blocking indefinitely.
  • Faster event handling under a slow network. Server requests triggered by device connect/disconnect events (leader reporting, clipboard sync) now run on a dedicated worker thread, so an unreachable server can't stall the processing of device events.

Other fixes

  • Connection notifications re-announced at startup are no longer missed: listeners now start before the receiver is asked to re-announce device state.