diff --git a/_posts/releases/sunshine/2026-05-16-v2026.516.143833.md b/_posts/releases/sunshine/2026-05-16-v2026.516.143833.md
new file mode 100644
index 00000000..c5e62e5e
--- /dev/null
+++ b/_posts/releases/sunshine/2026-05-16-v2026.516.143833.md
@@ -0,0 +1,513 @@
+---
+layout: release
+title: Sunshine v2026.516.143833 Released
+release-tag: v2026.516.143833
+gh-repo: LizardByte/Sunshine
+gh-badge: [follow, fork, star]
+tags: [release, sunshine]
+thumbnail-img: https://app.lizardbyte.dev/dashboard/github/openGraphImages/Sunshine_624x312.png
+comments: true
+authors:
+ - github: LizardByte-bot
+---
+
+## Attention
+
+This release contains critical security updates. For more information see the following:
+
+- [GHSA-ph75-mgxh-mv57](https://github.com/LizardByte/Sunshine/security/advisories/GHSA-ph75-mgxh-mv57)
+
+Please update as soon as possible!
+
+## Breaking Changes
+
+* ViGEmBus is no longer installed automatically. Instead you can install it from the troubleshooting page of the web-ui if needed.
+* CSRF protection has been added to web-ui. If you access Sunshine through an address other than localhost you must add this to your sunshine.conf file manually. See https://docs.lizardbyte.dev/projects/sunshine/latest/md_docs_2configuration.html#csrf_allowed_origins
+
+## Highlighted Changes
+
+* Added XDG, Pipewire, and KWin direct screencast capture on Linux
+* Added Vulkan encoding on Linux
+* Added official OpenSUSE packages to LizardByte copr repos
+* Added FreeBSD packages
+* Sunshine can now bind to a specific network interface
+* Added msi/wix installer for Windows
+* Added Windows support for ARM64
+* Added signed dmg package for macOS
+* Windows executables and installers are now signed for AMD64 packages
+* New endpoints for Rest API [/api/covers]
+* Updated icons, added themes, and modernized web-ui
+* Capture audio on macOS using Tap API
+* Add client enable/disable access control from web-ui
+* Support for clients to request fractional NTSC framerates
+* Support for split frame encoding on GPUs with 2+ nvenc blocks
+* Updated FFmpeg to 8.1 branch
+
+For a comprehensive list of changes, see below.
+
+## What's Changed
+* ci(copr): Trigger release job only for non-prereleases by [@ReenigneArcher](https://github.com/ReenigneArcher) in [#4297](https://github.com/LizardByte/Sunshine/pull/4297)
+* build(Linux): Refactor Dockerfiles and build script for multi-stage, step-based builds by [@ReenigneArcher](https://github.com/ReenigneArcher) in [#4299](https://github.com/LizardByte/Sunshine/pull/4299)
+* build(deps): bump vue from 3.5.21 to 3.5.22 by [@dependabot[bot]](https://github.com/apps/dependabot) in [#4301](https://github.com/LizardByte/Sunshine/pull/4301)
+* build(linux): update pkg-config systemd variable names by [@PVermeer](https://github.com/PVermeer) in [#4303](https://github.com/LizardByte/Sunshine/pull/4303)
+* build(deps): bump third-party/build-deps from to by [@dependabot[bot]](https://github.com/apps/dependabot) in [#4307](https://github.com/LizardByte/Sunshine/pull/4307)
+* build(packaging/homebrew): Rename class from @PROJECT_NAME@ to Sunshine by [@ReenigneArcher](https://github.com/ReenigneArcher) in [#4308](https://github.com/LizardByte/Sunshine/pull/4308)
+* build(deps): bump LizardByte/actions from 2025.917.25039 to 2025.927.193939 in the lizardbyte-actions group by [@dependabot[bot]](https://github.com/apps/dependabot) in [#4309](https://github.com/LizardByte/Sunshine/pull/4309)
+* build(deps): bump LizardByte/actions from 2025.927.193939 to 2025.929.125237 in the lizardbyte-actions group by [@dependabot[bot]](https://github.com/apps/dependabot) in [#4313](https://github.com/LizardByte/Sunshine/pull/4313)
+* fix(linux): service file for Trixie by [@ReenigneArcher](https://github.com/ReenigneArcher) in [#4319](https://github.com/LizardByte/Sunshine/pull/4319)
+* build(linux): static link std libraries by [@PVermeer](https://github.com/PVermeer) in [#4321](https://github.com/LizardByte/Sunshine/pull/4321)
+* build(linux): enable cpack auto dependencies by [@PVermeer](https://github.com/PVermeer) in [#4323](https://github.com/LizardByte/Sunshine/pull/4323)
+* build(linux): explicitely set CC and CXX compilers by [@PVermeer](https://github.com/PVermeer) in [#4325](https://github.com/LizardByte/Sunshine/pull/4325)
+* feat(audio): allow sending continuous audio by [@mariotaku](https://github.com/mariotaku) in [#4261](https://github.com/LizardByte/Sunshine/pull/4261)
+* build(deps): bump LizardByte/actions from 2025.929.125237 to 2025.1011.184228 in the lizardbyte-actions group by [@dependabot[bot]](https://github.com/apps/dependabot) in [#4327](https://github.com/LizardByte/Sunshine/pull/4327)
+* feat(fps): support x-nv-video[0].clientRefreshRateX100 for requesting fractional NTSC framerates by [@andygrundman](https://github.com/andygrundman) in [#4019](https://github.com/LizardByte/Sunshine/pull/4019)
+* build(deps): bump third-party/build-deps from to by [@dependabot[bot]](https://github.com/apps/dependabot) in [#4326](https://github.com/LizardByte/Sunshine/pull/4326)
+* fix(web-ui): translation function in DisplayOutputSelector label by [@ReenigneArcher](https://github.com/ReenigneArcher) in [#4328](https://github.com/LizardByte/Sunshine/pull/4328)
+* build(deps): bump actions/setup-node from 5 to 6 in the github-actions group by [@dependabot[bot]](https://github.com/apps/dependabot) in [#4334](https://github.com/LizardByte/Sunshine/pull/4334)
+* build(deps): bump LizardByte/actions from 2025.1011.184228 to 2025.1020.14905 in the lizardbyte-actions group by [@dependabot[bot]](https://github.com/apps/dependabot) in [#4347](https://github.com/LizardByte/Sunshine/pull/4347)
+* build(deps): bump packaging/linux/flatpak/deps/shared-modules from to by [@dependabot[bot]](https://github.com/apps/dependabot) in [#4346](https://github.com/LizardByte/Sunshine/pull/4346)
+* build(deps): bump third-party/build-deps from to by [@dependabot[bot]](https://github.com/apps/dependabot) in [#4345](https://github.com/LizardByte/Sunshine/pull/4345)
+* build(rpm): Update Fedora spec and CUDA math_functions.h patch for Fedora 43+ by [@ReenigneArcher](https://github.com/ReenigneArcher) in [#4353](https://github.com/LizardByte/Sunshine/pull/4353)
+* fix(windows): Memory leak when EnumAdapters1 uses dxgi::adapter_t address as parameter by [@xd-byte](https://github.com/xd-byte) in [#4340](https://github.com/LizardByte/Sunshine/pull/4340)
+* build(deps): bump the github-actions group with 2 updates by [@dependabot[bot]](https://github.com/apps/dependabot) in [#4356](https://github.com/LizardByte/Sunshine/pull/4356)
+* build(rpm): add OpenSUSE support by [@ReenigneArcher](https://github.com/ReenigneArcher) in [#4359](https://github.com/LizardByte/Sunshine/pull/4359)
+* ci(copr): fix release event conditions by [@ReenigneArcher](https://github.com/ReenigneArcher) in [#4360](https://github.com/LizardByte/Sunshine/pull/4360)
+* ci: move bundle analysis to separate job by [@ReenigneArcher](https://github.com/ReenigneArcher) in [#4361](https://github.com/LizardByte/Sunshine/pull/4361)
+* fix(config): ensure apps.json is writeable by [@SuperSandro2000](https://github.com/SuperSandro2000) in [#4249](https://github.com/LizardByte/Sunshine/pull/4249)
+* chore(l10n): update translations by [@LizardByte-bot](https://github.com/LizardByte-bot) in [#4302](https://github.com/LizardByte/Sunshine/pull/4302)
+* build(deps): bump LizardByte/actions from 2025.1020.14905 to 2025.1028.23217 in the lizardbyte-actions group by [@dependabot[bot]](https://github.com/apps/dependabot) in [#4365](https://github.com/LizardByte/Sunshine/pull/4365)
+* build(flatpak): update org.freedesktop.Platform version by [@ReenigneArcher](https://github.com/ReenigneArcher) in [#4382](https://github.com/LizardByte/Sunshine/pull/4382)
+* docs(readme): Update for clarity and image sources by [@ReenigneArcher](https://github.com/ReenigneArcher) in [#4384](https://github.com/LizardByte/Sunshine/pull/4384)
+* build(deps): bump third-party/Simple-Web-Server from to by [@dependabot[bot]](https://github.com/apps/dependabot) in [#4370](https://github.com/LizardByte/Sunshine/pull/4370)
+* build(deps): bump boost to 1.89 by [@ReenigneArcher](https://github.com/ReenigneArcher) in [#4253](https://github.com/LizardByte/Sunshine/pull/4253)
+* build(deps): bump third-party/build-deps from to by [@dependabot[bot]](https://github.com/apps/dependabot) in [#4375](https://github.com/LizardByte/Sunshine/pull/4375)
+* build(deps): bump packaging/linux/flatpak/deps/shared-modules from to by [@dependabot[bot]](https://github.com/apps/dependabot) in [#4385](https://github.com/LizardByte/Sunshine/pull/4385)
+* feat(video): use unified color conversion matrix generator by [@ns6089](https://github.com/ns6089) in [#4387](https://github.com/LizardByte/Sunshine/pull/4387)
+* build(deps): bump third-party/build-deps from to by [@dependabot[bot]](https://github.com/apps/dependabot) in [#4392](https://github.com/LizardByte/Sunshine/pull/4392)
+* fix(config): Add missing framerateX100 fields at the initializers for the video::config_t literals by [@mcourteaux](https://github.com/mcourteaux) in [#4391](https://github.com/LizardByte/Sunshine/pull/4391)
+* fix(video): fix leaky abstraction in ogl luma shader by [@ns6089](https://github.com/ns6089) in [#4404](https://github.com/LizardByte/Sunshine/pull/4404)
+* build(deps): bump third-party/moonlight-common-c from to by [@dependabot[bot]](https://github.com/apps/dependabot) in [#4409](https://github.com/LizardByte/Sunshine/pull/4409)
+* build: add freebsd support by [@ReenigneArcher](https://github.com/ReenigneArcher) in [#4049](https://github.com/LizardByte/Sunshine/pull/4049)
+* fix(launch): Fix several launch failure conditions (exceptions thrown in child.wait, and boost::split_unix) by [@mcourteaux](https://github.com/mcourteaux) in [#4390](https://github.com/LizardByte/Sunshine/pull/4390)
+* ci: harden workflows by [@ReenigneArcher](https://github.com/ReenigneArcher) in [#4412](https://github.com/LizardByte/Sunshine/pull/4412)
+* fix(win): Windows.Graphics.Capture API frame rate capped at 60fps by [@StringWeaver](https://github.com/StringWeaver) in [#4424](https://github.com/LizardByte/Sunshine/pull/4424)
+* build(deps): bump vmactions/freebsd-vm from 1.2.6 to 1.2.7 by [@dependabot[bot]](https://github.com/apps/dependabot) in [#4425](https://github.com/LizardByte/Sunshine/pull/4425)
+* chore(l10n): update translations by [@LizardByte-bot](https://github.com/LizardByte-bot) in [#4386](https://github.com/LizardByte/Sunshine/pull/4386)
+* build(packaging/Arch): fix cuda gcc version detection by [@Garmelon](https://github.com/Garmelon) in [#4442](https://github.com/LizardByte/Sunshine/pull/4442)
+* build(deps): bump third-party/tray from to by [@dependabot[bot]](https://github.com/apps/dependabot) in [#4445](https://github.com/LizardByte/Sunshine/pull/4445)
+* build(deps): bump third-party/wayland-protocols from to by [@dependabot[bot]](https://github.com/apps/dependabot) in [#4446](https://github.com/LizardByte/Sunshine/pull/4446)
+* build(deps): bump third-party/build-deps from to by [@dependabot[bot]](https://github.com/apps/dependabot) in [#4447](https://github.com/LizardByte/Sunshine/pull/4447)
+* build(arch): temporarily disable broken Arch build by [@cgutman](https://github.com/cgutman) in [#4451](https://github.com/LizardByte/Sunshine/pull/4451)
+* build(deps): bump third-party/moonlight-common-c from to by [@dependabot[bot]](https://github.com/apps/dependabot) in [#4452](https://github.com/LizardByte/Sunshine/pull/4452)
+* build(deps): bump vue-i18n from 11.1.12 to 11.2.2 by [@dependabot[bot]](https://github.com/apps/dependabot) in [#4454](https://github.com/LizardByte/Sunshine/pull/4454)
+* build(deps): bump vue from 3.5.22 to 3.5.25 by [@dependabot[bot]](https://github.com/apps/dependabot) in [#4444](https://github.com/LizardByte/Sunshine/pull/4444)
+* build(deps): bump actions/checkout from 5 to 6 in the github-actions group by [@dependabot[bot]](https://github.com/apps/dependabot) in [#4435](https://github.com/LizardByte/Sunshine/pull/4435)
+* build(deps): bump packaging/linux/flatpak/deps/flatpak-builder-tools from to by [@dependabot[bot]](https://github.com/apps/dependabot) in [#4443](https://github.com/LizardByte/Sunshine/pull/4443)
+* build(deps): bump packaging/linux/flatpak/deps/shared-modules from to by [@dependabot[bot]](https://github.com/apps/dependabot) in [#4431](https://github.com/LizardByte/Sunshine/pull/4431)
+* fix(tray): use the blocking event loop to avoid wasting power by [@cgutman](https://github.com/cgutman) in [#4457](https://github.com/LizardByte/Sunshine/pull/4457)
+* build(deps): bump vmactions/freebsd-vm from 1.2.7 to 1.2.8 by [@dependabot[bot]](https://github.com/apps/dependabot) in [#4463](https://github.com/LizardByte/Sunshine/pull/4463)
+* ci(homebrew): enable test coverage on Linux by [@ReenigneArcher](https://github.com/ReenigneArcher) in [#3842](https://github.com/LizardByte/Sunshine/pull/3842)
+* ci(windows): Remove unused test preparation by [@ReenigneArcher](https://github.com/ReenigneArcher) in [#4467](https://github.com/LizardByte/Sunshine/pull/4467)
+* ci(homebrew): free runner space on Linux by [@ReenigneArcher](https://github.com/ReenigneArcher) in [#4477](https://github.com/LizardByte/Sunshine/pull/4477)
+* build(deps): bump third-party/build-deps from to by [@dependabot[bot]](https://github.com/apps/dependabot) in [#4472](https://github.com/LizardByte/Sunshine/pull/4472)
+* build(linux): add support for self-compiling on ubuntu 25.10 by [@a-turtle9302](https://github.com/a-turtle9302) in [#4471](https://github.com/LizardByte/Sunshine/pull/4471)
+* ci(linux): migrate Archlinux build to GitHub workflow by [@ReenigneArcher](https://github.com/ReenigneArcher) in [#4478](https://github.com/LizardByte/Sunshine/pull/4478)
+* build(tests): static link libgcc and libstdc++ on Linux by [@ReenigneArcher](https://github.com/ReenigneArcher) in [#4485](https://github.com/LizardByte/Sunshine/pull/4485)
+* build(homebrew): Run test_sunshine and coverage only for main repo by [@ReenigneArcher](https://github.com/ReenigneArcher) in [#4491](https://github.com/LizardByte/Sunshine/pull/4491)
+* style(Homebrew): Update Homebrew formula dependencies and conflicts by [@ReenigneArcher](https://github.com/ReenigneArcher) in [#4484](https://github.com/LizardByte/Sunshine/pull/4484)
+* fix: namespace declaration for boost::process::v1 by [@ReenigneArcher](https://github.com/ReenigneArcher) in [#4518](https://github.com/LizardByte/Sunshine/pull/4518)
+* chore: change libevdev source to LizardByte mirror by [@ReenigneArcher](https://github.com/ReenigneArcher) in [#4524](https://github.com/LizardByte/Sunshine/pull/4524)
+* chore(homebrew): add bottle do section placeholder by [@ReenigneArcher](https://github.com/ReenigneArcher) in [#4525](https://github.com/LizardByte/Sunshine/pull/4525)
+* feat(network): allow binding to specific interface by [@ReenigneArcher](https://github.com/ReenigneArcher) in [#4481](https://github.com/LizardByte/Sunshine/pull/4481)
+* build(deps): bump the github-actions group across 1 directory with 3 updates by [@dependabot[bot]](https://github.com/apps/dependabot) in [#4503](https://github.com/LizardByte/Sunshine/pull/4503)
+* chore: update global workflows by [@LizardByte-bot](https://github.com/LizardByte-bot) in [#4486](https://github.com/LizardByte/Sunshine/pull/4486)
+* build(deps): bump vmactions/freebsd-vm from 1.2.8 to 1.3.0 by [@dependabot[bot]](https://github.com/apps/dependabot) in [#4489](https://github.com/LizardByte/Sunshine/pull/4489)
+* build(deps): bump peter-evans/create-pull-request from 7 to 8 by [@dependabot[bot]](https://github.com/apps/dependabot) in [#4496](https://github.com/LizardByte/Sunshine/pull/4496)
+* build(deps): bump packaging/linux/flatpak/deps/shared-modules from to by [@dependabot[bot]](https://github.com/apps/dependabot) in [#4517](https://github.com/LizardByte/Sunshine/pull/4517)
+* build(deps): bump LizardByte/actions from 2025.1221.31807 to 2025.1224.155016 in the lizardbyte-actions group across 1 directory by [@dependabot[bot]](https://github.com/apps/dependabot) in [#4533](https://github.com/LizardByte/Sunshine/pull/4533)
+* build(deps): bump vue from 3.5.25 to 3.5.26 by [@dependabot[bot]](https://github.com/apps/dependabot) in [#4522](https://github.com/LizardByte/Sunshine/pull/4522)
+* build(deps): bump vue-i18n from 11.2.2 to 11.2.7 by [@dependabot[bot]](https://github.com/apps/dependabot) in [#4529](https://github.com/LizardByte/Sunshine/pull/4529)
+* build(deps): bump third-party/wayland-protocols from to by [@dependabot[bot]](https://github.com/apps/dependabot) in [#4513](https://github.com/LizardByte/Sunshine/pull/4513)
+* build(deps): bump third-party/build-deps from to by [@dependabot[bot]](https://github.com/apps/dependabot) in [#4526](https://github.com/LizardByte/Sunshine/pull/4526)
+* chore(l10n): update translations by [@LizardByte-bot](https://github.com/LizardByte-bot) in [#4497](https://github.com/LizardByte/Sunshine/pull/4497)
+* ci(homebrew): fix formula version patch by [@ReenigneArcher](https://github.com/ReenigneArcher) in [#4535](https://github.com/LizardByte/Sunshine/pull/4535)
+* ci(homebrew): fix livecheck patch by [@ReenigneArcher](https://github.com/ReenigneArcher) in [#4538](https://github.com/LizardByte/Sunshine/pull/4538)
+* build(deps): bump LizardByte/actions from 2025.1224.155016 to 2025.1227.191137 in the lizardbyte-actions group across 1 directory by [@dependabot[bot]](https://github.com/apps/dependabot) in [#4541](https://github.com/LizardByte/Sunshine/pull/4541)
+* build(Archlinux): Update GCC version in PKGBUILD to 15 by [@ReenigneArcher](https://github.com/ReenigneArcher) in [#4546](https://github.com/LizardByte/Sunshine/pull/4546)
+* fix(nvenc): Include bitstream restrictions in H.264/HEVC SPS by [@cgutman](https://github.com/cgutman) in [#4556](https://github.com/LizardByte/Sunshine/pull/4556)
+* build(packaging): bash comparison in PKGBUILD by [@ReenigneArcher](https://github.com/ReenigneArcher) in [#4565](https://github.com/LizardByte/Sunshine/pull/4565)
+* build(vaapi): Add vaMapBuffers2() stub by [@cgutman](https://github.com/cgutman) in [#4581](https://github.com/LizardByte/Sunshine/pull/4581)
+* ci: run workflows for any branch by [@ReenigneArcher](https://github.com/ReenigneArcher) in [#4584](https://github.com/LizardByte/Sunshine/pull/4584)
+* build(deps): bump third-party/build-deps from to by [@dependabot[bot]](https://github.com/apps/dependabot) in [#4578](https://github.com/LizardByte/Sunshine/pull/4578)
+* build(deps): bump third-party/moonlight-common-c from to by [@dependabot[bot]](https://github.com/apps/dependabot) in [#4576](https://github.com/LizardByte/Sunshine/pull/4576)
+* build(deps): bump vmactions/freebsd-vm from 1.3.0 to 1.3.7 by [@dependabot[bot]](https://github.com/apps/dependabot) in [#4574](https://github.com/LizardByte/Sunshine/pull/4574)
+* build(deps): bump vue-i18n from 11.2.7 to 11.2.8 by [@dependabot[bot]](https://github.com/apps/dependabot) in [#4553](https://github.com/LizardByte/Sunshine/pull/4553)
+* build(deps): bump packaging/linux/flatpak/deps/flatpak-builder-tools from to by [@dependabot[bot]](https://github.com/apps/dependabot) in [#4550](https://github.com/LizardByte/Sunshine/pull/4550)
+* build(deps): bump packaging/linux/flatpak/deps/shared-modules from to by [@dependabot[bot]](https://github.com/apps/dependabot) in [#4575](https://github.com/LizardByte/Sunshine/pull/4575)
+* build(deps): bump LizardByte/actions from 2025.1227.191137 to 2026.116.208 in the lizardbyte-actions group across 1 directory by [@dependabot[bot]](https://github.com/apps/dependabot) in [#4587](https://github.com/LizardByte/Sunshine/pull/4587)
+* build(Archlinux): Switch from calling make directly to using cmake by [@Freakness109](https://github.com/Freakness109) in [#4579](https://github.com/LizardByte/Sunshine/pull/4579)
+* fix(linux/wlr): Fix dmabuf buffer params protocol violation/leak by [@Dregu](https://github.com/Dregu) in [#4588](https://github.com/LizardByte/Sunshine/pull/4588)
+* fix(config): create apps.json from default after loading file_apps cfg by [@amarshall](https://github.com/amarshall) in [#4568](https://github.com/LizardByte/Sunshine/pull/4568)
+* build(linux): Add Fedora 43 support to the build script by [@craimasjien](https://github.com/craimasjien) in [#4532](https://github.com/LizardByte/Sunshine/pull/4532)
+* chore(l10n): update translations by [@LizardByte-bot](https://github.com/LizardByte-bot) in [#4548](https://github.com/LizardByte/Sunshine/pull/4548)
+* fix(windows): resolve disappearing cursor after KVM switch by [@tstokes22](https://github.com/tstokes22) in [#4407](https://github.com/LizardByte/Sunshine/pull/4407)
+* fix(audio-info): crash when device name contains special characters by [@ReenigneArcher](https://github.com/ReenigneArcher) in [#4095](https://github.com/LizardByte/Sunshine/pull/4095)
+* fix(macos/input): Fix handling of mouse wheel scroll events by [@andygrundman](https://github.com/andygrundman) in [#4592](https://github.com/LizardByte/Sunshine/pull/4592)
+* fix(linux): added support for logical screen size with zxdg_output_v1 by [@juliosanz](https://github.com/juliosanz) in [#4594](https://github.com/LizardByte/Sunshine/pull/4594)
+* feat(packaging/linux): enable cuda support for homebrew by [@ReenigneArcher](https://github.com/ReenigneArcher) in [#4593](https://github.com/LizardByte/Sunshine/pull/4593)
+* build(arch): enhanced arch support for linux build script by [@juliosanz](https://github.com/juliosanz) in [#4595](https://github.com/LizardByte/Sunshine/pull/4595)
+* build(windows): fix rc version for llvm clang by [@ReenigneArcher](https://github.com/ReenigneArcher) in [#4606](https://github.com/LizardByte/Sunshine/pull/4606)
+* build(flatpak): drop libnotify module by [@yakushabb](https://github.com/yakushabb) in [#4604](https://github.com/LizardByte/Sunshine/pull/4604)
+* fix(linux): fix issues with rendering and touchscreens when displays are scaled by [@juliosanz](https://github.com/juliosanz) in [#4607](https://github.com/LizardByte/Sunshine/pull/4607)
+* build(homebrew): optimize build options by [@ReenigneArcher](https://github.com/ReenigneArcher) in [#4612](https://github.com/LizardByte/Sunshine/pull/4612)
+* chore: clean up implicit conversions by [@andygrundman](https://github.com/andygrundman) in [#4611](https://github.com/LizardByte/Sunshine/pull/4611)
+* feat(macos/build): add basic macOS build script based on linux_build.sh by [@andygrundman](https://github.com/andygrundman) in [#4598](https://github.com/LizardByte/Sunshine/pull/4598)
+* perf(threads): implement adjust_thread_priority for macOS and add set_thread_name by [@andygrundman](https://github.com/andygrundman) in [#4605](https://github.com/LizardByte/Sunshine/pull/4605)
+* feat(windows): add ViGEmBus driver management API and UI integration by [@ReenigneArcher](https://github.com/ReenigneArcher) in [#4625](https://github.com/LizardByte/Sunshine/pull/4625)
+* feat(web-ui): render changelog for new release sections by [@ReenigneArcher](https://github.com/ReenigneArcher) in [#4629](https://github.com/LizardByte/Sunshine/pull/4629)
+* feat(web-ui)!: remove discord widget by [@ReenigneArcher](https://github.com/ReenigneArcher) in [#4630](https://github.com/LizardByte/Sunshine/pull/4630)
+* fix(linux/kms): skip NVIDIA cards for VAAPI on hybrid GPU laptops by [@coleleavitt](https://github.com/coleleavitt) in [#4473](https://github.com/LizardByte/Sunshine/pull/4473)
+* build(deps): bump vue from 3.5.26 to 3.5.27 by [@dependabot[bot]](https://github.com/apps/dependabot) in [#4602](https://github.com/LizardByte/Sunshine/pull/4602)
+* feat(api): add application image endpoint by [@cilps](https://github.com/cilps) in [#4627](https://github.com/LizardByte/Sunshine/pull/4627)
+* fix(web-ui): modernize UI by [@ReenigneArcher](https://github.com/ReenigneArcher) in [#4631](https://github.com/LizardByte/Sunshine/pull/4631)
+* chore(l10n): update translations by [@LizardByte-bot](https://github.com/LizardByte-bot) in [#4600](https://github.com/LizardByte/Sunshine/pull/4600)
+* build(fedora): use nvm to install npm for rawhide by [@ReenigneArcher](https://github.com/ReenigneArcher) in [#4646](https://github.com/LizardByte/Sunshine/pull/4646)
+* build(deps): bump third-party/moonlight-common-c from to by [@dependabot[bot]](https://github.com/apps/dependabot) in [#4648](https://github.com/LizardByte/Sunshine/pull/4648)
+* build(deps): bump @lizardbyte/shared-web from 2025.922.181114 to 2026.125.235713 by [@dependabot[bot]](https://github.com/apps/dependabot) in [#4632](https://github.com/LizardByte/Sunshine/pull/4632)
+* build(deps): bump vmactions/freebsd-vm from 1.3.7 to 1.3.8 by [@dependabot[bot]](https://github.com/apps/dependabot) in [#4643](https://github.com/LizardByte/Sunshine/pull/4643)
+* build(deps): bump third-party/build-deps from to by [@dependabot[bot]](https://github.com/apps/dependabot) in [#4609](https://github.com/LizardByte/Sunshine/pull/4609)
+* build(deps): bump packaging/linux/flatpak/deps/shared-modules from to by [@dependabot[bot]](https://github.com/apps/dependabot) in [#4644](https://github.com/LizardByte/Sunshine/pull/4644)
+* build(deps): bump packaging/linux/flatpak/deps/flatpak-builder-tools from to by [@dependabot[bot]](https://github.com/apps/dependabot) in [#4640](https://github.com/LizardByte/Sunshine/pull/4640)
+* build(deps): bump LizardByte/actions from 2026.116.208 to 2026.129.194351 in the lizardbyte-actions group across 1 directory by [@dependabot[bot]](https://github.com/apps/dependabot) in [#4647](https://github.com/LizardByte/Sunshine/pull/4647)
+* build: add --ignore-scripts to npm install commands by [@ReenigneArcher](https://github.com/ReenigneArcher) in [#4655](https://github.com/LizardByte/Sunshine/pull/4655)
+* build(deps): bump LizardByte/actions from 2026.129.194351 to 2026.203.15239 in the lizardbyte-actions group across 1 directory by [@dependabot[bot]](https://github.com/apps/dependabot) in [#4656](https://github.com/LizardByte/Sunshine/pull/4656)
+* feat(linux)!: Support streaming through XDG portals and Pipewire by [@ReenigneArcher](https://github.com/ReenigneArcher) in [#4417](https://github.com/LizardByte/Sunshine/pull/4417)
+* chore: update GitHub Actions to use commit hashes by [@LizardByte-bot](https://github.com/LizardByte-bot) in [#4659](https://github.com/LizardByte/Sunshine/pull/4659)
+* build(deps): bump babel from 2.17.0 to 2.18.0 by [@dependabot[bot]](https://github.com/apps/dependabot) in [#4653](https://github.com/LizardByte/Sunshine/pull/4653)
+* build(deps): bump actions/checkout from 6.0.1 to 6.0.2 in the github-actions group across 1 directory by [@dependabot[bot]](https://github.com/apps/dependabot) in [#4663](https://github.com/LizardByte/Sunshine/pull/4663)
+* build(deps): bump third-party/doxyconfig from to by [@dependabot[bot]](https://github.com/apps/dependabot) in [#4657](https://github.com/LizardByte/Sunshine/pull/4657)
+* build(deps): bump third-party/libdisplaydevice from to by [@dependabot[bot]](https://github.com/apps/dependabot) in [#4678](https://github.com/LizardByte/Sunshine/pull/4678)
+* build(deps): bump packaging/linux/flatpak/deps/shared-modules from to by [@dependabot[bot]](https://github.com/apps/dependabot) in [#4683](https://github.com/LizardByte/Sunshine/pull/4683)
+* build(deps): bump third-party/moonlight-common-c from to by [@dependabot[bot]](https://github.com/apps/dependabot) in [#4682](https://github.com/LizardByte/Sunshine/pull/4682)
+* build(deps): bump vmactions/freebsd-vm from 1.3.8 to 1.4.0 by [@dependabot[bot]](https://github.com/apps/dependabot) in [#4676](https://github.com/LizardByte/Sunshine/pull/4676)
+* fix(linux/xdgportal): populate host latency statistics by [@psyke83](https://github.com/psyke83) in [#4685](https://github.com/LizardByte/Sunshine/pull/4685)
+* fix(linux/xdgportal): flag stream as realtime by [@psyke83](https://github.com/psyke83) in [#4684](https://github.com/LizardByte/Sunshine/pull/4684)
+* refactor(packaging/windows): installer script execution by [@ReenigneArcher](https://github.com/ReenigneArcher) in [#4675](https://github.com/LizardByte/Sunshine/pull/4675)
+* feat(installer/windows): add wix installer by [@ReenigneArcher](https://github.com/ReenigneArcher) in [#3916](https://github.com/LizardByte/Sunshine/pull/3916)
+* build(windows): add arm64 support by [@rbqvq](https://github.com/rbqvq) in [#3905](https://github.com/LizardByte/Sunshine/pull/3905)
+* revert: "fix(linux/xdgportal): flag stream as realtime" by [@psyke83](https://github.com/psyke83) in [#4686](https://github.com/LizardByte/Sunshine/pull/4686)
+* docs: miscellaneous updates by [@ReenigneArcher](https://github.com/ReenigneArcher) in [#4597](https://github.com/LizardByte/Sunshine/pull/4597)
+* build(web-ui): fix rollup failing by [@rbqvq](https://github.com/rbqvq) in [#4687](https://github.com/LizardByte/Sunshine/pull/4687)
+* ci(deps): use codecov-action for test results by [@ReenigneArcher](https://github.com/ReenigneArcher) in [#4689](https://github.com/LizardByte/Sunshine/pull/4689)
+* fix(log): prevent sink destruction caused by backend exceptions by [@Yundi339](https://github.com/Yundi339) in [#4694](https://github.com/LizardByte/Sunshine/pull/4694)
+* build(deps): bump vue from 3.5.27 to 3.5.28 by [@dependabot[bot]](https://github.com/apps/dependabot) in [#4696](https://github.com/LizardByte/Sunshine/pull/4696)
+* build(deps): bump vmactions/freebsd-vm from 1.4.0 to 1.4.1 by [@dependabot[bot]](https://github.com/apps/dependabot) in [#4690](https://github.com/LizardByte/Sunshine/pull/4690)
+* build(deps): migrate ffmpeg prebuild to downloaded archive by [@ReenigneArcher](https://github.com/ReenigneArcher) in [#4699](https://github.com/LizardByte/Sunshine/pull/4699)
+* fix(flatpak): Add pipewire access for XDG portal grab by [@ReenigneArcher](https://github.com/ReenigneArcher) in [#4704](https://github.com/LizardByte/Sunshine/pull/4704)
+* fix(linux/xdgportal): improve thread loop (un)locking & teardown logic by [@psyke83](https://github.com/psyke83) in [#4705](https://github.com/LizardByte/Sunshine/pull/4705)
+* build(deps): bump LizardByte/actions from 2026.203.15239 to 2026.212.22356 in the lizardbyte-actions group across 1 directory by [@dependabot[bot]](https://github.com/apps/dependabot) in [#4706](https://github.com/LizardByte/Sunshine/pull/4706)
+* build(deps): bump vmactions/freebsd-vm from 1.4.1 to 1.4.2 by [@dependabot[bot]](https://github.com/apps/dependabot) in [#4707](https://github.com/LizardByte/Sunshine/pull/4707)
+* build(deps): bump marked from 17.0.1 to 17.0.2 by [@dependabot[bot]](https://github.com/apps/dependabot) in [#4710](https://github.com/LizardByte/Sunshine/pull/4710)
+* fix(linux): update systemd service units by [@psyke83](https://github.com/psyke83) in [#4712](https://github.com/LizardByte/Sunshine/pull/4712)
+* feat(macos/tray): allow tray icon paths to be set at runtime from .app bundle by [@andygrundman](https://github.com/andygrundman) in [#4711](https://github.com/LizardByte/Sunshine/pull/4711)
+* ci: scope workflow permissions to job level by [@ReenigneArcher](https://github.com/ReenigneArcher) in [#4717](https://github.com/LizardByte/Sunshine/pull/4717)
+* build(deps): bump LizardByte/actions from 2026.212.22356 to 2026.214.14019 in the lizardbyte-actions group across 1 directory by [@dependabot[bot]](https://github.com/apps/dependabot) in [#4719](https://github.com/LizardByte/Sunshine/pull/4719)
+* chore: update global workflows by [@LizardByte-bot](https://github.com/LizardByte-bot) in [#4725](https://github.com/LizardByte/Sunshine/pull/4725)
+* fix(linux/xdgportal): stream scaling and mode change support by [@psyke83](https://github.com/psyke83) in [#4700](https://github.com/LizardByte/Sunshine/pull/4700)
+* fix(linux): fix touch misalignment for wlgrab on scaled outputs by [@herboh](https://github.com/herboh) in [#4665](https://github.com/LizardByte/Sunshine/pull/4665)
+* fix(gh-pages): style fixes for theme switcher by [@ReenigneArcher](https://github.com/ReenigneArcher) in [#4748](https://github.com/LizardByte/Sunshine/pull/4748)
+* build(deps): bump third-party/moonlight-common-c from to by [@dependabot[bot]](https://github.com/apps/dependabot) in [#4751](https://github.com/LizardByte/Sunshine/pull/4751)
+* feat(linux/xdgportal): implement reactive capture with duplicate detection by [@psyke83](https://github.com/psyke83) in [#4740](https://github.com/LizardByte/Sunshine/pull/4740)
+* fix(linux/kmsgrab): fix handle leak in update_cursor by [@psyke83](https://github.com/psyke83) in [#4757](https://github.com/LizardByte/Sunshine/pull/4757)
+* build(deps): bump LizardByte/build-deps by [@ReenigneArcher](https://github.com/ReenigneArcher) in [#4761](https://github.com/LizardByte/Sunshine/pull/4761)
+* build(deps): bump third-party/moonlight-common-c from to by [@dependabot[bot]](https://github.com/apps/dependabot) in [#4755](https://github.com/LizardByte/Sunshine/pull/4755)
+* build(deps): bump lucide-vue-next from 0.563.0 to 0.575.0 by [@dependabot[bot]](https://github.com/apps/dependabot) in [#4752](https://github.com/LizardByte/Sunshine/pull/4752)
+* build(deps): bump packaging/linux/flatpak/deps/shared-modules from to by [@dependabot[bot]](https://github.com/apps/dependabot) in [#4741](https://github.com/LizardByte/Sunshine/pull/4741)
+* build(deps): bump marked from 17.0.2 to 17.0.3 by [@dependabot[bot]](https://github.com/apps/dependabot) in [#4744](https://github.com/LizardByte/Sunshine/pull/4744)
+* build(deps): bump packaging/linux/flatpak/deps/flatpak-builder-tools from to by [@dependabot[bot]](https://github.com/apps/dependabot) in [#4766](https://github.com/LizardByte/Sunshine/pull/4766)
+* fix: replace remaining FontAwesome icons and drop shared-web dependency by [@ReenigneArcher](https://github.com/ReenigneArcher) in [#4764](https://github.com/LizardByte/Sunshine/pull/4764)
+* build(python): migrate to pyproject.toml and bump python to 3.14 by [@ReenigneArcher](https://github.com/ReenigneArcher) in [#4772](https://github.com/LizardByte/Sunshine/pull/4772)
+* docs: add maintainer release instructions by [@ReenigneArcher](https://github.com/ReenigneArcher) in [#4773](https://github.com/LizardByte/Sunshine/pull/4773)
+* build(deps): bump third-party/moonlight-common-c from to by [@dependabot[bot]](https://github.com/apps/dependabot) in [#4765](https://github.com/LizardByte/Sunshine/pull/4765)
+* build(deps): bump vue from 3.5.28 to 3.5.29 by [@dependabot[bot]](https://github.com/apps/dependabot) in [#4767](https://github.com/LizardByte/Sunshine/pull/4767)
+* chore(github): add Qualcomm GPU option to bug report template by [@rbqvq](https://github.com/rbqvq) in [#4733](https://github.com/LizardByte/Sunshine/pull/4733)
+* chore(l10n): update translations by [@LizardByte-bot](https://github.com/LizardByte-bot) in [#4698](https://github.com/LizardByte/Sunshine/pull/4698)
+* build(deps): bump third-party/doxyconfig from to by [@dependabot[bot]](https://github.com/apps/dependabot) in [#4778](https://github.com/LizardByte/Sunshine/pull/4778)
+* fix(linux/xdgportal): don't pass argument to by [@leenr](https://github.com/leenr) in [#4754](https://github.com/LizardByte/Sunshine/pull/4754)
+* build(deps-dev): bump vite from 6.3.6 to 6.4.1 in the dev-dependencies group by [@dependabot[bot]](https://github.com/apps/dependabot) in [#4782](https://github.com/LizardByte/Sunshine/pull/4782)
+* build(deps): bump the github-actions group across 1 directory with 2 updates by [@dependabot[bot]](https://github.com/apps/dependabot) in [#4783](https://github.com/LizardByte/Sunshine/pull/4783)
+* refactor: replace macros with constexpr/consts by [@ReenigneArcher](https://github.com/ReenigneArcher) in [#4791](https://github.com/LizardByte/Sunshine/pull/4791)
+* style(cpp): separate multiple variable declarations by [@ReenigneArcher](https://github.com/ReenigneArcher) in [#4795](https://github.com/LizardByte/Sunshine/pull/4795)
+* build(deps): bump LizardByte/actions from 2026.214.14019 to 2026.227.200013 in the lizardbyte-actions group across 1 directory by [@dependabot[bot]](https://github.com/apps/dependabot) in [#4789](https://github.com/LizardByte/Sunshine/pull/4789)
+* fix: struct ordering broken in 188f1e2959e44b4a463bf4dee616a5cbee6f3557 by [@ReenigneArcher](https://github.com/ReenigneArcher) in [#4802](https://github.com/LizardByte/Sunshine/pull/4802)
+* chore: update global workflows by [@LizardByte-bot](https://github.com/LizardByte-bot) in [#4807](https://github.com/LizardByte/Sunshine/pull/4807)
+* build(deps): bump packaging/linux/flatpak/deps/flatpak-builder-tools from to by [@dependabot[bot]](https://github.com/apps/dependabot) in [#4808](https://github.com/LizardByte/Sunshine/pull/4808)
+* build(deps): bump packaging/linux/flatpak/deps/shared-modules from to by [@dependabot[bot]](https://github.com/apps/dependabot) in [#4809](https://github.com/LizardByte/Sunshine/pull/4809)
+* feat(web-ui): clipboard copy feedback on Troubleshooting logs by [@eduardomozart](https://github.com/eduardomozart) in [#4803](https://github.com/LizardByte/Sunshine/pull/4803)
+* build(deps): bump vue3-simple-icons from 15.6.0 to 16.10.0 by [@dependabot[bot]](https://github.com/apps/dependabot) in [#4804](https://github.com/LizardByte/Sunshine/pull/4804)
+* build(deps): bump lucide-vue-next from 0.575.0 to 0.576.0 by [@dependabot[bot]](https://github.com/apps/dependabot) in [#4805](https://github.com/LizardByte/Sunshine/pull/4805)
+* feat(macos): build a signed .app bundle in a .dmg by [@andygrundman](https://github.com/andygrundman) in [#4759](https://github.com/LizardByte/Sunshine/pull/4759)
+* build(deps): bump the github-actions group across 1 directory with 2 updates by [@dependabot[bot]](https://github.com/apps/dependabot) in [#4810](https://github.com/LizardByte/Sunshine/pull/4810)
+* build(deps-dev): bump serve from 14.2.5 to 14.2.6 in the dev-dependencies group by [@dependabot[bot]](https://github.com/apps/dependabot) in [#4814](https://github.com/LizardByte/Sunshine/pull/4814)
+* fix(build): ensure libopus is statically linked by [@andygrundman](https://github.com/andygrundman) in [#4819](https://github.com/LizardByte/Sunshine/pull/4819)
+* build(fedora): fix rawhide build by [@ReenigneArcher](https://github.com/ReenigneArcher) in [#4821](https://github.com/LizardByte/Sunshine/pull/4821)
+* fix(macos): hide the Dock icon by [@andygrundman](https://github.com/andygrundman) in [#4823](https://github.com/LizardByte/Sunshine/pull/4823)
+* fix(linux/portal): set env_width/env_height so touch input works by [@michalzxc](https://github.com/michalzxc) in [#4822](https://github.com/LizardByte/Sunshine/pull/4822)
+* build(deps): bump marked from 17.0.3 to 17.0.4 by [@dependabot[bot]](https://github.com/apps/dependabot) in [#4817](https://github.com/LizardByte/Sunshine/pull/4817)
+* build(deps): bump actions/setup-dotnet from 5.1.0 to 5.2.0 in the github-actions group across 1 directory by [@dependabot[bot]](https://github.com/apps/dependabot) in [#4815](https://github.com/LizardByte/Sunshine/pull/4815)
+* ci(macOS): check notary status in separate job by [@ReenigneArcher](https://github.com/ReenigneArcher) in [#4820](https://github.com/LizardByte/Sunshine/pull/4820)
+* chore(l10n): update translations by [@LizardByte-bot](https://github.com/LizardByte-bot) in [#4793](https://github.com/LizardByte/Sunshine/pull/4793)
+* build(homebrew): dynamic link opus by [@ReenigneArcher](https://github.com/ReenigneArcher) in [#4826](https://github.com/LizardByte/Sunshine/pull/4826)
+* fix(linux/wlgrab): add frame_timestamp using wayland's ready timestamp by [@andygrundman](https://github.com/andygrundman) in [#4787](https://github.com/LizardByte/Sunshine/pull/4787)
+* fix(linux): use FQDN naming for all Linux packaging types by [@psyke83](https://github.com/psyke83) in [#4779](https://github.com/LizardByte/Sunshine/pull/4779)
+* build(deps): bump lucide-vue-next from 0.576.0 to 0.577.0 by [@dependabot[bot]](https://github.com/apps/dependabot) in [#4818](https://github.com/LizardByte/Sunshine/pull/4818)
+* refactor(confighttp): HTML page handlers into generic getPage function by [@ReenigneArcher](https://github.com/ReenigneArcher) in [#4645](https://github.com/LizardByte/Sunshine/pull/4645)
+* build(deps): move nvapi to official NVIDIA repo and bump to R590 by [@ReenigneArcher](https://github.com/ReenigneArcher) in [#3725](https://github.com/LizardByte/Sunshine/pull/3725)
+* build(deps): bump vue-i18n from 11.2.8 to 11.3.0 by [@dependabot[bot]](https://github.com/apps/dependabot) in [#4828](https://github.com/LizardByte/Sunshine/pull/4828)
+* feat(linux/xdgportal): implement event-driven capture by [@psyke83](https://github.com/psyke83) in [#4768](https://github.com/LizardByte/Sunshine/pull/4768)
+* build(windows): sign windows executables by [@ReenigneArcher](https://github.com/ReenigneArcher) in [#4829](https://github.com/LizardByte/Sunshine/pull/4829)
+* build(deps): bump vue from 3.5.29 to 3.5.30 by [@dependabot[bot]](https://github.com/apps/dependabot) in [#4834](https://github.com/LizardByte/Sunshine/pull/4834)
+* chore(l10n): update translations by [@LizardByte-bot](https://github.com/LizardByte-bot) in [#4831](https://github.com/LizardByte/Sunshine/pull/4831)
+* fix(web-ui): add missing featured apps platform icons by [@ReenigneArcher](https://github.com/ReenigneArcher) in [#4837](https://github.com/LizardByte/Sunshine/pull/4837)
+* ci(windows): disable signing for arm64 by [@ReenigneArcher](https://github.com/ReenigneArcher) in [#4838](https://github.com/LizardByte/Sunshine/pull/4838)
+* fix(linux/xdgportal): descriptor/pointer cleanups by [@psyke83](https://github.com/psyke83) in [#4840](https://github.com/LizardByte/Sunshine/pull/4840)
+* feat(web-ui): add browse feature to find directories/executables/files by [@ReenigneArcher](https://github.com/ReenigneArcher) in [#4848](https://github.com/LizardByte/Sunshine/pull/4848)
+* build(deps): bump packaging/linux/flatpak/deps/flatpak-builder-tools from to by [@dependabot[bot]](https://github.com/apps/dependabot) in [#4844](https://github.com/LizardByte/Sunshine/pull/4844)
+* build(deps): bump actions/download-artifact from 8.0.0 to 8.0.1 in the github-actions group across 1 directory by [@dependabot[bot]](https://github.com/apps/dependabot) in [#4842](https://github.com/LizardByte/Sunshine/pull/4842)
+* chore(l10n): update translations by [@LizardByte-bot](https://github.com/LizardByte-bot) in [#4841](https://github.com/LizardByte/Sunshine/pull/4841)
+* build(Fedora): Adjust version ranges for GCC selection by [@ReenigneArcher](https://github.com/ReenigneArcher) in [#4851](https://github.com/LizardByte/Sunshine/pull/4851)
+* fix(linux/xdgportal): avoid duplicate frame insertion by [@psyke83](https://github.com/psyke83) in [#4839](https://github.com/LizardByte/Sunshine/pull/4839)
+* build(deps): bump vmactions/freebsd-vm from 1.4.2 to 1.4.3 by [@dependabot[bot]](https://github.com/apps/dependabot) in [#4849](https://github.com/LizardByte/Sunshine/pull/4849)
+* build(deps): bump packaging/linux/flatpak/deps/shared-modules from to by [@dependabot[bot]](https://github.com/apps/dependabot) in [#4850](https://github.com/LizardByte/Sunshine/pull/4850)
+* build(linux): generate glad sources at compile time by [@ReenigneArcher](https://github.com/ReenigneArcher) in [#4798](https://github.com/LizardByte/Sunshine/pull/4798)
+* build(deps): bump third-party/doxyconfig from to by [@dependabot[bot]](https://github.com/apps/dependabot) in [#4853](https://github.com/LizardByte/Sunshine/pull/4853)
+* chore(i18n): clarify cmd notes by [@ReenigneArcher](https://github.com/ReenigneArcher) in [#4856](https://github.com/LizardByte/Sunshine/pull/4856)
+* build(deps): bump third-party/inputtino from to by [@dependabot[bot]](https://github.com/apps/dependabot) in [#4860](https://github.com/LizardByte/Sunshine/pull/4860)
+* build(deps): bump third-party/glad from to by [@dependabot[bot]](https://github.com/apps/dependabot) in [#4858](https://github.com/LizardByte/Sunshine/pull/4858)
+* fix(linux/xdgportal): allow unified systemd service for all capture methods by [@psyke83](https://github.com/psyke83) in [#4854](https://github.com/LizardByte/Sunshine/pull/4854)
+* feat(linux/keyboard): add F13-F24 keycodes by [@4xMSAA](https://github.com/4xMSAA) in [#4833](https://github.com/LizardByte/Sunshine/pull/4833)
+* build(deps): bump apple-actions/import-codesign-certs from 6.0.0 to 6.1.0 by [@dependabot[bot]](https://github.com/apps/dependabot) in [#4864](https://github.com/LizardByte/Sunshine/pull/4864)
+* build(deps): bump third-party/nv-codec-headers from to by [@dependabot[bot]](https://github.com/apps/dependabot) in [#4866](https://github.com/LizardByte/Sunshine/pull/4866)
+* build(deps): bump actions/cache from 5.0.3 to 5.0.4 in the github-actions group across 1 directory by [@dependabot[bot]](https://github.com/apps/dependabot) in [#4870](https://github.com/LizardByte/Sunshine/pull/4870)
+* build(deps): bump codecov/codecov-action from 5.5.2 to 5.5.3 by [@dependabot[bot]](https://github.com/apps/dependabot) in [#4871](https://github.com/LizardByte/Sunshine/pull/4871)
+* build(deps): bump packaging/linux/flatpak/deps/flatpak-builder-tools from to by [@dependabot[bot]](https://github.com/apps/dependabot) in [#4872](https://github.com/LizardByte/Sunshine/pull/4872)
+* build(deps): bump third-party/inputtino from to by [@dependabot[bot]](https://github.com/apps/dependabot) in [#4873](https://github.com/LizardByte/Sunshine/pull/4873)
+* fix(linux): use FQDN service name in desktop launcher by [@htrex](https://github.com/htrex) in [#4874](https://github.com/LizardByte/Sunshine/pull/4874)
+* fix(linux/xdgportal): portalgrab capture stability & mutter compatibility by [@psyke83](https://github.com/psyke83) in [#4875](https://github.com/LizardByte/Sunshine/pull/4875)
+* feat(macOS): Capture audio on macOS using Tap API by [@ThomVanL](https://github.com/ThomVanL) in [#4209](https://github.com/LizardByte/Sunshine/pull/4209)
+* feat(linux/glad): implement EGL_IMG_context_priority by [@psyke83](https://github.com/psyke83) in [#4857](https://github.com/LizardByte/Sunshine/pull/4857)
+* build(deps): bump packaging/linux/flatpak/deps/flatpak-builder-tools from to by [@dependabot[bot]](https://github.com/apps/dependabot) in [#4880](https://github.com/LizardByte/Sunshine/pull/4880)
+* build(deps): bump marked from 17.0.4 to 17.0.5 by [@dependabot[bot]](https://github.com/apps/dependabot) in [#4881](https://github.com/LizardByte/Sunshine/pull/4881)
+* build(deps): bump third-party/doxyconfig from to by [@dependabot[bot]](https://github.com/apps/dependabot) in [#4888](https://github.com/LizardByte/Sunshine/pull/4888)
+* build(deps): bump third-party/libdisplaydevice from to by [@dependabot[bot]](https://github.com/apps/dependabot) in [#4887](https://github.com/LizardByte/Sunshine/pull/4887)
+* build(deps): bump packaging/linux/flatpak/deps/shared-modules from to by [@dependabot[bot]](https://github.com/apps/dependabot) in [#4886](https://github.com/LizardByte/Sunshine/pull/4886)
+* fix(csrf): make errors more apparent by [@ReenigneArcher](https://github.com/ReenigneArcher) in [#4889](https://github.com/LizardByte/Sunshine/pull/4889)
+* fix: clear tray icon when unpairing the last paired client by [@aliefe04](https://github.com/aliefe04) in [#4890](https://github.com/LizardByte/Sunshine/pull/4890)
+* feat(linux): add thread priority support for POSIX systems by [@psyke83](https://github.com/psyke83) in [#4885](https://github.com/LizardByte/Sunshine/pull/4885)
+* build: fix build-deps tag matching by [@ReenigneArcher](https://github.com/ReenigneArcher) in [#4899](https://github.com/LizardByte/Sunshine/pull/4899)
+* build(deps): bump third-party/tray from to by [@dependabot[bot]](https://github.com/apps/dependabot) in [#4894](https://github.com/LizardByte/Sunshine/pull/4894)
+* build(deps): bump msys2/setup-msys2 from 2.30.0 to 2.31.0 by [@dependabot[bot]](https://github.com/apps/dependabot) in [#4893](https://github.com/LizardByte/Sunshine/pull/4893)
+* build(deps): bump lucide-vue-next from 0.577.0 to 1.0.0 by [@dependabot[bot]](https://github.com/apps/dependabot) in [#4905](https://github.com/LizardByte/Sunshine/pull/4905)
+* build(deps): bump azure/trusted-signing-action from 1.1.0 to 1.2.0 by [@dependabot[bot]](https://github.com/apps/dependabot) in [#4903](https://github.com/LizardByte/Sunshine/pull/4903)
+* build(deps): bump packaging/linux/flatpak/deps/flatpak-builder-tools from to by [@dependabot[bot]](https://github.com/apps/dependabot) in [#4910](https://github.com/LizardByte/Sunshine/pull/4910)
+* build(deps): bump vue from 3.5.30 to 3.5.31 by [@dependabot[bot]](https://github.com/apps/dependabot) in [#4911](https://github.com/LizardByte/Sunshine/pull/4911)
+* build(deps): bump LizardByte/actions from 2026.227.200013 to 2026.328.161128 in the lizardbyte-actions group across 1 directory by [@dependabot[bot]](https://github.com/apps/dependabot) in [#4920](https://github.com/LizardByte/Sunshine/pull/4920)
+* test(windows): fix display device tests with clang by [@ReenigneArcher](https://github.com/ReenigneArcher) in [#4921](https://github.com/LizardByte/Sunshine/pull/4921)
+* chore: update global workflows by [@LizardByte-bot](https://github.com/LizardByte-bot) in [#4916](https://github.com/LizardByte/Sunshine/pull/4916)
+* build(deps): bump codecov/codecov-action from 5.5.3 to 6.0.0 by [@dependabot[bot]](https://github.com/apps/dependabot) in [#4913](https://github.com/LizardByte/Sunshine/pull/4913)
+* build: Allow FFMPEG_PLATFORM_LIBRARIES to be overridden by the user by [@chewi](https://github.com/chewi) in [#4915](https://github.com/LizardByte/Sunshine/pull/4915)
+* fix: restore stdin-based pairing by [@MrAwesome](https://github.com/MrAwesome) in [#4912](https://github.com/LizardByte/Sunshine/pull/4912)
+* build(deps): bump third-party/moonlight-common-c from to by [@dependabot[bot]](https://github.com/apps/dependabot) in [#4923](https://github.com/LizardByte/Sunshine/pull/4923)
+* feat(api/ui): add client enable/disable access control by [@neatnoise](https://github.com/neatnoise) in [#4771](https://github.com/LizardByte/Sunshine/pull/4771)
+* fix(windows): update-path.bat registry command syntax in installer by [@kmzs123](https://github.com/kmzs123) in [#4902](https://github.com/LizardByte/Sunshine/pull/4902)
+* build(deps): bump vmactions/freebsd-vm from 1.4.3 to 1.4.4 by [@dependabot[bot]](https://github.com/apps/dependabot) in [#4928](https://github.com/LizardByte/Sunshine/pull/4928)
+* feat(linux): Add Vulkan video encoder by [@neatnoise](https://github.com/neatnoise) in [#4603](https://github.com/LizardByte/Sunshine/pull/4603)
+* build(deps): bump third-party/moonlight-common-c from to by [@dependabot[bot]](https://github.com/apps/dependabot) in [#4930](https://github.com/LizardByte/Sunshine/pull/4930)
+* build(deps): bump third-party/nvapi from to by [@dependabot[bot]](https://github.com/apps/dependabot) in [#4917](https://github.com/LizardByte/Sunshine/pull/4917)
+* chore: update global workflows by [@LizardByte-bot](https://github.com/LizardByte-bot) in [#4936](https://github.com/LizardByte/Sunshine/pull/4936)
+* build(deps): bump vue from 3.5.31 to 3.5.32 by [@dependabot[bot]](https://github.com/apps/dependabot) in [#4941](https://github.com/LizardByte/Sunshine/pull/4941)
+* build(deps): bump marked from 17.0.5 to 18.0.0 by [@dependabot[bot]](https://github.com/apps/dependabot) in [#4957](https://github.com/LizardByte/Sunshine/pull/4957)
+* build(deps): bump vue-i18n from 11.3.0 to 11.3.1 by [@dependabot[bot]](https://github.com/apps/dependabot) in [#4953](https://github.com/LizardByte/Sunshine/pull/4953)
+* build(deps): bump packaging/linux/flatpak/deps/shared-modules from to by [@dependabot[bot]](https://github.com/apps/dependabot) in [#4949](https://github.com/LizardByte/Sunshine/pull/4949)
+* fix: redact logging of sensitive config & CSRF validation by [@psyke83](https://github.com/psyke83) in [#4955](https://github.com/LizardByte/Sunshine/pull/4955)
+* fix(linux): correct "Pulseadio" typo in PulseAudio log messages by [@atassis](https://github.com/atassis) in [#4956](https://github.com/LizardByte/Sunshine/pull/4956)
+* fix(linux/vulkan): add 16-bit DRM format support for HDR DMA-BUF import by [@neatnoise](https://github.com/neatnoise) in [#4962](https://github.com/LizardByte/Sunshine/pull/4962)
+* fix(linux/xdgportal): Properly support multiple screens by exposing pipewire streams as separate displays by [@Kishi85](https://github.com/Kishi85) in [#4931](https://github.com/LizardByte/Sunshine/pull/4931)
+* fix(linux/postins): allow running on rpm-ostree environments by [@ykshek](https://github.com/ykshek) in [#4963](https://github.com/LizardByte/Sunshine/pull/4963)
+* build(deps): bump actions/github-script from 8.0.0 to 9.0.0 by [@dependabot[bot]](https://github.com/apps/dependabot) in [#4970](https://github.com/LizardByte/Sunshine/pull/4970)
+* build(deps): bump vue-i18n from 11.3.1 to 11.3.2 by [@dependabot[bot]](https://github.com/apps/dependabot) in [#4964](https://github.com/LizardByte/Sunshine/pull/4964)
+* fix(linux/xdgportal): Improve multi-monitor support and work around breaking kmsgrab by [@Kishi85](https://github.com/Kishi85) in [#4969](https://github.com/LizardByte/Sunshine/pull/4969)
+* chore: update global workflows by [@LizardByte-bot](https://github.com/LizardByte-bot) in [#4976](https://github.com/LizardByte/Sunshine/pull/4976)
+* build(deps): bump packaging/linux/flatpak/deps/flatpak-builder-tools from to by [@dependabot[bot]](https://github.com/apps/dependabot) in [#4983](https://github.com/LizardByte/Sunshine/pull/4983)
+* build(deps): bump packaging/linux/flatpak/deps/shared-modules from to by [@dependabot[bot]](https://github.com/apps/dependabot) in [#4975](https://github.com/LizardByte/Sunshine/pull/4975)
+* build(deps): bump peter-evans/create-pull-request from 8.1.0 to 8.1.1 by [@dependabot[bot]](https://github.com/apps/dependabot) in [#4974](https://github.com/LizardByte/Sunshine/pull/4974)
+* build(deps): bump actions/upload-artifact from 7.0.0 to 7.0.1 by [@dependabot[bot]](https://github.com/apps/dependabot) in [#4973](https://github.com/LizardByte/Sunshine/pull/4973)
+* fix(linux/xdgportal): Additional error handling and minor code improvements by [@Kishi85](https://github.com/Kishi85) in [#4979](https://github.com/LizardByte/Sunshine/pull/4979)
+* feat(linux/vulkan): enable RADV low-latency Vulkan Video encoding by [@neatnoise](https://github.com/neatnoise) in [#4984](https://github.com/LizardByte/Sunshine/pull/4984)
+* build(deps-dev): bump vite from 6.4.1 to 6.4.2 by [@dependabot[bot]](https://github.com/apps/dependabot) in [#4985](https://github.com/LizardByte/Sunshine/pull/4985)
+* revert: "feat(linux/vulkan): enable RADV low-latency Vulkan Video encoding" by [@neatnoise](https://github.com/neatnoise) in [#4989](https://github.com/LizardByte/Sunshine/pull/4989)
+* chore: update global workflows by [@LizardByte-bot](https://github.com/LizardByte-bot) in [#4990](https://github.com/LizardByte/Sunshine/pull/4990)
+* fix(linux/vulkan): encoder not working on NVIDIA GPUs by [@Signynt](https://github.com/Signynt) in [#4994](https://github.com/LizardByte/Sunshine/pull/4994)
+* chore(deps): update dependency @vitejs/plugin-vue to v6.0.6 by [@renovate[bot]](https://github.com/apps/renovate) in [#4992](https://github.com/LizardByte/Sunshine/pull/4992)
+* chore(deps): update actions/cache action to v5.0.5 by [@renovate[bot]](https://github.com/apps/renovate) in [#4991](https://github.com/LizardByte/Sunshine/pull/4991)
+* fix(linux/vulkan): guard deprecated FFmpeg Vulkan queue lock/unlock by [@neatnoise](https://github.com/neatnoise) in [#5005](https://github.com/LizardByte/Sunshine/pull/5005)
+* chore(deps): update dependency setuptools to v81 by [@renovate[bot]](https://github.com/apps/renovate) in [#5003](https://github.com/LizardByte/Sunshine/pull/5003)
+* chore(deps): update lizardbyte/actions action to v2026.417.35446 by [@renovate[bot]](https://github.com/apps/renovate) in [#5012](https://github.com/LizardByte/Sunshine/pull/5012)
+* chore(deps): update dependency marked to v18.0.1 by [@renovate[bot]](https://github.com/apps/renovate) in [#5011](https://github.com/LizardByte/Sunshine/pull/5011)
+* chore(deps): update vmactions/freebsd-vm action to v1.4.5 by [@renovate[bot]](https://github.com/apps/renovate) in [#5001](https://github.com/LizardByte/Sunshine/pull/5001)
+* build(deps): bump packaging/linux/flatpak/deps/flatpak-builder-tools from to by [@dependabot[bot]](https://github.com/apps/dependabot) in [#5015](https://github.com/LizardByte/Sunshine/pull/5015)
+* chore(deps): update msys2/setup-msys2 action to v2.31.1 by [@renovate[bot]](https://github.com/apps/renovate) in [#5016](https://github.com/LizardByte/Sunshine/pull/5016)
+* chore(deps): update dependency @codecov/vite-plugin to v2 by [@renovate[bot]](https://github.com/apps/renovate) in [#4996](https://github.com/LizardByte/Sunshine/pull/4996)
+* fix(linux): auto-detect GPU with connected display for VAAPI and Vulkan by [@neatnoise](https://github.com/neatnoise) in [#4961](https://github.com/LizardByte/Sunshine/pull/4961)
+* refactor(linux/xdgportal): Split pipewire code into it's own file so it can be reused by [@Kishi85](https://github.com/Kishi85) in [#5008](https://github.com/LizardByte/Sunshine/pull/5008)
+* fix(rtsp): ignore clientRefreshRateX100 if more than 1% variance from framerate by [@ReenigneArcher](https://github.com/ReenigneArcher) in [#5027](https://github.com/LizardByte/Sunshine/pull/5027)
+* fix: Resolve minimum_fps_target related issues on all platforms by [@psyke83](https://github.com/psyke83) in [#4967](https://github.com/LizardByte/Sunshine/pull/4967)
+* fix(linux/vulkan): remove deprecated FFmpeg Vulkan queue lock/unlock by [@neatnoise](https://github.com/neatnoise) in [#5031](https://github.com/LizardByte/Sunshine/pull/5031)
+* feat(nvenc): support for split frame encoding on GPUs with 2+ nvenc blocks by [@andygrundman](https://github.com/andygrundman) in [#4892](https://github.com/LizardByte/Sunshine/pull/4892)
+* refactor(linux/xdgportal): Move elevated privilege check/drop to misc.cpp by [@Kishi85](https://github.com/Kishi85) in [#5026](https://github.com/LizardByte/Sunshine/pull/5026)
+* fix(linux/vulkan): change default rate control from VBR to CBR by [@neatnoise](https://github.com/neatnoise) in [#5032](https://github.com/LizardByte/Sunshine/pull/5032)
+* chore(deps): update actions/setup-node action to v6.4.0 by [@renovate[bot]](https://github.com/apps/renovate) in [#5033](https://github.com/LizardByte/Sunshine/pull/5033)
+* chore(deps): update dependency marked to v18.0.2 by [@renovate[bot]](https://github.com/apps/renovate) in [#5022](https://github.com/LizardByte/Sunshine/pull/5022)
+* build(deps): bump third-party/nv-codec-headers from to by [@dependabot[bot]](https://github.com/apps/dependabot) in [#5035](https://github.com/LizardByte/Sunshine/pull/5035)
+* fix(linux): multi-GPU segfault + wlr GPU auto selection, DMA-BUF metadata planes and revert wlr vulkan support by [@neatnoise](https://github.com/neatnoise) in [#5030](https://github.com/LizardByte/Sunshine/pull/5030)
+* chore(deps): update apple-actions/import-codesign-certs action to v7 by [@renovate[bot]](https://github.com/apps/renovate) in [#5037](https://github.com/LizardByte/Sunshine/pull/5037)
+* fix: touch scaling bug and initialize display variables as 0 by [@ReenigneArcher](https://github.com/ReenigneArcher) in [#4758](https://github.com/LizardByte/Sunshine/pull/4758)
+* fix(network): restore ExternalIP in server info response by [@neatnoise](https://github.com/neatnoise) in [#5043](https://github.com/LizardByte/Sunshine/pull/5043)
+* chore(deps): update dependency vue to v3.5.33 by [@renovate[bot]](https://github.com/apps/renovate) in [#5042](https://github.com/LizardByte/Sunshine/pull/5042)
+* fix(linux/pipewire): Fix absolute touchinput for multi-monitor by [@Kishi85](https://github.com/Kishi85) in [#5041](https://github.com/LizardByte/Sunshine/pull/5041)
+* refactor(linux): remove leftovers from portalgrab -> pipewire split by [@psyke83](https://github.com/psyke83) in [#5039](https://github.com/LizardByte/Sunshine/pull/5039)
+* docs(readme): restructure feature compatibility tables by [@neatnoise](https://github.com/neatnoise) in [#5040](https://github.com/LizardByte/Sunshine/pull/5040)
+* fix(linux/pipewire): calculate env_width/env_height from all displays for pipewire_display_t by [@Kishi85](https://github.com/Kishi85) in [#5050](https://github.com/LizardByte/Sunshine/pull/5050)
+* build(deps): bump packaging/linux/flatpak/deps/flatpak-builder-tools from to by [@dependabot[bot]](https://github.com/apps/dependabot) in [#5052](https://github.com/LizardByte/Sunshine/pull/5052)
+* chore(deps): update dependency vue-i18n to v11.4.0 - autoclosed by [@renovate[bot]](https://github.com/apps/renovate) in [#5048](https://github.com/LizardByte/Sunshine/pull/5048)
+* feat(linux/xdgportal): Simplify display matching logic by [@Kishi85](https://github.com/Kishi85) in [#5053](https://github.com/LizardByte/Sunshine/pull/5053)
+* build(deps): bump packaging/linux/flatpak/deps/flatpak-builder-tools from to by [@dependabot[bot]](https://github.com/apps/dependabot) in [#5055](https://github.com/LizardByte/Sunshine/pull/5055)
+* feat(linux/pipewire): Add support for pipewire stream selection by object serial by [@Kishi85](https://github.com/Kishi85) in [#5054](https://github.com/LizardByte/Sunshine/pull/5054)
+* build(deps): bump third-party/build-deps from to by [@dependabot[bot]](https://github.com/apps/dependabot) in [#5056](https://github.com/LizardByte/Sunshine/pull/5056)
+* feat(capture/linux): add KWin direct screencast capture method by [@Kishi85](https://github.com/Kishi85) in [#5009](https://github.com/LizardByte/Sunshine/pull/5009)
+* feat(linux/pipewire): Handle HDR(Rec. 2020/SMPTE 2084 PQ) visuals by [@garnacho](https://github.com/garnacho) in [#5025](https://github.com/LizardByte/Sunshine/pull/5025)
+* build(deps): bump packaging/linux/flatpak/deps/flatpak-builder-tools from to by [@dependabot[bot]](https://github.com/apps/dependabot) in [#5073](https://github.com/LizardByte/Sunshine/pull/5073)
+* build(deps): bump packaging/linux/flatpak/deps/shared-modules from to by [@dependabot[bot]](https://github.com/apps/dependabot) in [#5070](https://github.com/LizardByte/Sunshine/pull/5070)
+* build(deps): bump third-party/wlr-protocols from to by [@dependabot[bot]](https://github.com/apps/dependabot) in [#5072](https://github.com/LizardByte/Sunshine/pull/5072)
+* chore(deps): update dependency marked to v18.0.3 by [@renovate[bot]](https://github.com/apps/renovate) in [#5068](https://github.com/LizardByte/Sunshine/pull/5068)
+* feat(input): implement multiseat support and virtual device naming by [@willybarret](https://github.com/willybarret) in [#4954](https://github.com/LizardByte/Sunshine/pull/4954)
+* fix(linux): security: drop CAP_SYS_ADMIN when possible, retain CAP_SYS_NICE by [@psyke83](https://github.com/psyke83) in [#5075](https://github.com/LizardByte/Sunshine/pull/5075)
+* feat(linux/wlgrab): match output_name by xdg_output name by [@netanelbi](https://github.com/netanelbi) in [#5071](https://github.com/LizardByte/Sunshine/pull/5071)
+* build(deps): bump packaging/linux/flatpak/deps/flatpak-builder-tools from to by [@dependabot[bot]](https://github.com/apps/dependabot) in [#5077](https://github.com/LizardByte/Sunshine/pull/5077)
+* chore(deps): update dependency vue to v3.5.34 by [@renovate[bot]](https://github.com/apps/renovate) in [#5078](https://github.com/LizardByte/Sunshine/pull/5078)
+* build(linux): add ubuntu 26.04 support by [@ReenigneArcher](https://github.com/ReenigneArcher) in [#5051](https://github.com/LizardByte/Sunshine/pull/5051)
+* build(linux): fix gcov detection for ArchLinux by [@ReenigneArcher](https://github.com/ReenigneArcher) in [#5081](https://github.com/LizardByte/Sunshine/pull/5081)
+* chore(deps): update dependency vue-i18n to v11.4.2 by [@renovate[bot]](https://github.com/apps/renovate) in [#5080](https://github.com/LizardByte/Sunshine/pull/5080)
+* build(web-ui): commit lock file by [@ReenigneArcher](https://github.com/ReenigneArcher) in [#5083](https://github.com/LizardByte/Sunshine/pull/5083)
+* fix: show actual bind address in Web UI log message by [@aliefe04](https://github.com/aliefe04) in [#4897](https://github.com/LizardByte/Sunshine/pull/4897)
+* build(windows): Always setup Node.js in Windows CI by [@ReenigneArcher](https://github.com/ReenigneArcher) in [#5084](https://github.com/LizardByte/Sunshine/pull/5084)
+* feat(nvenc): support intraRefresh for h264, add outputRecoveryPointSEI=1 to intra-refresh config for h264 and hevc by [@andygrundman](https://github.com/andygrundman) in [#5091](https://github.com/LizardByte/Sunshine/pull/5091)
+* fix: building without the system tray enabled by [@chewi](https://github.com/chewi) in [#5092](https://github.com/LizardByte/Sunshine/pull/5092)
+* build(deps): bump third-party/build-deps from to by [@dependabot[bot]](https://github.com/apps/dependabot) in [#5097](https://github.com/LizardByte/Sunshine/pull/5097)
+* build(deps): bump packaging/linux/flatpak/deps/shared-modules from to by [@dependabot[bot]](https://github.com/apps/dependabot) in [#5098](https://github.com/LizardByte/Sunshine/pull/5098)
+* ci: remove moonlight discord release announcement by [@ReenigneArcher](https://github.com/ReenigneArcher) in [#5099](https://github.com/LizardByte/Sunshine/pull/5099)
+* build(deps): Add SUNSHINE_SYSTEM_VULKAN_HEADERS option by [@chewi](https://github.com/chewi) in [#5103](https://github.com/LizardByte/Sunshine/pull/5103)
+* build(macos): configure C++ standard and ICU root by [@martona](https://github.com/martona) in [#5101](https://github.com/LizardByte/Sunshine/pull/5101)
+* fix(macos): preserve modifier state in input events by [@martona](https://github.com/martona) in [#5102](https://github.com/LizardByte/Sunshine/pull/5102)
+* build(windows): drop unused boost-locale by [@ReenigneArcher](https://github.com/ReenigneArcher) in [#5116](https://github.com/LizardByte/Sunshine/pull/5116)
+* ci(windows): add linkage check by [@ReenigneArcher](https://github.com/ReenigneArcher) in [#5118](https://github.com/LizardByte/Sunshine/pull/5118)
+* chore(deps): update azure/trusted-signing-action action to v2 by [@renovate[bot]](https://github.com/apps/renovate) in [#5117](https://github.com/LizardByte/Sunshine/pull/5117)
+* fix(macos): provide left/right identity for modifiers by [@martona](https://github.com/martona) in [#5115](https://github.com/LizardByte/Sunshine/pull/5115)
+* feat(web-ui): add logout by [@ReenigneArcher](https://github.com/ReenigneArcher) in [#5121](https://github.com/LizardByte/Sunshine/pull/5121)
+* build(deps): bump third-party/moonlight-common-c from to by [@dependabot[bot]](https://github.com/apps/dependabot) in [#5123](https://github.com/LizardByte/Sunshine/pull/5123)
+* chore(deps): update dependency @vitejs/plugin-vue to v6.0.7 by [@renovate[bot]](https://github.com/apps/renovate) in [#5122](https://github.com/LizardByte/Sunshine/pull/5122)
+* build(deps): bump third-party/plasma-wayland-protocols from to by [@dependabot[bot]](https://github.com/apps/dependabot) in [#5124](https://github.com/LizardByte/Sunshine/pull/5124)
+* fix(linux/pipewire): Add 10-bit RGB formats with 2-bit Alpha to format_map by [@flibitijibibo](https://github.com/flibitijibibo) in [#5088](https://github.com/LizardByte/Sunshine/pull/5088)
+* chore: update global workflows by [@LizardByte-bot](https://github.com/LizardByte-bot) in [#5126](https://github.com/LizardByte/Sunshine/pull/5126)
+* fix(audio): fix install of Steam Streaming Speakers driver by [@andygrundman](https://github.com/andygrundman) in [#5125](https://github.com/LizardByte/Sunshine/pull/5125)
+* build(deps): bump third-party/doxyconfig from to by [@dependabot[bot]](https://github.com/apps/dependabot) in [#5127](https://github.com/LizardByte/Sunshine/pull/5127)
+* build: bump freebsd version to 14.4 and build-deps to v2026.516.30821 by [@ReenigneArcher](https://github.com/ReenigneArcher) in [#5129](https://github.com/LizardByte/Sunshine/pull/5129)
+
+## New Contributors
+* [@xd-byte](https://github.com/xd-byte) made their first contribution in [#4340](https://github.com/LizardByte/Sunshine/pull/4340)
+* [@SuperSandro2000](https://github.com/SuperSandro2000) made their first contribution in [#4249](https://github.com/LizardByte/Sunshine/pull/4249)
+* [@mcourteaux](https://github.com/mcourteaux) made their first contribution in [#4391](https://github.com/LizardByte/Sunshine/pull/4391)
+* [@StringWeaver](https://github.com/StringWeaver) made their first contribution in [#4424](https://github.com/LizardByte/Sunshine/pull/4424)
+* [@Garmelon](https://github.com/Garmelon) made their first contribution in [#4442](https://github.com/LizardByte/Sunshine/pull/4442)
+* [@a-turtle9302](https://github.com/a-turtle9302) made their first contribution in [#4471](https://github.com/LizardByte/Sunshine/pull/4471)
+* [@Freakness109](https://github.com/Freakness109) made their first contribution in [#4579](https://github.com/LizardByte/Sunshine/pull/4579)
+* [@Dregu](https://github.com/Dregu) made their first contribution in [#4588](https://github.com/LizardByte/Sunshine/pull/4588)
+* [@amarshall](https://github.com/amarshall) made their first contribution in [#4568](https://github.com/LizardByte/Sunshine/pull/4568)
+* [@craimasjien](https://github.com/craimasjien) made their first contribution in [#4532](https://github.com/LizardByte/Sunshine/pull/4532)
+* [@tstokes22](https://github.com/tstokes22) made their first contribution in [#4407](https://github.com/LizardByte/Sunshine/pull/4407)
+* [@juliosanz](https://github.com/juliosanz) made their first contribution in [#4594](https://github.com/LizardByte/Sunshine/pull/4594)
+* [@yakushabb](https://github.com/yakushabb) made their first contribution in [#4604](https://github.com/LizardByte/Sunshine/pull/4604)
+* [@coleleavitt](https://github.com/coleleavitt) made their first contribution in [#4473](https://github.com/LizardByte/Sunshine/pull/4473)
+* [@cilps](https://github.com/cilps) made their first contribution in [#4627](https://github.com/LizardByte/Sunshine/pull/4627)
+* [@Yundi339](https://github.com/Yundi339) made their first contribution in [#4694](https://github.com/LizardByte/Sunshine/pull/4694)
+* [@herboh](https://github.com/herboh) made their first contribution in [#4665](https://github.com/LizardByte/Sunshine/pull/4665)
+* [@leenr](https://github.com/leenr) made their first contribution in [#4754](https://github.com/LizardByte/Sunshine/pull/4754)
+* [@michalzxc](https://github.com/michalzxc) made their first contribution in [#4822](https://github.com/LizardByte/Sunshine/pull/4822)
+* [@4xMSAA](https://github.com/4xMSAA) made their first contribution in [#4833](https://github.com/LizardByte/Sunshine/pull/4833)
+* [@htrex](https://github.com/htrex) made their first contribution in [#4874](https://github.com/LizardByte/Sunshine/pull/4874)
+* [@ThomVanL](https://github.com/ThomVanL) made their first contribution in [#4209](https://github.com/LizardByte/Sunshine/pull/4209)
+* [@aliefe04](https://github.com/aliefe04) made their first contribution in [#4890](https://github.com/LizardByte/Sunshine/pull/4890)
+* [@MrAwesome](https://github.com/MrAwesome) made their first contribution in [#4912](https://github.com/LizardByte/Sunshine/pull/4912)
+* [@neatnoise](https://github.com/neatnoise) made their first contribution in [#4771](https://github.com/LizardByte/Sunshine/pull/4771)
+* [@kmzs123](https://github.com/kmzs123) made their first contribution in [#4902](https://github.com/LizardByte/Sunshine/pull/4902)
+* [@atassis](https://github.com/atassis) made their first contribution in [#4956](https://github.com/LizardByte/Sunshine/pull/4956)
+* [@ykshek](https://github.com/ykshek) made their first contribution in [#4963](https://github.com/LizardByte/Sunshine/pull/4963)
+* [@Signynt](https://github.com/Signynt) made their first contribution in [#4994](https://github.com/LizardByte/Sunshine/pull/4994)
+* [@renovate[bot]](https://github.com/apps/renovate) made their first contribution in [#4992](https://github.com/LizardByte/Sunshine/pull/4992)
+* [@garnacho](https://github.com/garnacho) made their first contribution in [#5025](https://github.com/LizardByte/Sunshine/pull/5025)
+* [@willybarret](https://github.com/willybarret) made their first contribution in [#4954](https://github.com/LizardByte/Sunshine/pull/4954)
+* [@netanelbi](https://github.com/netanelbi) made their first contribution in [#5071](https://github.com/LizardByte/Sunshine/pull/5071)
+* [@martona](https://github.com/martona) made their first contribution in [#5101](https://github.com/LizardByte/Sunshine/pull/5101)
+* [@flibitijibibo](https://github.com/flibitijibibo) made their first contribution in [#5088](https://github.com/LizardByte/Sunshine/pull/5088)
+
+**Full Changelog**: https://github.com/LizardByte/Sunshine/compare/v2025.924.154138...v2026.516.143833
+
+---
+## Contributors
+![dependabot[bot]: 146 merges dependabot[bot]](https://avatars.githubusercontent.com/in/29110?size=40)



![renovate[bot]: 18 merges renovate[bot]](https://avatars.githubusercontent.com/in/2740?size=40)










































+
+
+---
+📦 **Assets:**
+
+| ⬇️ Download | #️⃣ Download Count | 🛡️ VirusTotal |
+|-------------|-------------------|---------------|
+| [Sunshine-FreeBSD-14.4-aarch64.pkg](https://github.com/LizardByte/Sunshine/releases/download/v2026.516.143833/Sunshine-FreeBSD-14.4-aarch64.pkg) |  | [](https://www.virustotal.com/gui/file-analysis/YTg2NTIzN2EwZDY0MzQ3ZDkwOGYxNWYwMGU4YjE4Njk6MTc3ODk1NjI5Mg==) |
+| [Sunshine-FreeBSD-14.4-amd64.pkg](https://github.com/LizardByte/Sunshine/releases/download/v2026.516.143833/Sunshine-FreeBSD-14.4-amd64.pkg) |  | [](https://www.virustotal.com/gui/file-analysis/Y2I3YjAxYjYzMTgyMGFiZmYyZDg0YTczYjZmNmQ1NTU6MTc3ODk1NjI5NQ==) |
+| [Sunshine-Windows-AMD64-debuginfo.7z](https://github.com/LizardByte/Sunshine/releases/download/v2026.516.143833/Sunshine-Windows-AMD64-debuginfo.7z) |  | [](https://www.virustotal.com/gui/file-analysis/NzQ3NzVmOGVlNWFhMjdiMDFjNmJjOTI2MDkwMTZhMjA6MTc3ODk1NjI5OA==) |
+| [Sunshine-Windows-AMD64-installer.exe](https://github.com/LizardByte/Sunshine/releases/download/v2026.516.143833/Sunshine-Windows-AMD64-installer.exe) |  | [](https://www.virustotal.com/gui/file-analysis/Y2FjMDdhNTRmOWU0NGRkYjRmNWNiZWM5YWZmZGMyNzM6MTc3ODk1NjMwMg==) |
+| [Sunshine-Windows-AMD64-installer.msi](https://github.com/LizardByte/Sunshine/releases/download/v2026.516.143833/Sunshine-Windows-AMD64-installer.msi) |  | [](https://www.virustotal.com/gui/file-analysis/MGFlMTcwYTBjZTgwZDQwYWY4MGUzYzkxZTk2ZWQwYTk6MTc3ODk1NjM1NQ==) |
+| [Sunshine-Windows-AMD64-portable.zip](https://github.com/LizardByte/Sunshine/releases/download/v2026.516.143833/Sunshine-Windows-AMD64-portable.zip) |  | [](https://www.virustotal.com/gui/file-analysis/ZDM5YTBlYjY4ZGRiODdiMTI3OGEyMDZhZTE5MDZlNzE6MTc3ODk1NjM1OQ==) |
+| [Sunshine-Windows-ARM64-debuginfo.7z](https://github.com/LizardByte/Sunshine/releases/download/v2026.516.143833/Sunshine-Windows-ARM64-debuginfo.7z) |  | [](https://www.virustotal.com/gui/file-analysis/NjY3ZjBhMzE1MjQyNTJjMWRlYjhhZTIxYTg5NTY4OWE6MTc3ODk1NjM2Mg==) |
+| [Sunshine-Windows-ARM64-installer.exe](https://github.com/LizardByte/Sunshine/releases/download/v2026.516.143833/Sunshine-Windows-ARM64-installer.exe) |  | [](https://www.virustotal.com/gui/file-analysis/YzIyZmFjMjYxOWE2YTc1NzliYzk4NDQ2ODhjZjMyYWY6MTc3ODk1NjM2NQ==) |
+| [Sunshine-Windows-ARM64-installer.msi](https://github.com/LizardByte/Sunshine/releases/download/v2026.516.143833/Sunshine-Windows-ARM64-installer.msi) |  | [](https://www.virustotal.com/gui/file-analysis/YWQxMTg4NDY3MjM0OWNlN2JhZDJiYTEyMDZjMzAzMjk6MTc3ODk1NjM2OQ==) |
+| [Sunshine-Windows-ARM64-portable.zip](https://github.com/LizardByte/Sunshine/releases/download/v2026.516.143833/Sunshine-Windows-ARM64-portable.zip) |  | [](https://www.virustotal.com/gui/file-analysis/Yjg3MjY1ZmU3ZmRlYTYyMzRkZjM1MzQzODUwMTg2YzU6MTc3ODk1NjQxOQ==) |
+| [Sunshine-macOS-arm64.dmg](https://github.com/LizardByte/Sunshine/releases/download/v2026.516.143833/Sunshine-macOS-arm64.dmg) |  | [](https://www.virustotal.com/gui/file-analysis/ZDIyNTUxZTZkYmM5YjY4OTNmYWE0NjYyNmJhYjVmM2Q6MTc3ODk1NjQzMQ==) |
+| [Sunshine-macOS-x86_64.dmg](https://github.com/LizardByte/Sunshine/releases/download/v2026.516.143833/Sunshine-macOS-x86_64.dmg) |  | [](https://www.virustotal.com/gui/file-analysis/ZjhjOWI3MTQ1NDM3MWVjMGQ5ZWI5Y2JhMWI2ZThkODg6MTc3ODk1NjQzOA==) |
+| [flathub.tar.gz](https://github.com/LizardByte/Sunshine/releases/download/v2026.516.143833/flathub.tar.gz) |  | [](https://www.virustotal.com/gui/file-analysis/ZTE0ODgwMmQ0ZmEwY2IzZmQxYWYyN2Y5MDMxY2RjMzY6MTc3ODk1NjQzOQ==) |
+| [sunshine-2026.516.143833-1-x86_64.pkg.tar.zst](https://github.com/LizardByte/Sunshine/releases/download/v2026.516.143833/sunshine-2026.516.143833-1-x86_64.pkg.tar.zst) |  | [](https://www.virustotal.com/gui/file-analysis/MGEwNjk0ODAwOGU0NWYzYjk5YzNkM2YyNTBlNDMyZTI6MTc3ODk1NjQ0Mw==) |
+| [sunshine-debian-trixie-amd64.deb](https://github.com/LizardByte/Sunshine/releases/download/v2026.516.143833/sunshine-debian-trixie-amd64.deb) |  | [](https://www.virustotal.com/gui/file-analysis/NjdlOGNlOGE1MTU0MDlhMmEwYjcyY2M1MjlkZjg3Yjg6MTc3ODk1NjQ4Mg==) |
+| [sunshine-debian-trixie-arm64.deb](https://github.com/LizardByte/Sunshine/releases/download/v2026.516.143833/sunshine-debian-trixie-arm64.deb) |  | [](https://www.virustotal.com/gui/file-analysis/YTkyZDgyNmVlNTNhNmQzY2MzOWI0YzJjNDkzZTZhNDU6MTc3ODk1NjQ4NA==) |
+| [sunshine-ubuntu-22.04-amd64.deb](https://github.com/LizardByte/Sunshine/releases/download/v2026.516.143833/sunshine-ubuntu-22.04-amd64.deb) |  | [](https://www.virustotal.com/gui/file-analysis/YTQ4NjYyYzQ0MzliYjE1YzY2MDBiNTRkYjE1MzQ0ZDQ6MTc3ODk1NjQ4OA==) |
+| [sunshine-ubuntu-22.04-arm64.deb](https://github.com/LizardByte/Sunshine/releases/download/v2026.516.143833/sunshine-ubuntu-22.04-arm64.deb) |  | [](https://www.virustotal.com/gui/file-analysis/MGRmYWVlMmJmMWVjNjhiZGY3MWIzOTFjZWMzMWE4ZTA6MTc3ODk1NjUwMw==) |
+| [sunshine-ubuntu-24.04-amd64.deb](https://github.com/LizardByte/Sunshine/releases/download/v2026.516.143833/sunshine-ubuntu-24.04-amd64.deb) |  | [](https://www.virustotal.com/gui/file-analysis/MzQ0MmZjMGQ3MDE4NDRiYWI4ZTQ3ODdiMjllY2FjOGE6MTc3ODk1NjUxOA==) |
+| [sunshine-ubuntu-24.04-arm64.deb](https://github.com/LizardByte/Sunshine/releases/download/v2026.516.143833/sunshine-ubuntu-24.04-arm64.deb) |  | [](https://www.virustotal.com/gui/file-analysis/MjE4NDM5MTFhMzdlMzViM2Y2ZTQ2ZTViYzUzODQ0NTc6MTc3ODk1NjU0NA==) |
+| [sunshine-ubuntu-26.04-amd64.deb](https://github.com/LizardByte/Sunshine/releases/download/v2026.516.143833/sunshine-ubuntu-26.04-amd64.deb) |  | [](https://www.virustotal.com/gui/file-analysis/NDhjNGMxNDJmNzk0YmRkMDllZWIyZjFjMjVlZjQ3ZTQ6MTc3ODk1NjU0OA==) |
+| [sunshine-ubuntu-26.04-arm64.deb](https://github.com/LizardByte/Sunshine/releases/download/v2026.516.143833/sunshine-ubuntu-26.04-arm64.deb) |  | [](https://www.virustotal.com/gui/file-analysis/MzEyOWM2ZjQ4ZjYxZjBjYWMyYTk3MjBmYmM2M2U0Yjk6MTc3ODk1NjU2Mw==) |
+| [sunshine.AppImage](https://github.com/LizardByte/Sunshine/releases/download/v2026.516.143833/sunshine.AppImage) |  | [](https://www.virustotal.com/gui/file-analysis/ZjU5MmJkNmI3MGIwNzFjOGQ3ZDY0YzE2YTY4ZWE1NDU6MTc3ODk1NjU3OA==) |
+| [sunshine.pkg.tar.gz](https://github.com/LizardByte/Sunshine/releases/download/v2026.516.143833/sunshine.pkg.tar.gz) |  | [](https://www.virustotal.com/gui/file-analysis/MzJjYTA0YWRiOGM3MDU0OWFhZTgwNDM1Y2FmMmY4OWY6MTc3ODk1NjU5MQ==) |
+| [sunshine.rb](https://github.com/LizardByte/Sunshine/releases/download/v2026.516.143833/sunshine.rb) |  | [](https://www.virustotal.com/gui/file-analysis/YzFlOTcxNjdhZTM2ZTI2ODExODE5ZjNmYzQwZjI4M2Y6MTc3ODk1NjYwNg==) |
+| [sunshine_aarch64.flatpak](https://github.com/LizardByte/Sunshine/releases/download/v2026.516.143833/sunshine_aarch64.flatpak) |  | [](https://www.virustotal.com/gui/file-analysis/YjQ4ZmUxY2Y4MTdhN2Q1YjIyMWYyMWNlYmIwOGIyYmU6MTc3ODk1NjYyNA==) |
+| [sunshine_debug_aarch64.flatpak](https://github.com/LizardByte/Sunshine/releases/download/v2026.516.143833/sunshine_debug_aarch64.flatpak) |  | [](https://www.virustotal.com/gui/file-analysis/YTQ5NzVjMTk1YjczMmQ2YjhhMGQ3MzM5MTYwN2QxN2Q6MTc3ODk1NjYzOA==) |
+| [sunshine_debug_x86_64.flatpak](https://github.com/LizardByte/Sunshine/releases/download/v2026.516.143833/sunshine_debug_x86_64.flatpak) |  | [](https://www.virustotal.com/gui/file-analysis/YzA4NGJmY2M1OTRiYzY5OGYyN2M3Nzc5Y2UzMjI1YzI6MTc3ODk1NjY1Mg==) |
+| [sunshine_x86_64.flatpak](https://github.com/LizardByte/Sunshine/releases/download/v2026.516.143833/sunshine_x86_64.flatpak) |  | [](https://www.virustotal.com/gui/file-analysis/YTMxNzJmYWRjMjdiMzY0NGM5NmE4YjBiM2Y5ZjdjNzA6MTc3ODk1NjY2OQ==) |
+| [Sunshine-2026.516.143833-1.fc42.aarch64.rpm](https://github.com/LizardByte/Sunshine/releases/download/v2026.516.143833/Sunshine-2026.516.143833-1.fc42.aarch64.rpm) |  | [](https://www.virustotal.com/gui/file-analysis/MDg2ZDFhMTgzZGYyYWJkMGQ0ZTUxYWI3NDYxOWM3YTY6MTc3ODk1OTEzMg==) |
+| [Sunshine-2026.516.143833-1.fc42.x86_64.rpm](https://github.com/LizardByte/Sunshine/releases/download/v2026.516.143833/Sunshine-2026.516.143833-1.fc42.x86_64.rpm) |  | [](https://www.virustotal.com/gui/file-analysis/NDk3MDE4YzIzNjYzNjU0YzkzMDMxZGZmNmI1Yzc0YWI6MTc3ODk1OTEzMw==) |
+| [Sunshine-2026.516.143833-1.fc43.aarch64.rpm](https://github.com/LizardByte/Sunshine/releases/download/v2026.516.143833/Sunshine-2026.516.143833-1.fc43.aarch64.rpm) |  | [](https://www.virustotal.com/gui/file-analysis/NjE3ODZlZGZlZTVjZTBiYzE5YTY4NmI5ZWFiMjQ1ODg6MTc3ODk1OTEzNQ==) |
+| [Sunshine-2026.516.143833-1.fc43.x86_64.rpm](https://github.com/LizardByte/Sunshine/releases/download/v2026.516.143833/Sunshine-2026.516.143833-1.fc43.x86_64.rpm) |  | [](https://www.virustotal.com/gui/file-analysis/NDdhYzE4MTYxZjBmZTk5NzU0NzIwNmE5OTkyMTliZDY6MTc3ODk1OTEzNw==) |
+| [Sunshine-2026.516.143833-1.fc44.aarch64.rpm](https://github.com/LizardByte/Sunshine/releases/download/v2026.516.143833/Sunshine-2026.516.143833-1.fc44.aarch64.rpm) |  | [](https://www.virustotal.com/gui/file-analysis/ODI2MThmMWEyMWRiMzc1YTczOThiY2RlZDZlNzY2NDk6MTc3ODk1OTE5Mg==) |
+| [Sunshine-2026.516.143833-1.fc44.x86_64.rpm](https://github.com/LizardByte/Sunshine/releases/download/v2026.516.143833/Sunshine-2026.516.143833-1.fc44.x86_64.rpm) |  | [](https://www.virustotal.com/gui/file-analysis/MDM2ZTlkNGQ1OTM3NjUxNmVkODJhNTdhNTBlNzJiNzI6MTc3ODk1OTE5Mw==) |
+| [Sunshine-2026.516.143833-1.fc45.aarch64.rpm](https://github.com/LizardByte/Sunshine/releases/download/v2026.516.143833/Sunshine-2026.516.143833-1.fc45.aarch64.rpm) |  | [](https://www.virustotal.com/gui/file-analysis/MDk1NmMwYThhMDZhMmJhYzk0NGMxNTA4ZDc5MTM1OTE6MTc3ODk1OTE5NQ==) |
+| [Sunshine-2026.516.143833-1.fc45.x86_64.rpm](https://github.com/LizardByte/Sunshine/releases/download/v2026.516.143833/Sunshine-2026.516.143833-1.fc45.x86_64.rpm) |  | [](https://www.virustotal.com/gui/file-analysis/OGEzZDM3YTI5ODdiNjY4Y2I3YTViM2NhOGJmZjM1ZmU6MTc3ODk1OTE5Ng==) |
+| [Sunshine-2026.516.143833-1.suse.lp156.aarch64.rpm](https://github.com/LizardByte/Sunshine/releases/download/v2026.516.143833/Sunshine-2026.516.143833-1.suse.lp156.aarch64.rpm) |  | [](https://www.virustotal.com/gui/file-analysis/YjllZTNjYTZlZmZhNzllNTBhOGUzYzE4ODljMDViYjE6MTc3ODk1OTIwOA==) |
+| [Sunshine-2026.516.143833-1.suse.lp156.x86_64.rpm](https://github.com/LizardByte/Sunshine/releases/download/v2026.516.143833/Sunshine-2026.516.143833-1.suse.lp156.x86_64.rpm) |  | [](https://www.virustotal.com/gui/file-analysis/Yzg4ZDZmN2NhYzg0NWQ4YjA2N2QxNDA4OWNkYzIxNjI6MTc3ODk1OTI1NA==) |