Skip to content

Support Matrix ​

This matrix separates detection, local validation, and public support. A working source checkout is not the same thing as a published package or a live audio-routing guarantee.

Status Vocabulary ​

StatusMeaning
VerifiedCovered by local automated validation in this repo.
Manual VMCovered by a VM target and ready for operator-run guest evidence.
PlannedDesigned in the contract but not implemented or validated yet.
UnsupportedIntentionally not a target for this milestone.

Host Targets ​

Target metadata is stored in vm/targets.tsv and validated by pnpm verify:vm, which also renders and checks cloud-init handoffs for every target. Rows marked Verified must have a passing target evidence bundle under .vm/evidence/<target>. Rows with passing evidence must be promoted to Verified; otherwise they stay Manual VM. Use scripts/collect-vm-evidence-ssh.sh after a VM is reachable over SSH to run guest validation, copy the target bundle back, and verify it locally before changing a row to Verified. Guest evidence includes a redacted support bundle plus a desktop launch smoke so maintainers can inspect backend diagnostics without relying only on screenshot or pass/fail status. It also includes environment.json, which must match the target distro, desktop/session, audio stack, and architecture before a row can be promoted. The matching detect-audio.json must also report the target audio backend as available, so a JACK or PulseAudio row cannot be promoted with only generic Linux evidence. Direct SSH collection keeps guest and copied-back output target-scoped: custom --remote-output-dir and --local-output-dir values must include the target id as a path segment and cannot contain parent traversal. After evidence verifies, promote the row with pnpm vm:promote-evidence -- --target <target>. Use --dry-run first to preview the docs change without editing the matrix. For final release support claims, pass --require-published-release --release-tag <tag> so promotion also proves the guest installed and ran the signed published artifact for the exact release. Custom verifier --evidence-root and --matrix paths are local artifacts only: the support-matrix verifier rejects root/home placeholders, parent/current-directory traversal, URL syntax, glob metacharacters, symlinks, and existing paths with the wrong file or directory type before reading the matrix or scanning copied-back VM evidence. Run pnpm vm:host-plan for cross-distro host setup hints and target-specific image, cloud-init, launch, and evidence handoff commands. Run pnpm vm:render-ssh-plan -- --all --output .vm/ssh-targets.tsv to generate the multi-guest TSV consumed by pnpm vm:collect-matrix.

TargetDesktop/sessionAudio stackCurrent status
arch-hyprland-pipewireHyprland on WaylandPipeWire/WirePlumberManual VM
fedora-kde-pipewireKDE Plasma on WaylandPipeWire/WirePlumberManual VM
fedora-kde-jackKDE Plasma on WaylandJACKManual VM
ubuntu-gnome-pipewireGNOME on WaylandPipeWire/PulseAudio compatibilityManual VM
ubuntu-gnome-pipewire-aarch64GNOME on WaylandPipeWire/PulseAudio compatibilityManual VM
debian-xfce-pulseaudioXfce on X11PulseAudioManual VM
nixos-gnome-pipewireGNOME on WaylandPipeWire/WirePlumberManual VM
fedora-sway-pipewireSway on WaylandPipeWire/WirePlumberManual VM
opensuse-kde-pipewireKDE Plasma on WaylandPipeWire/WirePlumberManual VM

Audio Backends ​

BackendDetectionHost mutationNotes
PipeWire nativeVerified probes and port listingVirtual sinks, routes, mute, monitor linksPer-edge gain planned.
PulseAudio compatibilityVerified read-only probesVerified with fake runnersSinks, monitors, routes; one output per source.
Native PulseAudioVerified read-only probesSame pactl adapter pathNeeds manual VM proof on a non-PipeWire PulseAudio host.
JACKVerified probes and port listingExisting-port routes, route mute, and monitor linksVirtual ports and gain still planned.
ALSAPlayback/capture hardware detectionNot a routing backendUsed for diagnostics and hardware visibility.

Host adapters are dry-run by default. Live apply is session-local and requires the desktop Host apply control plus the Tauri shell command bridge.

Install Channels ​

ChannelCurrent validationPublic status
Source checkoutpnpm checkSupported for contributors.
Signed curl installerLocal verification plus live /install.sh byte comparisonPublished for 0.1.0 at loopwire.app.
AppImagePublished-artifact and Tauri bundle smokePublished for 0.1.0 on GitHub Releases.
Ubuntu 24.04 / Debian 13 debVerified in matching KVM guests at commit 70eee4e; review snapshot in vm/native-package-proof/Published as direct downloads.
Ubuntu 24.04 / Debian 13 signed APT repository, amd64Separate signed-metadata, publication, bootstrap, and clean-guest lifecycle checksPublic activation is gated; see current channel availability.
Fedora 44 / openSUSE Tumbleweed RPMVerified in matching KVM guests at commit 70eee4e; review snapshot in vm/native-package-proof/Published as direct downloads; no COPR/OBS repository.
AUR loopwireTagged source build through pnpm verify:aur:sourcePublished for 0.1.0.
AUR loopwire-binSigned release-artifact build through pnpm verify:aurPublished for 0.1.0.
AUR loopwire-gitRolling default-branch build through pnpm verify:aur:gitPublished; development snapshots are not stable releases.
Nix flake package (loopwire-bin)pnpm verify:nix-release -- --repo sandwichfarm/loopwire --tag v0.1.0 --public-key packaging/release-signing-public.pemRelease-bound for 0.1.0; locally proved on x86_64 only.

The flake package output is packages.<system>.loopwire-bin; flake.nix now pins the signed v0.1.0 tarball hashes for x86_64-linux and aarch64-linux. Fresh local non-skipped Nix build evidence in this repository currently covers x86_64-linux only; aarch64-linux still needs native proof.

APT lifecycle evidence is separate from the direct-download snapshot. Isolated HTTPS guests and synthetic +aptfixture1 package upgrades demonstrate development behavior with the existing release payload; they do not establish a new public release or production channel. Only reviewed production HTTPS verification activates APT instructions. Repository support covers the named distro versions on amd64, not derivatives or other architectures.

Native package verification is narrower than audio-backend support. The committed snapshot proves that each official, checksum-pinned guest built and installed its target package, ran the packaged background/provider/backend commands, resolved GUI libraries, created a Loopwire X11 window under Xvfb, and removed all package-owned files. It does not promote any host-audio backend row or claim that the packages have been published.

Desktop Integration ​

AreaCurrent behavior
Window chromeNative chrome by default; custom mode persists and requests an undecorated Tauri window with Loopwire controls.
AutostartXDG desktop autostart can be installed and removed with scripts/manage-autostart.sh.
Background restoreSource checkout and packaged user-scoped systemd restore paths are verified locally.
Screenshotsassets/product-screenshot.png is the canonical desktop capture; refresh the docs public copy through the screenshot procedure.