feat(windows): bundle PixelPass viewer

This commit is contained in:
2026-08-22 21:02:32 -04:00
parent f2220ed84e
commit 437c95380e
11 changed files with 258 additions and 85 deletions
+15 -8
View File
@@ -4,9 +4,11 @@ Current status: PeerSpeak cross-compiles to `x86_64-pc-windows-gnu` from Linux.
PeerSpeak v0.6.7 at commit `7217015d` passed a fresh Windows 10 22H2/build 19045
VM smoke test on 2026-08-22 for install/upgrade, launch, GUI/settings render,
device selection and persistence, microphone capture startup, WASAPI playback
pacing, room create/leave, and the missing-PixelPass guard. The build environment
is **not** the Windows VM; current Windows binaries are built from Linux in a
distrobox with the GNU target environment.
pacing, room create/leave, and the missing-PixelPass guard. The v0.6.8 candidate
adds the matching viewer-only PixelPass helper to the installer: Windows can
watch Linux-hosted shares, while Windows capture/hosting remains intentionally
unavailable. The build environment is **not** the Windows VM; current Windows
binaries are built from Linux with the GNU target environment.
The Windows runtime still trails Linux in a few important areas. See the Claude
handoff file `windows-parity-audit.md` for the full audit and task breakdown.
@@ -25,6 +27,7 @@ handoff file `windows-parity-audit.md` for the full audit and task breakdown.
| Chimes | Windows uses PowerShell `System.Media.SoundPlayer` for WAV playback. |
| Game detection | Steam registry `RunningAppID` plus Toolhelp process-scan fallback compile on Windows. |
| File dialogs | `rfd` uses the native Win32 dialog backend. |
| Screen-share viewing | The installer bundles the matching PixelPass viewer; VLC or mpv renders Linux-hosted shares. |
Windows paths are resolved through `dirs`:
@@ -71,8 +74,9 @@ cargo build --release
## First run and networking
Expect a Windows Firewall prompt the first time the app opens network sockets, or
use the Inno installer option that pre-adds a firewall allow rule. PeerSpeak uses
UDP for QUIC plus relay traffic when direct NAT traversal is unavailable.
use the Inno installer option that pre-adds idempotent PeerSpeak and PixelPass
firewall allow rules. Both use UDP/QUIC plus relay traffic when direct NAT
traversal is unavailable.
The default network mode keeps the n0 relay available for NAT traversal without
publishing presence to n0 DNS. Relayed connections are expected and valid.
@@ -120,7 +124,7 @@ probe quality, and uninstall/firewall cleanup.
| Item | Status |
|---|---|
| Echo cancellation | Linux-only today. The Windows UI shows it disabled as unavailable. |
| Screen share | Blocked by PixelPass, which is currently Linux-only in practice. PeerSpeak can spawn `pixelpass.exe`, but there is no Windows PixelPass host/viewer parity yet. |
| Screen share | Viewing Linux-hosted shares is implemented with the bundled PixelPass helper. Windows capture/hosting remains pending. |
| Device persistence | Uses cpal friendly names as keys. These can duplicate or change across Windows driver/profile changes; stable WASAPI endpoint IDs are still needed. |
| Release hygiene | Keep `.iss` and installer output in sync with `Cargo.toml`; rebuild Windows artifacts during each release. |
| Runtime coverage | The current 0.6.7 build passed the bounded Windows 10 smoke above; the remaining two-party and feature-specific rows still need coverage. |
@@ -128,8 +132,8 @@ probe quality, and uninstall/firewall cleanup.
## Current smoke checklist
Before calling Windows feature parity complete, finish these checks on the
Windows VM or real Windows hardware. Items checked below passed for v0.6.7 at
`7217015d`:
Windows VM or real Windows hardware. The original checks below passed for
v0.6.7 at `7217015d`; screen-share rows track the v0.6.8 candidate separately:
- [x] Launch current `peerspeak.exe`; GUI renders and settings open.
- [ ] Run `audio_probe.exe 440 30`; automated `playout-health` passed, but listen for glitches on physical hardware.
@@ -141,4 +145,7 @@ Windows VM or real Windows hardware. Items checked below passed for v0.6.7 at
- [ ] Record mixed/stems/both and inspect the WAV output path.
- [ ] Exercise friends/presence/recents and the clock-skew banner.
- [ ] Test Steam and non-Steam game detection on a real Windows Steam install.
- [x] Run the Windows PixelPass viewer against a live Linux PixelPass host; video rendered and the viewer exited when VLC closed.
- [ ] Watch a Linux-hosted share through the installed PeerSpeak UI; confirm video and audio on real Windows hardware.
- [ ] Confirm Windows clearly refuses screen-share hosting while Watch remains available.
- [ ] Install/upgrade/uninstall through the Inno installer, including firewall rule cleanup. Clean install and idempotent upgrade passed; uninstall remains.