From 152aac291ef16af9e602ecdabd7c66f808e72498 Mon Sep 17 00:00:00 2001 From: enricobuehler Date: Thu, 30 Jul 2026 11:00:29 +0200 Subject: [PATCH] chore(release): bump workspace version to 0.22.1 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 --- Cargo.lock | 60 ++++++++++++++++++++-------------------- Cargo.toml | 2 +- docs/releases/v0.22.1.md | 20 ++++++++++++++ 3 files changed, 51 insertions(+), 31 deletions(-) create mode 100644 docs/releases/v0.22.1.md diff --git a/Cargo.lock b/Cargo.lock index 7ed4153d..33b53ae3 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -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", diff --git a/Cargo.toml b/Cargo.toml index 2ae079dd..f730f97d 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -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" diff --git a/docs/releases/v0.22.1.md b/docs/releases/v0.22.1.md new file mode 100644 index 00000000..aa2f46be --- /dev/null +++ b/docs/releases/v0.22.1.md @@ -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.