docs(release): the 0.23.0 notes link to the docs site that exists
ci / rust (push) Canceled after 1m18s
ci / rust-arm64 (push) Canceled after 0s
ci / web (push) Canceled after 0s
ci / docs-site (push) Canceled after 0s
docker / builders (--build-arg FEDORA_VERSION=44, ci/fedora-rpm.Dockerfile, punktfunk-fedora44-rpm, -f44) (push) Canceled after 0s
docker / builders (ci/android-ci.Dockerfile, punktfunk-android-ci) (push) Canceled after 0s
docker / builders (ci/arch-ci.Dockerfile, punktfunk-arch-ci) (push) Canceled after 0s
docker / builders (ci/fedora-rpm.Dockerfile, punktfunk-fedora-rpm) (push) Canceled after 0s
docker / builders (ci/rust-ci-noble.Dockerfile, punktfunk-rust-ci-noble) (push) Canceled after 0s
docker / builders (ci/rust-ci.Dockerfile, punktfunk-rust-ci) (push) Canceled after 0s
docker / builders-arm64cross (push) Canceled after 0s
docker / apps (., web/Dockerfile, punktfunk-web) (push) Canceled after 0s
docker / apps (docs-site, docs-site/Dockerfile, punktfunk-docs) (push) Canceled after 0s
docker / deploy-docs (push) Canceled after 0s
ci / rust (push) Canceled after 1m18s
ci / rust-arm64 (push) Canceled after 0s
ci / web (push) Canceled after 0s
ci / docs-site (push) Canceled after 0s
docker / builders (--build-arg FEDORA_VERSION=44, ci/fedora-rpm.Dockerfile, punktfunk-fedora44-rpm, -f44) (push) Canceled after 0s
docker / builders (ci/android-ci.Dockerfile, punktfunk-android-ci) (push) Canceled after 0s
docker / builders (ci/arch-ci.Dockerfile, punktfunk-arch-ci) (push) Canceled after 0s
docker / builders (ci/fedora-rpm.Dockerfile, punktfunk-fedora-rpm) (push) Canceled after 0s
docker / builders (ci/rust-ci-noble.Dockerfile, punktfunk-rust-ci-noble) (push) Canceled after 0s
docker / builders (ci/rust-ci.Dockerfile, punktfunk-rust-ci) (push) Canceled after 0s
docker / builders-arm64cross (push) Canceled after 0s
docker / apps (., web/Dockerfile, punktfunk-web) (push) Canceled after 0s
docker / apps (docs-site, docs-site/Dockerfile, punktfunk-docs) (push) Canceled after 0s
docker / deploy-docs (push) Canceled after 0s
Both links pointed at https://punktfunk.unom.io/docs/... — the marketing host, which 404s (verified live; the docs site serves from docs.punktfunk.unom.io, as README.md has used throughout). The Updating link was the one a reader following the one-click update section would actually click. The echo link additionally pointed at the docs ROOT rather than the page it names; both now resolve to their real slugs, confirmed against docs-site/content/docs/{echo,updating}.md and by fetching them (200/200, vs 404 for the old host). Release body re-synced by body-only PATCH.
This commit is contained in:
@@ -6,7 +6,7 @@ This is a big release, and it pulls in four directions. **Latency:** Android pho
|
||||
|
||||
- **Your microphone has an off switch you can reach mid-stream.** Muting used to mean leaving the stream and switching the microphone off in Settings — an app-wide setting doing the job of a moment-to-moment one. Every client can mute now: **Ctrl+Alt+Shift+V** on Windows and Linux, **⌃⌥⇧A** or the HUD button on Mac, iPhone and iPad, and a tap on the pill (or **Select + Y** on a controller) on Android. A "Microphone muted" badge sits over the stream independently of the stats overlay, because "am I muted?" is not a statistic and the overlay is exactly what a player turns off — and on touch, tapping the badge is the way back. Muting is local and instant: the host is never asked and never told. It is per session and deliberately not remembered, so a mute you made three days ago never follows you into a call.
|
||||
|
||||
- **Echo cancellation, and a switch for it.** If you play through speakers, the host used to hear its own game audio coming back through your microphone. Every client now runs the microphone through the operating system's echo canceller by default — on Mac and iPhone that meant putting playback and capture on one engine so the voice processor can see both, and on Android it meant opening the microphone in the mode that keeps the phone's hardware canceller switched on. There is an **Echo cancellation** toggle beside the microphone setting on every platform if you want it off. A new [Why do I hear myself](https://punktfunk.unom.io/docs) page walks through the four different ways an echo loop can form and which switch stops each one.
|
||||
- **Echo cancellation, and a switch for it.** If you play through speakers, the host used to hear its own game audio coming back through your microphone. Every client now runs the microphone through the operating system's echo canceller by default — on Mac and iPhone that meant putting playback and capture on one engine so the voice processor can see both, and on Android it meant opening the microphone in the mode that keeps the phone's hardware canceller switched on. There is an **Echo cancellation** toggle beside the microphone setting on every platform if you want it off. A new [Why do I hear myself](https://docs.punktfunk.unom.io/docs/echo) page walks through the four different ways an echo loop can form and which switch stops each one.
|
||||
|
||||
- **Android streams reach the glass sooner.** The app used to hand each decoded frame to the screen the instant it appeared, so every frame inherited whatever jitter the network and decoder had just added, and bursts piled up behind the display. Frames are now scheduled onto the panel's own refresh. Measured end to end on a 120 Hz phone under game load: 43.7 ms down to 26.4 ms; on a second phone against a Linux host, 22–24 ms down to 14–18 ms. Two ingredients were plain bugs — Android quietly down-rates a game's frame callbacks to 60 Hz and then *reports* 60 Hz as the panel's rate, so the app was pacing a 120 fps session at half speed, and the panel was not being pinned to the stream's refresh at all. Under **Decoding** you can pick **Lowest latency** (the default) or **Smoothness**, matching the iPhone and Apple TV apps.
|
||||
|
||||
@@ -22,7 +22,7 @@ This is a big release, and it pulls in four directions. **Latency:** Android pho
|
||||
|
||||
- **A DualSense or DualShock 4 plugged into an Android phone behaves like a real one.** Over USB the app now talks to the pad directly: rumble, adaptive trigger effects, the lightbar and player LEDs, the gyro and the touchpad, on the DualSense, DualSense Edge and DualShock 4. Android offers no way to do any of this over Bluetooth, so USB is the route — plug the pad in and the app asks for permission the moment it appears rather than hiding the switch in Settings.
|
||||
|
||||
- **Updating the host is one click.** The Updates card grows an **Update now** button. On Windows it asks for your console password again (a remembered login should not be able to restart your PC), downloads the installer, checks it against the signed release manifest *and* its code signature, and runs it silently — the service restarts and the page reconnects by itself. If a freshly installed version ever crash-loops, the host puts the previous installer back on its own and tells you. On Linux the button is opt-in: `sudo usermod -aG punktfunk-update $USER` is the entire grant, and all it can ever do is run your own package manager's normal update for the Punktfunk packages from repositories you already trust. Fedora Silverblue-style installs stage the update and ask you to reboot; Arch additionally needs you to accept a full `pacman -Syu`, because a partial upgrade is how Arch boxes break. A Steam Deck on-device install gets the button with no opt-in at all. `PUNKTFUNK_UPDATE_APPLY=0` removes it entirely. Details on the [Updating the Host](https://punktfunk.unom.io/docs/updating) page.
|
||||
- **Updating the host is one click.** The Updates card grows an **Update now** button. On Windows it asks for your console password again (a remembered login should not be able to restart your PC), downloads the installer, checks it against the signed release manifest *and* its code signature, and runs it silently — the service restarts and the page reconnects by itself. If a freshly installed version ever crash-loops, the host puts the previous installer back on its own and tells you. On Linux the button is opt-in: `sudo usermod -aG punktfunk-update $USER` is the entire grant, and all it can ever do is run your own package manager's normal update for the Punktfunk packages from repositories you already trust. Fedora Silverblue-style installs stage the update and ask you to reboot; Arch additionally needs you to accept a full `pacman -Syu`, because a partial upgrade is how Arch boxes break. A Steam Deck on-device install gets the button with no opt-in at all. `PUNKTFUNK_UPDATE_APPLY=0` removes it entirely. Details on the [Updating the Host](https://docs.punktfunk.unom.io/docs/updating) page.
|
||||
|
||||
- **The Linux app can tell you it is out of date, and update itself.** `punktfunk-client --check-update` verifies the same signed release information the host does and reports what can be done on *your* kind of install; `--apply-update` does it. Where nothing on the box can install an update — a system extension, a Nix profile, a source build — it says so and gives you the command rather than a button that could only fail, and a check that *failed* reads as a failure rather than "up to date". The Steam Deck plugin now follows the client you actually launch, instead of offering updates only for the Flatpak and leaving every other kind silently stale.
|
||||
|
||||
|
||||
Reference in New Issue
Block a user