chore(release): bump workspace version to 0.22.1
android-screenshots / screenshots (push) Successful in 1m25s
audit / cargo-audit (push) Successful in 31s
audit / bun-audit (plugin-kit) (push) Successful in 12s
audit / bun-audit (sdk) (push) Successful in 13s
audit / bun-audit (web) (push) Successful in 12s
android / android (push) Successful in 5m37s
audit / pnpm-audit (push) Successful in 7s
audit / docs-site-audit (push) Successful in 13s
decky / build-publish (push) Successful in 23s
ci / rust-arm64 (push) Successful in 1m48s
ci / web (push) Successful in 1m4s
audit / license-gate (push) Successful in 5m21s
ci / docs-site (push) Successful in 2m57s
apple / swift (push) Successful in 4m36s
linux-client-screenshots / screenshots (push) Successful in 9m10s
ci / rust (push) Successful in 12m55s
sbom / sbom (push) Successful in 58s
deb / build-publish-client-arm64 (push) Successful in 5m47s
deb / build-publish-host (push) Successful in 5m38s
web-screenshots / screenshots (push) Successful in 5m54s
docker / builders-arm64cross (push) Successful in 6s
docker / builders (--build-arg FEDORA_VERSION=44, ci/fedora-rpm.Dockerfile, punktfunk-fedora44-rpm, -f44) (push) Successful in 25s
docker / builders (ci/android-ci.Dockerfile, punktfunk-android-ci) (push) Successful in 57s
docker / builders (ci/arch-ci.Dockerfile, punktfunk-arch-ci) (push) Successful in 7s
docker / builders (ci/fedora-rpm.Dockerfile, punktfunk-fedora-rpm) (push) Successful in 9s
docker / builders (ci/rust-ci-noble.Dockerfile, punktfunk-rust-ci-noble) (push) Successful in 9s
docker / builders (ci/rust-ci.Dockerfile, punktfunk-rust-ci) (push) Successful in 9s
docker / apps (., web/Dockerfile, punktfunk-web) (push) Successful in 1m46s
docker / apps (docs-site, docs-site/Dockerfile, punktfunk-docs) (push) Successful in 28s
docker / deploy-docs (push) Successful in 15s
deb / build-publish (push) Successful in 12m58s
arch / build-publish (push) Successful in 7m25s
windows-host / package (push) Successful in 10m27s
windows-host / winget-source (push) Skipped
windows-msix / package (arm64, C:\Users\Public\ffmpeg-arm64, --no-default-features, aarch64-pc-windows-msvc, C:\t-a64) (push) Successful in 2m18s
windows-msix / package (x64, C:\Users\Public\ffmpeg, , x86_64-pc-windows-msvc, C:\t) (push) Successful in 2m45s
windows / build (aarch64-pc-windows-msvc) (push) Successful in 2m50s
flatpak / build-publish (push) Successful in 5m3s
windows / build (x86_64-pc-windows-msvc) (push) Successful in 3m55s
rpm / build-publish (44, fedora-44, punktfunk-fedora44-rpm) (push) Successful in 15m56s
rpm / build-publish (43, bazzite, punktfunk-fedora-rpm) (push) Successful in 21m46s
release / apple (push) Successful in 25m28s
apple / screenshots (push) Canceled after 20m3s

Patch release: 0.22.0 shipped the wrong program as punktfunk-session (the
b0ea1e6b clobber), which broke connecting on the Windows and Linux clients.
This cut carries the restore, the CLI's self-documentation, and the CI gates
that run the shipped binaries.

