StreamLink Host private preview 1.0.0 — 11 November 2026

PRODUCT
Install StreamLink on the phone/TV and StreamLink Host on the Windows PC.
Pair once using the short PIN displayed by the client. The same authenticated
connection supplies game streaming, the library and Steam game launches.
There is no separate helper installer, helper connection key, helper listener
or helper task in this host package. Steam itself must be installed on the PC.

SOURCE
Apollo base: adc5c5a0bd80831ce495434bb16aee2cd4175fb8.
StreamLink additions: src/streamlink.*, assets/streamlink/library.ps1,
paired HTTPS routes in nvhttp.cpp, branding, installer and tests.
Existing Apollo/Sunshine attribution and GPLv3 licensing are retained.
This private preview does not complete the separate store/licence audit.

CONNECTION
GET /streamlink/v1/status and /streamlink/v1/library, and POST
/streamlink/v1/launch?appid=<positive integer> use the host's existing paired
certificate HTTPS endpoint. No API copies exist on its plaintext HTTP port.
Client certificates and permissions are checked; clients pin the host identity.
Browser-Origin requests cannot read the library or launch games. Requests are
bounded, launch IDs are validated, and only games in the PC library can launch.
The internal worker runs with the interactive Windows user's token, not SYSTEM.
Steam access credentials remain encrypted with that Windows user's DPAPI.

INSTALLATION / MIGRATION
The installer copies the existing Apollo configuration and retains its server
identity, paired devices, applications and permissions. ApolloService remains
the internal service ID for compatibility; its display name is StreamLink Host.
The original Apollo configuration is retained for rollback. Shared DSX/ViGEm
and display drivers are preserved. ViGEm is installed only if absent.
Firewall rules are scoped to this program and LAN/Tailscale/private IPv6 sources.
Uninstall removes this service and its rules, not shared drivers or saved config.
Existing standalone helper deployments are retained during client migration;
the new clients do not use them when connected to StreamLink Host.

VERIFIED
Built with GCC15.2, CMake/Ninja and pinned upstream dependencies. GCC16.2 had
an internal compiler crash; only build-gcc15 is a valid output for deployment.
The actual NSIS package's staged binary passed ten live TLS/API checks, including
unpaired and restricted-client rejection, method/Origin/input validation, and
the real Steam library: 38 installed games and77 owned games.
The first installer exposed a Windows SID-to-account-name conversion bug.
The corrected installer uses SecurityIdentifier objects, installed successfully
and verified preservation of all nine paired devices and server credentials.
Physical Apple TV build2 loaded games automatically over the preserved pairing.
Phone build213 is signed and verified; installation confirmation is pending.

LIMITATIONS BEFORE A PUBLIC CUSTOMER RELEASE
Installed-game scanning needs no account key. Full owned-game access currently
uses the encrypted Steam Web API configuration already present on this test PC.
Fresh-PC Steam account authorization and onboarding still need implementation;
never ship this developer's API key or claim full libraries work on unconfigured
PCs. Partial results are identified explicitly and do not replace a full library
with a misleading empty success.
Fresh-PC administration setup, headless/virtual-display driver installation,
installer upgrade/uninstall qualification, Windows code signing, licence/source
distribution obligations and cross-device acceptance testing remain release work.
Only the existing PC migration has been tested, not a clean Windows installation.

BUILD
Use CMake/Ninja with an isolated MinGW GCC15 UCRT toolchain and the dependencies
documented upstream. Configure with BUILD_TESTS=OFF and BUILD_DOCS=OFF for the
private package, then build and run cpack -G NSIS using that build directory.
Upstream src/video.cpp referenced a nonexistent cfg.profile in its AMF SDR
options; the fork restores the prior compatible empty AMF SDR option map.
Run tests/streamlink-host-smoke.py with the build directory and a new isolated
test directory. Test certificates are disposable and must not be packaged.
