-
v0.8.4
Stableapple / swift (push) Successful in 1m12saudit / cargo-audit (push) Successful in 27saudit / bun-audit (push) Successful in 15sci / web (push) Successful in 52sci / docs-site (push) Successful in 1m16swindows / build (aarch64-pc-windows-msvc) (push) Successful in 49sci / bench (push) Successful in 4m45swindows / build (x86_64-pc-windows-msvc) (push) Successful in 55sapple / screenshots (push) Successful in 5m55sci / rust (push) Successful in 11m23sandroid-screenshots / screenshots (push) Successful in 2m37swindows-host / package (push) Successful in 7m37swindows-msix / package (arm64, C:\Users\Public\ffmpeg-arm64, aarch64-pc-windows-msvc, C:\t-a64) (push) Successful in 1m15srelease / apple (push) Successful in 9m2swindows-msix / package (x64, C:\Users\Public\ffmpeg, x86_64-pc-windows-msvc, C:\t) (push) Successful in 1m12sandroid / android (push) Successful in 10m53sarch / build-publish (push) Successful in 9m4sdecky / build-publish (push) Successful in 26sdocker / build-push (--build-arg FEDORA_VERSION=44, ci, ci/fedora-rpm.Dockerfile, punktfunk-fedora44-rpm) (push) Successful in 5sdocker / build-push (., web/Dockerfile, punktfunk-web) (push) Successful in 5sdocker / build-push (ci, ci/fedora-rpm.Dockerfile, punktfunk-fedora-rpm) (push) Successful in 4sdocker / build-push (ci, ci/rust-ci.Dockerfile, punktfunk-rust-ci) (push) Successful in 2m26sdocker / build-push (docs-site, docs-site/Dockerfile, punktfunk-docs) (push) Successful in 4sflatpak / build-publish (push) Successful in 4m42sdeb / build-publish (push) Successful in 10m29slinux-client-screenshots / screenshots (push) Successful in 6m36srpm / build-publish (43, bazzite, punktfunk-fedora-rpm) (push) Successful in 10m41sweb-screenshots / screenshots (push) Successful in 2m44sdocker / deploy-docs (push) Successful in 20srpm / build-publish (44, fedora-44, punktfunk-fedora44-rpm) (push) Successful in 10m2sreleased this
2026-07-08 13:20:22 +00:00 | 3 commits to main since this releaseWire-compatible with 0.8.x — existing pairings and clients keep working.
Reconnect reliability — the "host shows Offline" fix
Reconnecting to a saved host that had stopped advertising on the LAN — but was still perfectly reachable over Tailscale / a VPN / another subnet — could fail outright, with the host tile stuck on "Offline" and no connection attempt reaching the host at all. The cause: the client's presence indicator and its connect action shared the same LAN-only mDNS check, so once a host's Wake-on-LAN MAC had been learned, every reconnect was diverted into a "wake and wait for it to reappear on mDNS" loop that a routed host can never satisfy.
All clients now dial first: the connection is attempted immediately (a wake packet still goes out up front, harmless if the host is already awake), and only a failed dial falls back to the visible "Waking…" wait. A genuinely sleeping machine on your LAN is still woken and reconnected; a remote host over Tailscale simply connects. Fixed on the macOS/iOS/tvOS, Windows, Linux, and Android clients.
Host
- Deliberate disconnect tears the virtual display down immediately (Windows). On a user-initiated quit (⌘D / the disconnect chord), the pf-vdisplay virtual monitor is now released at once instead of lingering — so an immediate reconnect gets a clean fresh display rather than racing the old one's teardown.
keep_alive = forever(the gaming-rig preset) still keeps the screen alive — a deliberate quit skips only the linger window, never a pinned display (corrected on both Windows and Linux). - Crashes are no longer silent. Panics are now teed into the web console's Logs tab (and the host log) with a backtrace, a last-resort Windows handler names the faulting module when a GPU driver/runtime crashes underneath us, and a watchdog flags a wedged display teardown — so the "it went down with nothing in the logs" class of report finally leaves evidence.
- Lower-latency input. Pointer motion is applied the moment it arrives rather than waiting for the next input tick.
- Steam Deck controller on Windows. A connected Steam Deck now folds to a DualSense on Windows hosts, with split-pad touch and trackpad clicks; trackpad Y is carried in screen convention and flipped at the Deck boundary.
Clients
- Presenter (Linux/session): switches to MAILBOX presentation for lower-latency, tear-free frames, pushes HDR10 mastering metadata through, tags HDR honestly, and orders the frame layout transition after the decode semaphore. The Linux session opts into RADV Vulkan Video decode at start.
- Gamepad rumble accepts the v2 vibration valid-flag and bounds a stale buzz to 1.5 s, so a dropped rumble packet can't leave a controller humming.
- Android gains a tiered stats HUD with windowed lost / skipped / FEC counters.
- Windows surfaces the stream shortcuts on a Help screen and exits fullscreen when the stream stops.
Core
- The QUIC datagram send buffer is capped so audio and rumble are latest-wins under backpressure — no queue of stale audio/haptics building up behind a congested link.
Downloads
- Deliberate disconnect tears the virtual display down immediately (Windows). On a user-initiated quit (⌘D / the disconnect chord), the pf-vdisplay virtual monitor is now released at once instead of lingering — so an immediate reconnect gets a clean fresh display rather than racing the old one's teardown.