feat(permissions): expose platform access and restart after grants - #5820
Conversation
Bundle ReportChanges will increase total bundle size by 12.72kB (0.37%) ⬆️. This is within the configured threshold ✅ Detailed changes
Affected Assets, Files, and Routes:view changes for bundle: sunshine-esmAssets Changed:
Files in
Files in
Files in
|
Codecov Report❌ Patch coverage is Additional details and impacted files@@ Coverage Diff @@
## master #5820 +/- ##
==========================================
+ Coverage 39.29% 39.53% +0.24%
==========================================
Files 120 122 +2
Lines 27830 28190 +360
Branches 12189 12323 +134
==========================================
+ Hits 10936 11146 +210
+ Misses 15429 14791 -638
- Partials 1465 2253 +788
Flags with carried forward coverage won't be shown. Click here to find out more.
... and 39 files with indirect coverage changes Continue to review full report in Codecov by Harness.
|
Screenshot ComparisonPR #5820 screenshots vs Matrix:
|
f54bc13 to
fcd1cbf
Compare
fcd1cbf to
b690e1d
Compare
Add a shared permission status model and authenticated Web UI endpoints. Show required and optional access on the Home and Troubleshooting pages, with native request actions or platform setup guidance as appropriate. Request screen capture, input, microphone, and optional notifications at macOS startup. Probe System Audio Recording with a temporary tap and show Local Network and System Audio as on-use where passive checks are unavailable. Check virtual input device access on Linux and FreeBSD and configuration directory access on Windows. When verifiable required access is missing at launch, restart Sunshine once after the running process can confirm it was granted. Document the platform limits and add native, HTTP, and Web UI tests for the new behavior.
b690e1d to
270b280
Compare
Persist screen capture and Post Event request history so startup avoids repeating native prompts while still guiding users to Settings after consent is removed. Retry Post Event on demand, open recording settings before probing system audio, and route Local Network to Network Settings on macOS 15 and newer. Propagate tray exit to global shutdown so macOS Quit & Reopen releases Sunshine's ports before relaunch. Update Web UI guidance, documentation, and tests for macOS 14 through 27.
Split the build-tree icon copy command across lines to satisfy the 120-character CMake lint limit. The bundle resource copy behavior remains unchanged.
|
From 2026.929 on, Sunshine shuts itself down when its tray loop ends (LizardByte/Sunshine#5820). Under the plugin the tray can never start - Sunshine runs as root, without a desktop session - so the loop ends at once and every start fails with "Sunshine exited before its Web UI came up" once that version reaches Flathub stable. start_async now makes sure sunshine.conf has system_tray = disabled before it spawns Sunshine. A missing key (or a missing config) gets that line; a key the user set is left alone, and one that enables the tray is only warned about, naming what it will cost. Truthiness follows Sunshine's own to_bool. A config that cannot be read or written is logged and the start goes on. QT_QPA_PLATFORM=offscreen stays: with the tray disabled Qt never starts, and for a user who turns the tray back on it still keeps Qt from aborting the process on 2026.906 to 2026.914. Co-authored-by: Sebastian Kieritz <2970704+causa-prima@users.noreply.github.com> Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>























































































Description
Add a shared permission status model and authenticated Web UI endpoints. Show required and optional access on the Home and Troubleshooting pages, with native request actions or platform setup guidance as appropriate.
Request screen capture, input, microphone, and optional notifications at macOS startup. Probe System Audio Recording with a temporary tap and show Local Network and System Audio as on-use where passive checks are unavailable. Check virtual input device access on Linux and FreeBSD and configuration directory access on Windows.
When verifiable required access is missing at launch, restart Sunshine once after the running process can confirm it was granted. Document the platform limits and add native, HTTP, and Web UI tests for the new behavior.
Screenshot
Issues Fixed or Closed
Roadmap Issues
Type of Change
Checklist
AI Usage
See our AI usage policy.