Versions-only lock diff, hand-applied: the 30 workspace-member entries move
0.22.0 -> 0.22.1; the eight third-party gtk-rs crates that also sit at 0.22.0
(cairo/gdk-pixbuf/gio/graphene/pango) are untouched. `cargo metadata --locked`
exits 0 on the pinned toolchain. Release notes in docs/releases/v0.22.1.md
seed the release body per the Model-1 flow.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
2026-07-30 11:00:29 +02:00
co-authored by Claude Fable 5
parent a48321ee27
commit 152aac291e
3 changed files with 51 additions and 31 deletions
Generated
+30 -30
View File
@@ -947,7 +947,7 @@ dependencies = [
[[package]]
name = "cursor-probe"
version = "0.22.0"
version = "0.22.1"
dependencies = [
"anyhow",
"pf-capture",
@@ -1036,7 +1036,7 @@ dependencies = [
[[package]]
name = "display-disturb"
version = "0.22.0"
version = "0.22.1"
dependencies = [
"windows 0.62.2 (registry+https://github.com/rust-lang/crates.io-index)",
]
@@ -2221,7 +2221,7 @@ dependencies = [
[[package]]
name = "latency-probe"
version = "0.22.0"
version = "0.22.1"
[[package]]
name = "lazy_static"
@@ -2326,7 +2326,7 @@ dependencies = [
[[package]]
name = "libvpl-sys"
version = "0.22.0"
version = "0.22.1"
dependencies = [
"bindgen",
"cmake",
@@ -2361,7 +2361,7 @@ checksum = "0ceec5bc11778974d1bcb055b18002eba7f4b3518b6a0081b3af5f21666da9ad"
[[package]]
name = "loss-harness"
version = "0.22.0"
version = "0.22.1"
dependencies = [
"punktfunk-core",
]
@@ -2850,7 +2850,7 @@ checksum = "9b4f627cb1b25917193a259e49bdad08f671f8d9708acfd5fe0a8c1455d87220"
[[package]]
name = "pf-capture"
version = "0.22.0"
version = "0.22.1"
dependencies = [
"anyhow",
"ashpd",
@@ -2871,7 +2871,7 @@ dependencies = [
[[package]]
name = "pf-client-core"
version = "0.22.0"
version = "0.22.1"
dependencies = [
"anyhow",
"ash",
@@ -2896,7 +2896,7 @@ dependencies = [
[[package]]
name = "pf-clipboard"
version = "0.22.0"
version = "0.22.1"
dependencies = [
"anyhow",
"ashpd",
@@ -2914,7 +2914,7 @@ dependencies = [
[[package]]
name = "pf-console-ui"
version = "0.22.0"
version = "0.22.1"
dependencies = [
"anyhow",
"ash",
@@ -2935,7 +2935,7 @@ dependencies = [
[[package]]
name = "pf-encode"
version = "0.22.0"
version = "0.22.1"
dependencies = [
"anyhow",
"ash",
@@ -2959,7 +2959,7 @@ dependencies = [
[[package]]
name = "pf-ffvk"
version = "0.22.0"
version = "0.22.1"
dependencies = [
"ash",
"bindgen",
@@ -2968,7 +2968,7 @@ dependencies = [
[[package]]
name = "pf-frame"
version = "0.22.0"
version = "0.22.1"
dependencies = [
"anyhow",
"libc",
@@ -2980,7 +2980,7 @@ dependencies = [
[[package]]
name = "pf-gpu"
version = "0.22.0"
version = "0.22.1"
dependencies = [
"anyhow",
"pf-host-config",
@@ -2994,11 +2994,11 @@ dependencies = [
[[package]]
name = "pf-host-config"
version = "0.22.0"
version = "0.22.1"
[[package]]
name = "pf-inject"
version = "0.22.0"
version = "0.22.1"
dependencies = [
"anyhow",
"ashpd",
@@ -3027,14 +3027,14 @@ dependencies = [
[[package]]
name = "pf-paths"
version = "0.22.0"
version = "0.22.1"
dependencies = [
"tracing",
]
[[package]]
name = "pf-presenter"
version = "0.22.0"
version = "0.22.1"
dependencies = [
"anyhow",
"ash",
@@ -3049,7 +3049,7 @@ dependencies = [
[[package]]
name = "pf-vdisplay"
version = "0.22.0"
version = "0.22.1"
dependencies = [
"anyhow",
"ashpd",
@@ -3082,7 +3082,7 @@ dependencies = [
[[package]]
name = "pf-win-display"
version = "0.22.0"
version = "0.22.1"
dependencies = [
"anyhow",
"pf-paths",
@@ -3094,7 +3094,7 @@ dependencies = [
[[package]]
name = "pf-zerocopy"
version = "0.22.0"
version = "0.22.1"
dependencies = [
"anyhow",
"ash",
@@ -3302,7 +3302,7 @@ dependencies = [
[[package]]
name = "punktfunk-cli"
version = "0.22.0"
version = "0.22.1"
dependencies = [
"pf-client-core",
"punktfunk-core",
@@ -3313,7 +3313,7 @@ dependencies = [
[[package]]
name = "punktfunk-client-android"
version = "0.22.0"
version = "0.22.1"
dependencies = [
"android_logger",
"jni",
@@ -3329,7 +3329,7 @@ dependencies = [
[[package]]
name = "punktfunk-client-linux"
version = "0.22.0"
version = "0.22.1"
dependencies = [
"anyhow",
"async-channel",
@@ -3346,7 +3346,7 @@ dependencies = [
[[package]]
name = "punktfunk-client-session"
version = "0.22.0"
version = "0.22.1"
dependencies = [
"anyhow",
"pf-client-core",
@@ -3361,7 +3361,7 @@ dependencies = [
[[package]]
name = "punktfunk-client-windows"
version = "0.22.0"
version = "0.22.1"
dependencies = [
"async-channel",
"ffmpeg-next",
@@ -3381,7 +3381,7 @@ dependencies = [
[[package]]
name = "punktfunk-core"
version = "0.22.0"
version = "0.22.1"
dependencies = [
"aes-gcm",
"bytes",
@@ -3413,7 +3413,7 @@ dependencies = [
[[package]]
name = "punktfunk-host"
version = "0.22.0"
version = "0.22.1"
dependencies = [
"aes",
"aes-gcm",
@@ -3497,7 +3497,7 @@ dependencies = [
[[package]]
name = "punktfunk-probe"
version = "0.22.0"
version = "0.22.1"
dependencies = [
"anyhow",
"mdns-sd",
@@ -3511,7 +3511,7 @@ dependencies = [
[[package]]
name = "punktfunk-tray"
version = "0.22.0"
version = "0.22.1"
dependencies = [
"anyhow",
"ksni",
@@ -3534,7 +3534,7 @@ checksum = "d55d956fa96f5ec02be2e13af0e20391a5aa83d6a074e3ad368959d0fab299ea"
[[package]]
name = "pyrowave-sys"
version = "0.22.0"
version = "0.22.1"
dependencies = [
"bindgen",
"cmake",
+1 -1
View File
@@ -51,7 +51,7 @@ exclude = [
ndk = { path = "clients/android/native/vendor/ndk" }
[workspace.package]
version = "0.22.0"
version = "0.22.1"
edition = "2021"
rust-version = "1.82"
license = "MIT OR Apache-2.0"
+20
View File
@@ -0,0 +1,20 @@
Wire-compatible with 0.21.x and 0.22.0 — hosts are untouched by this release, and everything already paired keeps working.
**If you installed 0.22.0 on Windows or Linux, update now:** this fixes connecting, which 0.22.0 broke on exactly those clients. Coming from 0.21.0, you get everything 0.22.0 added — settings profiles, `punktfunk://` links, the `punktfunk` command, Gaming-Mode HDR — plus these fixes.
## Fixed
- **Connecting works again on Windows and Linux.** 0.22.0 accidentally shipped the wrong program as the piece that renders your stream. On Windows, every connect immediately bounced you back to the host list with no message; on Linux, the stream window simply never appeared. Mac, iPhone, iPad, Apple TV and Android were not affected. Nothing about how streams work has changed — 0.22.1 delivers what 0.22.0's notes promised.
- **A stream that can't start now tells you why.** If the stream window exits without reporting anything, the Windows client now shows its exit code instead of silently returning to your hosts — a broken install is a message, not a mystery.
## Improved
- **Every `punktfunk` command now explains itself.** `punktfunk help launch` — or `--help` after any command — prints that command's flags, what lands where, and what each exit code means, so a script author never has to read the source. `punktfunk help` still lists everything.
- **`punktfunk reachable` stopped scolding.** Probing an address you haven't saved is exactly what the command is for; it no longer suggests pairing first before answering.
## Under the hood (for developers)
- The 0.22.0 breakage: a stray copy of the GTK shell's sources landed in the session crate and overwrote its `main.rs` — the `[[bin]]` entry point — so `punktfunk-session` was built from the wrong file. On Windows that file's non-Linux arm is a three-line stub (exit 2, no stdout contract); on Linux it was the shell itself, whose `--connect` handling execs `punktfunk-session` — that is, itself. Every compile gate stayed green, because the wrong program compiled perfectly.
- CI now *runs* what it ships: an integration test spawns the built `punktfunk-session` against a refusing port and fails unless a stdout-contract line answers (proven against the 0.22.0 stub, which fails it); another runs `punktfunk` over its help surface. `punktfunk-cli` also joined the Windows build/clippy/fmt/test gates — it was packaged in the MSIX but only the release workflow ever compiled it.
- The Windows shell's `SpawnEvent::Exited` now carries the child's exit code; a nonzero exit with no contract line gets a banner naming it. Codes 0 (window closed) and 1 (our own kill) stay silent as before.
- No wire, ABI or driver changes: wire protocol 2, C ABI 13, Windows virtual-gamepad channel 3, virtual-display driver protocol 6 — identical to 0.22.0.