-
1fd4c97139
feat(rpm): wire per-package GPG signing (dormant until a key secret is set)
enricobuehler
2026-06-15 10:46:27 +00:00
-
9e015304ee
docs(dist): end-user install front door + serve/pairing/firewall accuracy fixes
enricobuehler
2026-06-15 10:43:12 +00:00
-
5b3d5689bf
docs(windows-host): SendInput mouse injection live-validated on RTX 4090
enricobuehler
2026-06-15 10:40:16 +00:00
-
837b6fabb1
feat(dist): aarch64 honesty, Debian KWin-unit parity, cargo-audit CVE scan (P1/P2)
enricobuehler
2026-06-15 10:34:32 +00:00
-
4b6eaa8cf3
docs(windows-host): native 4090 build loop + the gotchas that bit us
enricobuehler
2026-06-15 10:33:12 +00:00
-
fe9921cc1c
fix(dist): kill the version-shadow + add build provenance (P0)
enricobuehler
2026-06-15 10:30:21 +00:00
-
b0df291ffe
feat(android): pairing/identity — persistent identity, TOFU pinning, SPAKE2 PIN ceremony
enricobuehler
2026-06-15 12:28:58 +02:00
-
802e98d3a3
feat(packaging): bundle the web console into the RPM / Arch / bootc host packages
enricobuehler
2026-06-15 09:56:58 +00:00
-
3167c936c0
feat(android): mDNS host discovery (NsdManager) in the connect screen
enricobuehler
2026-06-15 11:32:09 +02:00
-
a7c5d4256c
docs(windows-host): NVENC live-validated on RTX 4090 + real-GPU box notes
enricobuehler
2026-06-15 09:19:20 +00:00
-
7654b20b2a
fix(host/windows): NVENC capture on real GPU + HOME-less config dir
enricobuehler
2026-06-15 09:18:15 +00:00
-
bf65d264fd
ci: bound runner disk + bust the disk-full-corrupted cargo target cache
enricobuehler
2026-06-15 09:10:56 +00:00
-
df005e2963
feat(packaging/web): bundle the web console into the apt install (punktfunk-web)
enricobuehler
2026-06-15 08:50:40 +00:00
-
b2a335122e
build(web): node-server preset (apt-native runtime, no bun dependency)
enricobuehler
2026-06-15 08:45:29 +00:00
-
b2e5878711
feat(host/mgmt): HTTPS + token auth by default (no loopback no-auth fallback)
enricobuehler
2026-06-15 08:42:28 +00:00
-
104639bcc1
feat(android): DualSense host->client feedback — rumble + lightbar/LEDs/triggers
enricobuehler
2026-06-15 10:30:32 +02:00
-
1e871854cd
feat(android): gamepad forwarding — buttons + sticks/triggers/dpad → send_input
enricobuehler
2026-06-15 10:06:56 +02:00
-
2bca89c555
feat(host/windows): Steam library auto-discovery on Windows
enricobuehler
2026-06-15 07:59:21 +00:00
-
66f579461f
feat(host/windows): GameStream (Moonlight) audio on Windows — stereo
enricobuehler
2026-06-15 07:56:11 +00:00
-
95c4058582
fix(web): default mgmt proxy to the HTTPS self-signed mgmt API
enricobuehler
2026-06-15 07:50:41 +00:00
-
ff1cc6c6d9
feat(android): input forwarding — keyboard + touch trackpad → send_input
enricobuehler
2026-06-15 09:49:26 +02:00
-
e3de19b52e
test(host): make two host tests portable to Windows
enricobuehler
2026-06-15 07:49:01 +00:00
-
9c61b03101
feat(host/windows): ViGEm rumble back-channel + Windows clippy clean
enricobuehler
2026-06-15 07:43:40 +00:00
-
7d5dbd47b7
fix(host/dualsense): heartbeat virtual DualSense so it isn't dropped when idle
enricobuehler
2026-06-15 07:37:49 +00:00
-
01305c67a7
fix(apple/gamepad): resolve DualSense type reliably at connect (no Auto race)
enricobuehler
2026-06-15 07:31:39 +00:00
-
b8a1b7e469
feat(host/windows): host→client Opus audio — vendored libopus on MSVC
enricobuehler
2026-06-15 07:30:00 +00:00
-
8c8d576e52
feat(android): host→client audio — Opus → AAudio (LowLatency)
enricobuehler
2026-06-15 09:25:16 +02:00
-
38cce754bd
docs: mark session-aware follow-ups #2 (switch input) + #3 (vout primary) resolved
enricobuehler
2026-06-15 07:12:29 +00:00
-
336357643c
feat(host): KWin virtual output primary + settle portal env on switch
enricobuehler
2026-06-15 06:49:53 +00:00
-
2448a33698
style(host/windows): rustfmt the Windows backends
enricobuehler
2026-06-15 01:50:16 +00:00
-
5cf7b561b5
docs(windows-host): gamepad done; audio/rumble/GPU-validation remaining
enricobuehler
2026-06-15 01:48:23 +00:00
-
8cba886c17
feat(host/windows): ViGEm virtual gamepad backend
enricobuehler
2026-06-15 01:46:51 +00:00
-
1a9a733f02
docs(windows-host): all backends landed; NVENC build/run + dev-loop notes
enricobuehler
2026-06-15 01:40:52 +00:00
-
69ba6ec45d
feat(host/windows): NVENC D3D11 hardware encoder (--features nvenc)
enricobuehler
2026-06-15 01:39:46 +00:00
-
04b76ebfc7
feat(host/windows): run serve/m3-host on Windows (config paths + compositor)
enricobuehler
2026-06-15 01:15:51 +00:00
-
9c2499fd45
feat(host/windows): DXGI Desktop Duplication capture backend
enricobuehler
2026-06-15 01:06:21 +00:00
-
45e5157091
feat(host/windows): WASAPI loopback audio capture
enricobuehler
2026-06-15 00:57:19 +00:00
-
cbbeaa5c29
feat(host/windows): openh264 software H.264 encoder (GPU-less path)
enricobuehler
2026-06-15 00:43:19 +00:00
-
cce2eb60f6
feat(host/windows): SendInput input-injection backend
enricobuehler
2026-06-15 00:34:40 +00:00
-
2264474c68
Merge remote-tracking branch 'origin/main'
enricobuehler
2026-06-15 00:05:58 +00:00
-
-
26741feada
feat(host/windows): SudoVDA virtual-display backend (control path)
enricobuehler
2026-06-15 00:05:40 +00:00
-
de7b8ac282
feat(android): video decode pipeline — NDK AMediaCodec → SurfaceView
enricobuehler
2026-06-15 02:03:32 +02:00
-
-
9775794ba5
docs: known limitations + follow-ups for the session-aware host
enricobuehler
2026-06-14 23:53:45 +00:00
-
8534959021
fix(ci/flatpak): cargo-sources generator needs python3-tomlkit, not toml
enricobuehler
2026-06-15 01:47:09 +02:00
-
8956bc14de
feat(packaging/flatpak,decky): Steam Deck client flatpak + plugin deploy + CI
enricobuehler
2026-06-15 01:43:35 +02:00
-
79217eb93d
feat(android): scaffold the native Android client (Rust-heavy JNI bridge)
enricobuehler
2026-06-15 01:37:46 +02:00
-
c9e90d4a59
docs(windows-host): host-first plan + SudoVDA protocol + no-GPU strategy
enricobuehler
2026-06-14 23:30:24 +00:00
-
5fddaac6af
fix(host): compile punktfunk-host on windows (x86_64-pc-windows-msvc)
enricobuehler
2026-06-14 23:30:24 +00:00
-
f869b434ba
fix(host): input follows session per-connect + restore-guard on desktop switch
enricobuehler
2026-06-14 23:14:36 +00:00
-
c5ee9871ec
style(host/gamescope): wrap long PENDING_RESTORE assignment (rustfmt)
enricobuehler
2026-06-14 22:50:31 +00:00
-
95a820b68a
feat(host/m3): mid-stream session-switch watcher (Feature B, opt-in)
enricobuehler
2026-06-14 22:42:13 +00:00
-
c25706b355
feat(host/gamescope): managed-default Gaming with debounced TV-restore
enricobuehler
2026-06-14 22:34:33 +00:00
-
66c2bee183
feat(packaging/bazzite): one-shot KDE Desktop-mode setup for the host
enricobuehler
2026-06-14 22:26:21 +00:00
-
6f77574876
feat(host/vdisplay): per-connect active-session backend selection
enricobuehler
2026-06-14 21:41:51 +00:00
-
0bc60ebc44
fix(host/gamescope): free Steam from the autologin TV session while streaming
enricobuehler
2026-06-14 19:38:58 +00:00
-
a59abe2e3e
fix(apple/gamepad): reclaim the PS/Home button from the macOS system gesture
enricobuehler
2026-06-14 18:05:24 +00:00
-
36107018a8
feat(apple/library): mTLS — authenticate by the paired identity, drop the token
enricobuehler
2026-06-14 17:47:19 +00:00
-
b4a85a8610
feat(host/mgmt): mTLS auth — a paired client's cert authorizes the REST API
enricobuehler
2026-06-14 17:37:25 +00:00
-
8c2e245c8b
fix(apple/cursor): disable the client-side cursor (gamescope traps input)
enricobuehler
2026-06-14 17:14:57 +00:00
-
36a04e667c
fix(apple): capture the PS/Home button + fullscreen only while streaming
enricobuehler
2026-06-14 16:14:37 +00:00
-
01409d9d8a
fix(host/dualsense): report full battery + log rumble forwarding
enricobuehler
2026-06-14 16:14:28 +00:00
-
5706e7ebf4
feat(apple/library): launch a picked title (step 4 client side)
enricobuehler
2026-06-14 15:00:58 +00:00
-
27e58658af
feat(launch): punktfunk/1 launch integration — client picks a title, host runs it
enricobuehler
2026-06-14 14:56:18 +00:00
-
1b610d6bf5
feat(apple/library): experimental game-library browser (flagged off)
enricobuehler
2026-06-14 14:28:16 +00:00
-
6136ba4c72
feat(web/library): game library page — grid + custom-entry CRUD
enricobuehler
2026-06-14 13:48:00 +00:00
-
6351d516e0
feat(host/library): game library API — Steam adapter + custom store
enricobuehler
2026-06-14 13:43:03 +00:00
-
ee7984beb0
feat(packaging/arch): split package — add punktfunk-client for the Deck
enricobuehler
2026-06-14 13:09:10 +00:00
-
b3f98a5d7d
feat(clients/decky): SteamOS Gaming-Mode launcher plugin (spike)
enricobuehler
2026-06-14 12:50:57 +00:00
-
c64816c70a
feat(apple): client-side cursor for gamescope sessions (toggle + shortcut)
enricobuehler
2026-06-14 12:07:15 +00:00
-
fc30307a87
feat(abi): expose the host-resolved compositor to clients
enricobuehler
2026-06-14 11:58:37 +00:00
-
c548155dd9
feat(packaging/arch): Arch + SteamOS install target (PKGBUILD + sysext)
enricobuehler
2026-06-14 11:43:48 +00:00
-
abc057fbfe
fix(ci/apple): scope iOS/tvOS archive signing to the device SDK
enricobuehler
2026-06-14 12:57:18 +02:00
-
8425cd0826
fix(encode): probe each GPU's real max bitrate instead of failing (or blind-capping)
enricobuehler
2026-06-14 09:58:42 +00:00
-
9f92dc505b
fix(client/pkg): ship 32MB UDP recv-buffer sysctl with the Linux client
enricobuehler
2026-06-14 08:45:19 +00:00
-
4d26f61e40
fix(net/gso): fall back to sendmmsg on EMSGSIZE instead of tearing down
enricobuehler
2026-06-14 01:06:41 +00:00
-
16ccc7c876
fix(net): don't tear the stream down on a connected-UDP ICMP blip (ECONNREFUSED)
enricobuehler
2026-06-14 00:54:10 +00:00
-
b140cd6837
feat(apple/macos): App Sandbox + entitlements, wire Mac App Store TestFlight
enricobuehler
2026-06-14 02:38:47 +02:00
-
c2ae40ef9e
feat(net/mac): default-on recvmsg_x batched Mac recv + GSO host + longer probe
enricobuehler
2026-06-14 00:35:26 +00:00
-
c7c08b2855
fix(ci/release): skip Swift macro/plugin validation in archives
enricobuehler
2026-06-13 23:36:36 +00:00
-
5bc257f1ae
fix(headless/kde): virtual Punktfunk speaker + restart host with the session
enricobuehler
2026-06-13 23:30:36 +00:00
-
9c23ad5303
feat(ci/release): add tvOS TestFlight build + use renamed iOS profile
enricobuehler
2026-06-13 23:23:01 +00:00
-
d78bbdffe2
fix(headless/kde): start Xwayland + detect its display so X11 apps work
enricobuehler
2026-06-13 23:17:56 +00:00
-
5c1aa453c1
fix(ci/release): quit Xcode before iOS build so it can't prune the profile
enricobuehler
2026-06-13 22:02:44 +00:00
-
53e3f1e4e6
fix(ci/release): iOS manual App Store signing (App-Manager key can't cloud-sign)
enricobuehler
2026-06-13 21:52:50 +00:00
-
31b04a2ab8
refactor(ci/release): xcodebuild-native signing via login keychain
enricobuehler
2026-06-13 21:42:47 +00:00
-
e4b10f057a
fix(headless/kde): make libei input work headlessly — portal + pre-seeded RemoteDesktop grant
enricobuehler
2026-06-13 21:22:20 +00:00
-
fb1443650b
style: rustfmt the kwin virtual-primary helpers
enricobuehler
2026-06-13 21:05:01 +00:00
-
a3a3dfc85b
fix(vdisplay/kwin): make the streamed output the sole desktop (PUNKTFUNK_KWIN_VIRTUAL_PRIMARY)
enricobuehler
2026-06-13 21:04:29 +00:00
-
822988029c
diag(ci/release): sign iOS by identity hash + max-verbose codesign
enricobuehler
2026-06-13 20:29:45 +00:00
-
596c92f785
fix(ci/release): re-set key partition list + stage full chain before iOS codesign
enricobuehler
2026-06-13 20:22:27 +00:00
-
ecfef43040
fix(ci/release): re-assert keychain before the iOS codesign
enricobuehler
2026-06-13 20:08:56 +00:00
-
9338a8797d
style: rustfmt the connect_via_punch match guard
enricobuehler
2026-06-13 19:56:25 +00:00
-
97d4300d50
feat(ci/release): iOS — raw codesign + altool upload (bypass xcodebuild)
enricobuehler
2026-06-13 19:53:14 +00:00
-
b547b9d92f
fix(ci/release): quit Xcode.app so it stops pruning the iOS profile
enricobuehler
2026-06-13 19:25:33 +00:00
-
ec617f9c6b
bench(ci): report-only regression harness — Tier-1/2 in CI + Tier-3 GPU runner
enricobuehler
2026-06-13 19:24:52 +00:00
-
2976daf2e3
diag(ci/release): dump provisioning-profile dirs around the iOS archive
enricobuehler
2026-06-13 19:23:16 +00:00
-
71f26083a6
bench(core): Tier-1 criterion microbenchmarks for the punktfunk/1 hot path
enricobuehler
2026-06-13 19:18:40 +00:00
-
46572b4a25
fix(ci/release): robust iOS provisioning-profile extraction + diagnostics
enricobuehler
2026-06-13 19:05:35 +00:00
-
7ec91aec2d
feat(punktfunk/1): cross-VLAN/NAT video via data-plane hole-punching
enricobuehler
2026-06-13 18:46:15 +00:00
-
268733f968
fix(headless/kde): find the probe binary on PATH for packaged installs
enricobuehler
2026-06-13 18:21:31 +00:00