Polaris v1.3.13
Polaris v1.3.13 is a Linux runtime reliability and configuration patch. It separates Steam game teardown from private Steam client shutdown, tightens exact-generation compositor cleanup, restores several capture and encoder lifecycle invariants, and repairs the AI Optimizer clear-key flow without weakening strict configuration validation.
Existing configuration remains valid when upgrading from v1.3.11 or v1.3.12. The official Arch package retains v1.3.12's reviewed Boost 1.92.0-1 ABI contract and current rolling-repository compatibility gate.
Fedora 44
wget --output-document=./Polaris-fedora44-x86_64.rpm https://github.com/papi-ux/polaris/releases/download/v1.3.13/Polaris-fedora44-x86_64.rpm &&
sudo dnf install "./Polaris-fedora44-x86_64.rpm" &&
sudo -H polaris --setup-host &&
systemctl --user restart polarisArch Linux / CachyOS
wget --output-document=./Polaris-arch-x86_64.pkg.tar.zst https://github.com/papi-ux/polaris/releases/download/v1.3.13/Polaris-arch-x86_64.pkg.tar.zst &&
sudo pacman -U ./Polaris-arch-x86_64.pkg.tar.zst &&
sudo -H polaris --setup-host &&
systemctl --user restart polarisUbuntu 24.04
wget --output-document=./Polaris-ubuntu24.04-x86_64.deb https://github.com/papi-ux/polaris/releases/download/v1.3.13/Polaris-ubuntu24.04-x86_64.deb &&
sudo apt install ./Polaris-ubuntu24.04-x86_64.deb &&
sudo -H polaris --setup-host &&
systemctl --user restart polarisBazzite users should follow the exact-output rpm-ostree flow in the Bazzite guide. SteamOS 3.8 users should follow the SteamOS guide, including its keyring bootstrap and read-only-root restoration. SteamOS remains experimental Desktop Mode support rather than certified Game Mode support.
Changes
Steam and private-runtime teardown
- Stops the exact Steam app lineage before requesting global private-client shutdown. App-root matching accepts both NUL-separated and space-delimited
SteamLaunch AppId=<id>forms with exact token boundaries. - Freezes and captures exact descendants with pidfds, including descendants that stripped the session token, while the cage compositor and private Steam root stay outside the app signal set.
- Requires the pinned Steam game-process removal event plus a bounded settle before
steam -shutdown, separating recording, compatibility-session, AutoCloud, and game-removal work from full client teardown. - Avoids the observed Depot Download HTTP destructor crash by using exact private-Steam pidfd
SIGKILLwhenever ownership, app quiescence, log identity, or native shutdown is incomplete. Fallback never sends SteamSIGTERM. - Serializes nested Gamescope teardown and preserves exact-generation compositor ownership so overlapping stops cannot poison reconnect recovery.
- Drains labwc startup descendants that escape the initial parent tree without broad process-name termination.
Capture, display, and encoder reliability
- Releases only the EGL context the teardown thread actually bound, preventing HDR-to-SDR demotion from discarding the replacement encode device's current context before shader compilation.
- Sizes nested Gamescope sessions from the final negotiated render width, height, and frame rate instead of imposing the standalone 4K120 fallback.
- Reprobes a missing deferred cage encoder before launch and stops safely if no encoder can be selected.
- Retires the initial GPU-native conversion object without racing active capture.
Settings, Doctor, and privacy
- Lets the AI Optimizer clear stored AI API key credentials through an explicitly typed
clear_ai_api_keyboolean while unrelated unsupported configuration keys remain rejected. - Accepts canonical boolean spellings without changing the rest of the configuration contract.
- Detects Steam Input settings that can claim Polaris's isolated Xbox virtual controller, preserves the finding after the stream ends, deduplicates aliased Steam profile roots, and offers one guarded Doctor action instead of silently changing Steam settings.
- Redacts each private session log path from public diagnostics.
- Keeps the System page header usable at narrow and wide layouts.
Packaging and release gates
- Carries forward the exact Boost 1.92.0-1 inputs and five versioned Boost SONAME dependencies introduced by v1.3.12.
- Verifies the finished Arch package's ELF
NEEDEDentries against package metadata, then installs the same package against current rolling Arch, requires cleanldd, and launchespolaris --version. - Keeps path-aware native CI classification, full sanitizer coverage, immutable package inputs, and bounded snapshot dependency operations fail-closed.
Scope and validation limits
- The exact release candidate must pass source, web, native, sanitizer, package, and emulator-only stream teardown gates before the tag is created.
- Physical Retroid Pocket 6 validation is not part of this release gate and is not implied by emulator validation.
- SteamOS remains an experimental Desktop Mode package. This release does not claim Steam Deck Game Mode certification.
- CodeQL analysis remains unavailable when GitHub code scanning is disabled for the repository. A successful explicit skip path is not an analysis result.
Official assets
Polaris-arch-x86_64.pkg.tar.zstPolaris-fedora44-x86_64.rpmPolaris-steamos3.8-x86_64.pkg.tar.zstPolaris-ubuntu24.04-x86_64.deb