• v0.7.0 882a3d57f6

    v0.7.0
    android-screenshots / screenshots (push) Successful in 2m12s
    windows-host / package (push) Successful in 6m43s
    android / android (push) Successful in 9m24s
    release / apple (push) Successful in 9m35s
    windows-msix / package (arm64, C:\Users\Public\ffmpeg-arm64, aarch64-pc-windows-msvc, C:\t-a64) (push) Successful in 1m8s
    apple / swift (push) Successful in 1m10s
    windows-msix / package (x64, C:\Users\Public\ffmpeg, x86_64-pc-windows-msvc, C:\t) (push) Successful in 1m7s
    windows / build (aarch64-pc-windows-msvc) (push) Successful in 50s
    windows / build (x86_64-pc-windows-msvc) (push) Successful in 53s
    linux-client-screenshots / screenshots (push) Successful in 1m41s
    apple / screenshots (push) Successful in 5m37s
    web-screenshots / screenshots (push) Successful in 2m37s
    audit / cargo-audit (push) Successful in 1m12s
    ci / web (push) Successful in 1m8s
    ci / docs-site (push) Successful in 1m22s
    ci / rust (push) Successful in 4m34s
    deb / build-publish (push) Successful in 3m0s
    ci / bench (push) Successful in 4m57s
    decky / build-publish (push) Successful in 12s
    flatpak / build-publish (push) Successful in 4m7s
    rpm / build-publish (bazzite, punktfunk-fedora-rpm) (push) Successful in 10m2s
    docker / deploy-docs (push) Successful in 22s
    docker / build-push (docs-site, docs-site/Dockerfile, punktfunk-docs) (push) Successful in 4s
    docker / build-push (ci, ci/rust-ci.Dockerfile, punktfunk-rust-ci) (push) Successful in 5s
    rpm / build-publish (fedora-44, punktfunk-fedora44-rpm) (push) Successful in 9m14s
    docker / build-push (ci, ci/fedora-rpm.Dockerfile, punktfunk-fedora-rpm) (push) Successful in 4s
    docker / build-push (., web/Dockerfile, punktfunk-web) (push) Successful in 4s
    docker / build-push (--build-arg FEDORA_VERSION=44, ci, ci/fedora-rpm.Dockerfile, punktfunk-fedora44-rpm) (push) Successful in 6s
    Stable

    enricobuehler released this 2026-07-03 22:45:57 +00:00 | 0 commits to main since this release

    Wire-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 the host portion 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 serve fails 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