-
v0.7.0
Stableandroid-screenshots / screenshots (push) Successful in 2m12swindows-host / package (push) Successful in 6m43sandroid / android (push) Successful in 9m24srelease / apple (push) Successful in 9m35swindows-msix / package (arm64, C:\Users\Public\ffmpeg-arm64, aarch64-pc-windows-msvc, C:\t-a64) (push) Successful in 1m8sapple / swift (push) Successful in 1m10swindows-msix / package (x64, C:\Users\Public\ffmpeg, x86_64-pc-windows-msvc, C:\t) (push) Successful in 1m7swindows / build (aarch64-pc-windows-msvc) (push) Successful in 50swindows / build (x86_64-pc-windows-msvc) (push) Successful in 53slinux-client-screenshots / screenshots (push) Successful in 1m41sapple / screenshots (push) Successful in 5m37sweb-screenshots / screenshots (push) Successful in 2m37saudit / cargo-audit (push) Successful in 1m12sci / web (push) Successful in 1m8sci / docs-site (push) Successful in 1m22sci / rust (push) Successful in 4m34sdeb / build-publish (push) Successful in 3m0sci / bench (push) Successful in 4m57sdecky / build-publish (push) Successful in 12sflatpak / build-publish (push) Successful in 4m7srpm / build-publish (bazzite, punktfunk-fedora-rpm) (push) Successful in 10m2sdocker / deploy-docs (push) Successful in 22sdocker / build-push (docs-site, docs-site/Dockerfile, punktfunk-docs) (push) Successful in 4sdocker / build-push (ci, ci/rust-ci.Dockerfile, punktfunk-rust-ci) (push) Successful in 5srpm / build-publish (fedora-44, punktfunk-fedora44-rpm) (push) Successful in 9m14sdocker / build-push (ci, ci/fedora-rpm.Dockerfile, punktfunk-fedora-rpm) (push) Successful in 4sdocker / build-push (., web/Dockerfile, punktfunk-web) (push) Successful in 4sdocker / build-push (--build-arg FEDORA_VERSION=44, ci, ci/fedora-rpm.Dockerfile, punktfunk-fedora44-rpm) (push) Successful in 6sreleased this
2026-07-03 22:45:57 +00:00 | 0 commits to main since this releaseWire-compatible with 0.6.x — existing pairings and clients keep working.
Audio — mic passthrough rebuilt
- The virtual microphone is now eager and self-healing on both Linux and Windows hosts. It opens at host start (games bind capture devices at launch), self-heals when the backend dies (PipeWire restart, Windows endpoint churn — the node is back in ~0.5 s), and ages out stale buffered audio. Before this, the first device change silently killed mic passthrough for the rest of the host's life.
- Windows mic crackling fixed. The WASAPI virtual mic gained a priming jitter buffer (prime → hold → re-prime): clients deliver mic audio in bursts while the device pulls per-period, so without a cushion most periods inserted mid-stream silence. Validated gapless live.
- Apple client captures the correct channel of a multi-channel input mic (with diagnostics), instead of folding it wrong.
Stats — host vs. network latency, split per frame (phase 2)
- Every client HUD now shows the latency headline broken into
= host + network + decode + display, with thehostportion measured per-frame via a new host-timing plane (0xCF) instead of estimated. You can finally see whether a laggy stream is the host or the link. - One unified stats vocabulary across all five clients, plus a direct Moonlight/Sunshine comparison matrix in the docs.
Linux client
- Console-style gamepad library launcher (
--browse): a controller-driven coverflow of your host's games with corridor tilt, spring-physics motion, and menu rumble — launch straight into a game from the couch. - Steam Deck Game Mode fixes: automatic pad-type resolution to the virtual Deck pad, real chrome-less fullscreen (no more title bar over the stream), leave-to-Gaming-Mode on session end, and colour-accuracy controls for the Deck's off-colors.
Steam Deck (Decky plugin)
- Pinned-games library — pin a host's games as one-tap QAM "Games" rows.
- More robust in-plugin self-update, a visible branded Steam shortcut, and gamepad tab-navigation fixes.
Windows host — reliability
A large IDD-push hardening batch: recovery from virtual-display driver death, a compose kick so an idle desktop / lock screen no longer fails the capture attach, a correct second-host guard (a second
servefails cleanly instead of fighting for the display), self-heal of an orphaned virtual-display device, and pf-vdisplay robustness (adapter-init gate, pooled-device TDR check, optional MMCSS worker). Plus AMF encode latency/quality tuning, opt-in size-capped driver/service logs, a proper "Punktfunk Host" identity in Task Manager, and finished firewall Public-network opt-in wiring + a vulnerability-disclosure doc.Android
- Snapdragon latency tuning: ADPF pipeline hints, game-mode signaling, and max-clock decode for lower, steadier glass-to-glass latency.
Release engineering
- Release versions are now derived from git tags (single source of truth). Canary is always exactly one minor ahead of the latest release with zero maintenance — no more hand-maintained per-workflow version numbers drifting (which had shown a canary on TestFlight as an older version than the published release).
- Fixed the Flatpak stable install (
No such ref …/stable): the shared OSTree repo summary was being clobbered to a single channel on every canary build; it now always advertises both stable and canary.
Install and upgrade instructions per platform: https://punktfunk.unom.io/docs/install — channel details: https://punktfunk.unom.io/docs/channels
The app-store builds (Apple TestFlight, Google Play alpha) are uploaded to their testing tracks and promoted manually.
Downloads