966758e757
apple / swift (push) Successful in 1m11s
audit / cargo-audit (push) Successful in 27s
audit / bun-audit (push) Successful in 17s
ci / web (push) Successful in 53s
ci / docs-site (push) Successful in 1m4s
ci / bench (push) Successful in 5m1s
windows / build (aarch64-pc-windows-msvc) (push) Successful in 55s
windows / build (x86_64-pc-windows-msvc) (push) Failing after 26s
windows-host / package (push) Failing after 9s
windows-msix / package (arm64, C:\Users\Public\ffmpeg-arm64, aarch64-pc-windows-msvc, C:\t-a64) (push) Failing after 9s
windows-msix / package (x64, C:\Users\Public\ffmpeg, x86_64-pc-windows-msvc, C:\t) (push) Failing after 8s
release / apple (push) Successful in 9m37s
apple / screenshots (push) Successful in 6m2s
android-screenshots / screenshots (push) Successful in 2m31s
arch / build-publish (push) Failing after 5m15s
deb / build-publish (push) Successful in 4m10s
android / android (push) Successful in 10m24s
decky / build-publish (push) Successful in 23s
linux-client-screenshots / screenshots (push) Successful in 2m17s
flatpak / build-publish (push) Successful in 4m19s
rpm / build-publish (43, bazzite, punktfunk-fedora-rpm) (push) Failing after 8m51s
rpm / build-publish (44, fedora-44, punktfunk-fedora44-rpm) (push) Failing after 8m34s
web-screenshots / screenshots (push) Successful in 2m40s
docker / deploy-docs (push) Successful in 20s
docker / build-push (docs-site, docs-site/Dockerfile, punktfunk-docs) (push) Successful in 5s
docker / build-push (ci, ci/rust-ci.Dockerfile, punktfunk-rust-ci) (push) Successful in 4s
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 5s
docker / build-push (--build-arg FEDORA_VERSION=44, ci, ci/fedora-rpm.Dockerfile, punktfunk-fedora44-rpm) (push) Successful in 5s
ci / rust (push) Failing after 1m0s
Release 0.8.3: the native Linux client is re-architected — the GTK4 shell + GL presenter give way to a two-binary design (phases 0–6). A relm4/libadwaita desktop shell (host discovery, pairing, library) now hands desktop connects to a dedicated Vulkan session binary, punktfunk-session: an SDL3 window + ash presenter carrying a Skia "console" UI — stats OSD, capture HUD, and a gamepad-navigable coverflow library with --browse. The split lands the streaming wins the GL path couldn't: VAAPI dmabuf → Vulkan zero-copy import + CSC (no GL round-trip), Vulkan Video decode on the presenter's own device for NVIDIA hardware decode (via a new pf-ffvk bindgen shim over FFmpeg's Vulkan hwcontext), and HDR10/P010 end to end. The console background is now an animated mesh gradient matching the Apple client's MeshGradient. Along the way: a resize crash fixed (never vkDeviceWaitIdle while the pump decodes), keyframe recovery when the decoder produces no output, decode-stage stats that measure GPU completion, an Alt+Enter fullscreen alias, pointer-lock + per-iteration motion-flush input fixes, and the host-card hover highlight made concentric. Packaging + Decky: the flatpak now builds and ships BOTH client binaries (shell + session) so the Deck's stream/browse paths survive the split — the session binary's Skia is fetched offline from a pinned, sha256-verified archive; the mgmt/library port 47990 is opened on the LAN firewall profiles; and the plugin's install-from-URL uses the unom.io/pf-decky short link. Other clients + core: Windows gains the two missing stream shortcuts (Ctrl+Alt+Shift+S stats, F11 fullscreen) plus an in-stream shortcut reference on both clients; Android promotes the low-latency pipeline to default and attaches its APK to CI; the host coalesces keyframe-request storms into one IDR per cooldown; the core jumps to live on a standing receive backlog instead of ratcheting latency; and two security bumps clear the audits (crossbeam-epoch RUSTSEC-2026-0204, vulnerable web transitive deps). The [workspace.package] version (inherited by every crate via version.workspace) is the release being cut; refresh the 14 workspace entries in Cargo.lock to match (CI builds --locked). Canary derives from the tag as minor+1 of the latest stable (scripts/ci/pf-version.sh), so with 0.8.3 the newest stable it stays at 0.9.0. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
45 lines
1.3 KiB
TOML
45 lines
1.3 KiB
TOML
[workspace]
|
|
resolver = "2"
|
|
members = [
|
|
"crates/punktfunk-core",
|
|
"crates/punktfunk-host",
|
|
"crates/punktfunk-host/vendor/usbip-sim",
|
|
"crates/punktfunk-tray",
|
|
"crates/pf-client-core",
|
|
"crates/pf-presenter",
|
|
"crates/pf-console-ui",
|
|
"crates/pf-ffvk",
|
|
"crates/pf-driver-proto",
|
|
"clients/probe",
|
|
"clients/linux",
|
|
"clients/linux-session",
|
|
"clients/windows",
|
|
"clients/android/native",
|
|
"tools/latency-probe",
|
|
"tools/loss-harness",
|
|
]
|
|
# Standalone PoC (built on its own; pulls usbip/tokio/libusb we don't want in the workspace).
|
|
exclude = ["packaging/linux/steam-deck-gadget/usbip-poc"]
|
|
|
|
[workspace.package]
|
|
version = "0.8.3"
|
|
edition = "2021"
|
|
rust-version = "1.82"
|
|
license = "MIT OR Apache-2.0"
|
|
authors = ["unom"]
|
|
repository = "https://git.unom.io/unom/punktfunk"
|
|
|
|
[profile.release]
|
|
opt-level = 3
|
|
lto = "thin"
|
|
codegen-units = 1
|
|
# NOTE: deliberately NOT `panic = "abort"`. punktfunk-core ships as a cdylib/staticlib into
|
|
# third-party apps (Swift/Kotlin/C) and its C ABI catches panics at the boundary
|
|
# (`catch_unwind` → `PunktfunkStatus::Panic`). `panic = "abort"` would make that guard a
|
|
# no-op and let a stray panic abort the embedding application. Unwinding keeps the
|
|
# documented isolation guarantee real.
|
|
|
|
# The per-frame hot path must stay fast even in dev builds.
|
|
[profile.dev.package."*"]
|
|
opt-level = 2
|