|
| 1 | +--- |
| 2 | +layout: release |
| 3 | +title: Sunshine v2025.628.4510 Released |
| 4 | +release-tag: v2025.628.4510 |
| 5 | +gh-repo: LizardByte/Sunshine |
| 6 | +gh-badge: [follow, fork, star] |
| 7 | +tags: [release, sunshine] |
| 8 | +comments: true |
| 9 | +author: LizardByte-bot |
| 10 | +--- |
| 11 | + |
| 12 | +## Attention |
| 13 | + |
| 14 | +This release contains critical security updates. For more information see the following: |
| 15 | + |
| 16 | +- [GHSA-39hj-fxvw-758m](https://github.com/LizardByte/Sunshine/security/advisories/GHSA-39hj-fxvw-758m) |
| 17 | +- [GHSA-x97g-h2vp-g2c5](https://github.com/LizardByte/Sunshine/security/advisories/GHSA-x97g-h2vp-g2c5) |
| 18 | + |
| 19 | +Please update as soon as possible! |
| 20 | + |
| 21 | +This release also contains many new features and bug fixes, including: |
| 22 | + |
| 23 | +- Encoder probing fixes. |
| 24 | +- Display automation is now disabled by default, you can re-enable it in the Sunshing config UI. |
| 25 | +- RestAPI improvements. |
| 26 | +- Async encode added for NVENC. |
| 27 | +- Native DualSense support on Linux. |
| 28 | +- Headless monitor support on Wayland Linux. |
| 29 | +- Minimum FPS is now be based on client framerate. |
| 30 | +- New languages and updated translations. |
| 31 | +- Many behind the scene updates to the build, ci, and dependencies. |
| 32 | + |
| 33 | +For a more comprehensive list of user-facing changes, see below. |
| 34 | + |
| 35 | +## What's Changed |
| 36 | +* fix(video): prevent encoder probing with no active displays by [@FrogTheFrog](https://github.com/FrogTheFrog) in [#3592](https://github.com/LizardByte/Sunshine/pull/3592) |
| 37 | +* fix(video): allow encoder probing when there are no devices at all by [@FrogTheFrog](https://github.com/FrogTheFrog) in [#3594](https://github.com/LizardByte/Sunshine/pull/3594) |
| 38 | +* feat(display): Add revert display config on disconnect option by [@VMFortress](https://github.com/VMFortress) in [#3613](https://github.com/LizardByte/Sunshine/pull/3613) |
| 39 | +* fix(api): return proper json objects by [@ReenigneArcher](https://github.com/ReenigneArcher) in [#3544](https://github.com/LizardByte/Sunshine/pull/3544) |
| 40 | +* fix(ui): properly handle boolean json responses by [@ReenigneArcher](https://github.com/ReenigneArcher) in [#3626](https://github.com/LizardByte/Sunshine/pull/3626) |
| 41 | +* fix(dd_config)!: disable by default by [@ReenigneArcher](https://github.com/ReenigneArcher) in [#3639](https://github.com/LizardByte/Sunshine/pull/3639) |
| 42 | +* feat(nvenc): implement async encode by [@cgutman](https://github.com/cgutman) in [#3629](https://github.com/LizardByte/Sunshine/pull/3629) |
| 43 | +* fix(linux/inputtino): DualSense native support without Steam Input by [@ABeltramo](https://github.com/ABeltramo) in [#3600](https://github.com/LizardByte/Sunshine/pull/3600) |
| 44 | +* feat: Add Max Bitrate option by [@utkarshdalal](https://github.com/utkarshdalal) in [#3628](https://github.com/LizardByte/Sunshine/pull/3628) |
| 45 | +* fix: add missing strings for max_bitrate setting, and improved logging for bitrate by [@utkarshdalal](https://github.com/utkarshdalal) in [#3656](https://github.com/LizardByte/Sunshine/pull/3656) |
| 46 | +* feat(display): expose HDR toggle workaround delay to user by [@FrogTheFrog](https://github.com/FrogTheFrog) in [#3579](https://github.com/LizardByte/Sunshine/pull/3579) |
| 47 | +* fix(http): lower TLS to v1.2 for downloading covers by [@ReenigneArcher](https://github.com/ReenigneArcher) in [#3691](https://github.com/LizardByte/Sunshine/pull/3691) |
| 48 | +* fix(packaging/windows): add Sunshine directories to system PATH by [@ReenigneArcher](https://github.com/ReenigneArcher) in [#3727](https://github.com/LizardByte/Sunshine/pull/3727) |
| 49 | +* fix(linux): update sunshine rules by [@ReenigneArcher](https://github.com/ReenigneArcher) in [#3748](https://github.com/LizardByte/Sunshine/pull/3748) |
| 50 | +* feat(input/linux): DualSense adaptive trigger support by [@ABeltramo](https://github.com/ABeltramo) in [#3738](https://github.com/LizardByte/Sunshine/pull/3738) |
| 51 | +* style(Web UI): Add 1rem margin between Save and Apply buttons for better UI/UX by [@richardziegler](https://github.com/richardziegler) in [#3762](https://github.com/LizardByte/Sunshine/pull/3762) |
| 52 | +* fix(config): parse config after logging initialized by [@ReenigneArcher](https://github.com/ReenigneArcher) in [#3769](https://github.com/LizardByte/Sunshine/pull/3769) |
| 53 | +* fix(config): fix parse error when list ends on last line of config file by [@ReenigneArcher](https://github.com/ReenigneArcher) in [#3772](https://github.com/LizardByte/Sunshine/pull/3772) |
| 54 | +* fix(config): ensure logging config settings are properly loaded by [@ReenigneArcher](https://github.com/ReenigneArcher) in [#3777](https://github.com/LizardByte/Sunshine/pull/3777) |
| 55 | +* fix(linux): headless monitors on wayland by [@gorgbus](https://github.com/gorgbus) in [#3783](https://github.com/LizardByte/Sunshine/pull/3783) |
| 56 | +* fix(audio): set the bits-per-sample of Steam Streaming Speakers to 16-bit when the default audio device is 16-bit by [@andygrundman](https://github.com/andygrundman) in [#3704](https://github.com/LizardByte/Sunshine/pull/3704) |
| 57 | +* fix(apps): exit steam big picture mode on session end by [@eaglesemanation](https://github.com/eaglesemanation) in [#3808](https://github.com/LizardByte/Sunshine/pull/3808) |
| 58 | +* fix(homebrew): enable system tray for linux by [@ReenigneArcher](https://github.com/ReenigneArcher) in [#3819](https://github.com/LizardByte/Sunshine/pull/3819) |
| 59 | +* feat(audio): add an option to disable sound streaming by [@Clutchnp](https://github.com/Clutchnp) in [#3833](https://github.com/LizardByte/Sunshine/pull/3833) |
| 60 | +* fix(linux/input): improve input rules by [@jbellionjourdan](https://github.com/jbellionjourdan) in [#3857](https://github.com/LizardByte/Sunshine/pull/3857) |
| 61 | +* fix(web-ui): Change Pin to PIN by [@karasuhebi](https://github.com/karasuhebi) in [#3872](https://github.com/LizardByte/Sunshine/pull/3872) |
| 62 | +* fix(rtp): improve timestamp accuracy for video by [@andygrundman](https://github.com/andygrundman) in [#3883](https://github.com/LizardByte/Sunshine/pull/3883) |
| 63 | +* fix(installer/windows): remember service start type by [@ReenigneArcher](https://github.com/ReenigneArcher) in [#3902](https://github.com/LizardByte/Sunshine/pull/3902) |
| 64 | +* fix(package/linux): update desktop metainfo by [@joebonrichie](https://github.com/joebonrichie) in [#3901](https://github.com/LizardByte/Sunshine/pull/3901) |
| 65 | +* feat(security/windows): Add defense-in-depth measure for insecure system PATH configuration by [@cgutman](https://github.com/cgutman) in [#3971](https://github.com/LizardByte/Sunshine/pull/3971) |
| 66 | +* fix(macOS): nil displayName on macOS 26 beta by [@water-vapor](https://github.com/water-vapor) in [#3991](https://github.com/LizardByte/Sunshine/pull/3991) |
| 67 | +* fix(video): base min frame time strictly on client framerate by [@ReenigneArcher](https://github.com/ReenigneArcher) in [#3844](https://github.com/LizardByte/Sunshine/pull/3844) |
| 68 | +* chore(l10n): update translations by [@LizardByte-bot](https://github.com/LizardByte-bot) in [#3582](https://github.com/LizardByte/Sunshine/pull/3582) |
| 69 | + |
| 70 | +## New Contributors |
| 71 | +* [@VMFortress](https://github.com/VMFortress) made their first contribution in [#3613](https://github.com/LizardByte/Sunshine/pull/3613) |
| 72 | +* [@utkarshdalal](https://github.com/utkarshdalal) made their first contribution in [#3628](https://github.com/LizardByte/Sunshine/pull/3628) |
| 73 | +* [@richardziegler](https://github.com/richardziegler) made their first contribution in [#3762](https://github.com/LizardByte/Sunshine/pull/3762) |
| 74 | +* [@gorgbus](https://github.com/gorgbus) made their first contribution in [#3783](https://github.com/LizardByte/Sunshine/pull/3783) |
| 75 | +* [@eaglesemanation](https://github.com/eaglesemanation) made their first contribution in [#3808](https://github.com/LizardByte/Sunshine/pull/3808) |
| 76 | +* [@Clutchnp](https://github.com/Clutchnp) made their first contribution in [#3814](https://github.com/LizardByte/Sunshine/pull/3814) |
| 77 | +* [@SuperKenVery](https://github.com/SuperKenVery) made their first contribution in [#3828](https://github.com/LizardByte/Sunshine/pull/3828) |
| 78 | +* [@jbellionjourdan](https://github.com/jbellionjourdan) made their first contribution in [#3857](https://github.com/LizardByte/Sunshine/pull/3857) |
| 79 | +* [@grgergo1](https://github.com/grgergo1) made their first contribution in [#3876](https://github.com/LizardByte/Sunshine/pull/3876) |
| 80 | +* [@karasuhebi](https://github.com/karasuhebi) made their first contribution in [#3872](https://github.com/LizardByte/Sunshine/pull/3872) |
| 81 | +* [@activatekillswitch](https://github.com/activatekillswitch) made their first contribution in [#3919](https://github.com/LizardByte/Sunshine/pull/3919) |
| 82 | +* [@rbqvq](https://github.com/rbqvq) made their first contribution in [#3938](https://github.com/LizardByte/Sunshine/pull/3938) |
| 83 | +* [@joebonrichie](https://github.com/joebonrichie) made their first contribution in [#3901](https://github.com/LizardByte/Sunshine/pull/3901) |
| 84 | +* [@water-vapor](https://github.com/water-vapor) made their first contribution in [#3991](https://github.com/LizardByte/Sunshine/pull/3991) |
| 85 | + |
| 86 | +**Full Changelog**: https://github.com/LizardByte/Sunshine/compare/v2025.122.141614...v2025.628.4510 |
| 87 | + |
| 88 | +--- |
| 89 | +## Contributors |
| 90 | +<a href="https://github.com/ReenigneArcher" target="_blank" rel="external noopener noreferrer" aria-label="GitHub profile of contributor, ReenigneArcher" ><img src="https://github.com/ReenigneArcher.png?size=40" width="40" height="40" alt="ReenigneArcher" title="ReenigneArcher: 62 merges" ></a><a href="https://github.com/dependabot" target="_blank" rel="external noopener noreferrer" aria-label="GitHub profile of contributor, dependabot" ><img src="https://github.com/dependabot.png?size=40" width="40" height="40" alt="dependabot" title="dependabot: 56 merges" ></a><a href="https://github.com/LizardByte-bot" target="_blank" rel="external noopener noreferrer" aria-label="GitHub profile of contributor, LizardByte-bot" ><img src="https://github.com/LizardByte-bot.png?size=40" width="40" height="40" alt="LizardByte-bot" title="LizardByte-bot: 6 merges" ></a><a href="https://github.com/Clutchnp" target="_blank" rel="external noopener noreferrer" aria-label="GitHub profile of contributor, Clutchnp" ><img src="https://github.com/Clutchnp.png?size=40" width="40" height="40" alt="Clutchnp" title="Clutchnp: 5 merges" ></a><a href="https://github.com/FrogTheFrog" target="_blank" rel="external noopener noreferrer" aria-label="GitHub profile of contributor, FrogTheFrog" ><img src="https://github.com/FrogTheFrog.png?size=40" width="40" height="40" alt="FrogTheFrog" title="FrogTheFrog: 3 merges" ></a><a href="https://github.com/eaglesemanation" target="_blank" rel="external noopener noreferrer" aria-label="GitHub profile of contributor, eaglesemanation" ><img src="https://github.com/eaglesemanation.png?size=40" width="40" height="40" alt="eaglesemanation" title="eaglesemanation: 3 merges" ></a><a href="https://github.com/utkarshdalal" target="_blank" rel="external noopener noreferrer" aria-label="GitHub profile of contributor, utkarshdalal" ><img src="https://github.com/utkarshdalal.png?size=40" width="40" height="40" alt="utkarshdalal" title="utkarshdalal: 3 merges" ></a><a href="https://github.com/ABeltramo" target="_blank" rel="external noopener noreferrer" aria-label="GitHub profile of contributor, ABeltramo" ><img src="https://github.com/ABeltramo.png?size=40" width="40" height="40" alt="ABeltramo" title="ABeltramo: 2 merges" ></a><a href="https://github.com/SuperKenVery" target="_blank" rel="external noopener noreferrer" aria-label="GitHub profile of contributor, SuperKenVery" ><img src="https://github.com/SuperKenVery.png?size=40" width="40" height="40" alt="SuperKenVery" title="SuperKenVery: 2 merges" ></a><a href="https://github.com/VMFortress" target="_blank" rel="external noopener noreferrer" aria-label="GitHub profile of contributor, VMFortress" ><img src="https://github.com/VMFortress.png?size=40" width="40" height="40" alt="VMFortress" title="VMFortress: 2 merges" ></a><a href="https://github.com/activatekillswitch" target="_blank" rel="external noopener noreferrer" aria-label="GitHub profile of contributor, activatekillswitch" ><img src="https://github.com/activatekillswitch.png?size=40" width="40" height="40" alt="activatekillswitch" title="activatekillswitch: 2 merges" ></a><a href="https://github.com/andygrundman" target="_blank" rel="external noopener noreferrer" aria-label="GitHub profile of contributor, andygrundman" ><img src="https://github.com/andygrundman.png?size=40" width="40" height="40" alt="andygrundman" title="andygrundman: 2 merges" ></a><a href="https://github.com/cgutman" target="_blank" rel="external noopener noreferrer" aria-label="GitHub profile of contributor, cgutman" ><img src="https://github.com/cgutman.png?size=40" width="40" height="40" alt="cgutman" title="cgutman: 2 merges" ></a><a href="https://github.com/gorgbus" target="_blank" rel="external noopener noreferrer" aria-label="GitHub profile of contributor, gorgbus" ><img src="https://github.com/gorgbus.png?size=40" width="40" height="40" alt="gorgbus" title="gorgbus: 2 merges" ></a><a href="https://github.com/grgergo1" target="_blank" rel="external noopener noreferrer" aria-label="GitHub profile of contributor, grgergo1" ><img src="https://github.com/grgergo1.png?size=40" width="40" height="40" alt="grgergo1" title="grgergo1: 2 merges" ></a><a href="https://github.com/jbellionjourdan" target="_blank" rel="external noopener noreferrer" aria-label="GitHub profile of contributor, jbellionjourdan" ><img src="https://github.com/jbellionjourdan.png?size=40" width="40" height="40" alt="jbellionjourdan" title="jbellionjourdan: 2 merges" ></a><a href="https://github.com/joebonrichie" target="_blank" rel="external noopener noreferrer" aria-label="GitHub profile of contributor, joebonrichie" ><img src="https://github.com/joebonrichie.png?size=40" width="40" height="40" alt="joebonrichie" title="joebonrichie: 2 merges" ></a><a href="https://github.com/karasuhebi" target="_blank" rel="external noopener noreferrer" aria-label="GitHub profile of contributor, karasuhebi" ><img src="https://github.com/karasuhebi.png?size=40" width="40" height="40" alt="karasuhebi" title="karasuhebi: 2 merges" ></a><a href="https://github.com/rbqvq" target="_blank" rel="external noopener noreferrer" aria-label="GitHub profile of contributor, rbqvq" ><img src="https://github.com/rbqvq.png?size=40" width="40" height="40" alt="rbqvq" title="rbqvq: 2 merges" ></a><a href="https://github.com/richardziegler" target="_blank" rel="external noopener noreferrer" aria-label="GitHub profile of contributor, richardziegler" ><img src="https://github.com/richardziegler.png?size=40" width="40" height="40" alt="richardziegler" title="richardziegler: 2 merges" ></a><a href="https://github.com/water-vapor" target="_blank" rel="external noopener noreferrer" aria-label="GitHub profile of contributor, water-vapor" ><img src="https://github.com/water-vapor.png?size=40" width="40" height="40" alt="water-vapor" title="water-vapor: 2 merges" ></a> |
0 commit comments