26.05.0-rc3.hfx4
LuminalShine 26.05.0 Update Release Candidate 3 Hotfix 4
[!IMPORTANT]
LuminalShine 26.05.0 RC3 is a substantial release to prepare for Authenticode. Please be aware that there are changes such as installing to%ProgramFiles%\NortheBridge\LuminalShineand%ProgramData%\LuminalShine\.[!CAUTION]
Changes in this release may break LuminalShine if it doesn't migrate properly. Re-run the installer if this happens in order to resolve the issue. If your issue isn't resolved, submit an issue for further guidance.[!TIP]
LuminalShine Credentials, which are stored in the Windows Credential Manager via use of the TPM 2.0, seamlessly transition to the Authenticode version of LuminalShine. If you encounter a lockout from the Admin Interface, run"C:\Program Files\NortheBridge\LuminalShine" --reset-admin-credentialsto reset the Admin Credentials to "First Run" state. You will not lose any device pairings or settings.
General
- The platform layer now exposes a dedicated
log_dir()accessor parallel toappdata(). Today it forwards to the existing data directory on Linux and macOS, and resolves to a separate logs subtree on Windows. Cross-platform callers route through a single API so any future log-location change on other platforms is a one-line implementation flip.
Windows 11 General Availability
- Install location moved to
C:\Program Files\NortheBridge\LuminalShine\. Previous installs atC:\Program Files\Sunshine\are migrated transparently by MSI MajorUpgrade — service registration, firewall rules, Start Menu shortcuts, the Reconfigure shortcut, and the registryDisplayIconall retarget without manual intervention. TheNortheBridge\parent directory is removed on uninstall if no other NortheBridge product owns it. - Upgrade dialog now defaults to the new install path. A previously installed copy at
C:\Program Files\Sunshine\(or any other path containing\Sunshine\) is automatically relocated toC:\Program Files\NortheBridge\LuminalShine\on upgrade. Both the interactive BrowseDlg suggestion and silentmsiexec /quietinstalls honor the new path, so the new binaries land at the new location without manual intervention. Custom install paths that do not contain\Sunshine\are preserved as user choices. - Pinned taskbar, desktop, and user-Start-Menu shortcuts are repointed during upgrade. A new
Repoint-LegacyShortcutsstep in the installer walks every user profile on the machine and rewrites any.lnkwhose target path or filename referenced the prior install. Rewrites are best-effort and never block the upgrade. - Logs split into
%ProgramData%\LuminalShine\logs\(sibling of the existingconfig\directory). Existing*.logand rollover*.log.N/*.bakfiles migrate in place on first launch after upgrade. The in-app log viewer, log-export endpoint, and helper-log enumeration all follow the new root automatically. - Executables renamed for brand consistency and to namespace generic tool names out of collisions with anything else on a user's
PATH: sunshine.exe→luminalshine.exesunshinesvc.exe→luminalshinesvc.exesunshine_display_helper.exe→luminalshine_display_helper.exesunshine_wgc_capture.exe→luminalshine_wgc_capture.exedxgi-info.exe→luminalshine-dxgi-info.exeaudio-info.exe→luminalshine-audio-info.exeplaynite-launcher.exe→luminalshine-playnite-launcher.exe- Windows service renamed from
SunshineServicetoLuminalShineService. Autostart, service account, and ServiceInstall metadata are preserved across the rename; the priorsunshinesvcandSunshineServiceregistrations are cleaned up automatically during upgrade. - TPM-sealed admin credentials and paired-client list are unaffected by the rename. The Windows Credential Manager entry (
LuminalShine/AdminCredentials) and the TPM-bound key (LuminalShineAdminCredentialsKey) were already brand-neutral; theResetAdminCredentialsaction remains gated onNOT UPGRADINGPRODUCTCODEso the MajorUpgrade sequence never wipes the vault. - New Start Menu shortcut: "Reset LuminalShine Admin Password". If the saved Web UI admin login ever ends up in an unauthenticable state, you can recover with one click: launch the shortcut, confirm the prompt, and your next visit to
https://localhost:47990will show a fresh first-time setup screen. Paired Moonlight clients, the apps list, and all other settings are preserved — only the admin login is reset. - Service self-heal on unreadable admin credential. If the stored admin credential is ever found in a broken state (empty WCM blob, unparseable JSON, missing required fields), the service now logs a warning, erases the bad entry, and presents first-time setup on next browser visit instead of presenting an un-authenticable login form. TPM unseal failures are not auto-erased — those can be transient, and the new Reset Admin Password shortcut handles that case explicitly.
- Named system objects renamed so a LuminalShine install coexists cleanly on a host that also has an upstream Sunshine-family product running:
- Single-instance mutexes →
Global\LuminalShineDisplayHelper/Local\LuminalShineDisplayHelper - Display-helper IPC pipe →
luminalshine_display_helper - Display-event window class →
LuminalShineDisplayEventWindow - NVAPI per-app profile →
LuminalShineStream(keyed onluminalshine.exe) - Scheduled task author / trigger ID →
LuminalShine Display Helper/LuminalShineDisplayHelperLogonTrigger - Display-helper IPC pipe name is now a single shared constant in
display_settings_client.h, eliminating the prior risk of client and server drifting apart when the literal was spelled independently on each side. - Crash-dump bundle generation recognises both the new
luminalshine_*filenames and the legacysunshine_*filenames, so a bundle assembled immediately after upgrade still includes any pre-migration.dmpfiles that Windows hasn't aged out yet. The diagnostic log-collection helper now probes both the newNortheBridge\LuminalShine\config\logs\install location and the legacySunshine\config\logs\for older logs you may want to attach to a bug report. - Log export and helper-log lookup walk both the new
LuminalShine\and legacySunshine\per-user appdata subdirectories. Logs from helpers that ran before the rename remain discoverable. - Display-helper process cleanup matches both new and legacy helper executable names. A stale pre-upgrade helper is terminated reliably before the new helper takes its single-instance mutex.
- Service launch path hardened.
luminalshinesvc.exenow resolves the main host binary via an absolute path derived from its own module location, instead of relying on the SCM's current-working-directory inheritance. This removes an occasional silent launch failure observed on hosts where the service's effective CWD was not the install root. - MSI process-kill list now covers both new and legacy executable names. Upgrades from a prior install and reinstalls on a host already running the new binaries both kill the right processes before file replacement, so neither path leaves files mapped through reboot.
- NVIDIA per-app driver profile is created/updated automatically on first launch as
LuminalShineStreamkeyed onluminalshine.exe, carrying the same GPU power-mode behaviour as before. A pre-existingSunshineStreamprofile from a prior install becomes a cosmetic entry in NVIDIA Control Panel that no longer matches any running process and can be removed manually if desired.
Windows 11 Insider Preview
- No Insider-specific changes in this release. The general-availability migration applies identically on Insider Preview hosts, and the upgrade-time process-kill / display-helper-cleanup hardening above incidentally addresses several edge cases that surfaced most often on Insider builds.
Hotfixes
- MSI upgrade dialog defaulted to the legacy
C:\Program Files\Sunshine\path instead of the newNortheBridge\LuminalShine\location. Root cause:WIXUI_INSTALLDIRmakes Windows Installer persist the prior install'sARPINSTALLLOCATIONacross upgrades andAppSearchre-seedsINSTALL_ROOTfrom it, overriding CMake's new Directory-table default. Without an explicit override, both interactive BrowseDlg and silentmsiexec /quietupgrades would have laid the new binaries down at the legacy path — new brand, legacy location. Fixed with a Type-51SetPropertythat fires afterAppSearchand only whenINSTALL_ROOTstill contains\Sunshine\, so fresh installs and post-26.05.1 upgrades remain no-ops. - Bootstrapper UI default install path also showed the legacy
C:\Program Files\Sunshine\even on fresh installs. The bootstrapper resolved its default from a hardcoded\Sunshineconstant that was missed in the rename, and pre-existing installs registered at the legacy path bled through into the BrowseDlg textbox. Now reflects the canonicalNortheBridge\LuminalShinepath; legacy-path detection mirrors the MSISetPropertyso the UI and the actual install behaviour converge. - Web UI returned 404s on every asset; the encoder failed to start. The service binary, when launched by the Service Control Manager, inherited
C:\Windows\System32as its working directory. Relative asset paths (assets/web/index.html,assets/shaders/directx/*.hlsl,assets/desktop.png, etc.) resolved against System32 and were not found, producing a broken login form and a Platform-init failure with HRESULT0x80070003. The main host now anchors its working directory to the executable's install root at startup before any relative-path lookup runs. - Bootstrapper "Browse" button silently did nothing on hosts where the modern Windows shell folder picker (
IFileOpenDialog) failed to instantiate — most commonly observed under certain RDP configurations and on hosts with non-standard COM registration. The button now falls back to the classicFolderBrowserDialogif the modern picker errors out, and surfaces a diagnostic dialog if both pickers fail rather than appearing dead. - The
--reset-admin-credentialsCLI subcommand worked, but every shipped invocation of it didn't. The argument dispatcher only recognises subcommands prefixed with--, but the WiX uninstall action'sResetAdminCredentialscustom action and the bundled documentation both invoked it as a barereset-admin-credentials. As a result the manual-uninstall credential-clear path was a silent no-op in every release through26.05.0-rc3.hfx3. Both invocations now route correctly through the dispatcher; the new Start Menu "Reset LuminalShine Admin Password" shortcut provides a discoverable in-product alternative to ever needing the CLI.
Automated release for 26.05.0-rc3.hfx4.
Contributors
- @NorthernLights
Full Changelog: https://github.com/NortheBridge/luminalshine/compare/26.05.0-rc2…26.05.0-rc3.hfx4