feat(renderer): polish queue shaders and Motion animations - #628
Conversation
|
Important Review skippedAuto reviews are disabled on base/target branches other than the default branch. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Plus Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
|
Capy auto-review is paused for this organization because the usage-cycle auto-review limit has been reached. Increase the limit or turn it off in billing settings to resume automatic reviews. |
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes using default effort and found 2 potential issues.
❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.
Reviewed by Cursor Bugbot for commit 7d0068d. Configure here.
| if (streamStatus === "idle" || !streamVideoReady || streamRevealComplete) return undefined; | ||
| const timer = window.setTimeout(() => setStreamRevealComplete(true), 680); | ||
| return () => window.clearTimeout(timer); | ||
| }, [streamRevealComplete, streamStatus, streamVideoReady]); |
There was a problem hiding this comment.
Stale stats end reconnect overlay
Medium Severity
The launch overlay now dismisses when isStreamVideoReady sees streaming plus diagnostics (nativeRendererActive or framesDecoded > 0) or a sized video element. Signaling recovery sets connecting and disposes the WebRTC client without resetting the diagnostics store, so prior framesDecoded values can still satisfy readiness on the next streaming transition and trigger the handoff before the new session produces frames.
Additional Locations (1)
Reviewed by Cursor Bugbot for commit 7d0068d. Configure here.
| exit={{ opacity: 0 }} | ||
| transition={streamVideoReady && !launchError | ||
| ? { duration: 0.62, ease: standardEase } | ||
| : { duration: 0.16, ease: standardEase }} |
There was a problem hiding this comment.
Warp handoff blocks cancel
Low Severity
Once streamVideoReady is true, the loading wrapper gets stream-loading-transition--warping, which sets pointer-events: none on the full-screen overlay. During the warp animation and the following reveal delay, the cancel control in StreamLoading cannot receive clicks even though the overlay is still visible.
Additional Locations (1)
Reviewed by Cursor Bugbot for commit 7d0068d. Configure here.
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 7d0068d7db
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| if (platform === "win32") { | ||
| // Windows ships bsdtar, which extracts Electron's zip reliably even on | ||
| // newer Node releases where extract-zip@2 can leave its promise pending. | ||
| const extractResult = spawnSync("tar.exe", ["-xf", zipPath, "-C", resolvedDistRoot], { |
There was a problem hiding this comment.
Gate tar.exe on the host platform
When this postinstall fallback is run on a non-Windows host with npm_config_platform=win32 or ELECTRON_INSTALL_PLATFORM=win32 (the script explicitly treats these as the target Electron platform), this branch tries to spawn tar.exe, which is only available on Windows. That makes cross-installing or packaging the Windows Electron runtime from Linux/macOS fail even though the generic extract-zip path can extract the downloaded zip; use process.platform for the tar.exe optimization or fall back when the host is not Windows.
Useful? React with 👍 / 👎.
* feat(stream): redesign Ctrl+G overlay with tabs and controller support (#622) * refactor: split oversized modules into focused files (#626) Co-authored-by: Zortos <zortosdev@proton.me> * feat(renderer): polish queue shaders and Motion animations (#628) * feat(native): internal one-window renderer with external fallback (#619) * Stabilize WebRTC streaming and native window behavior (#635) * fix(native): honor Windows DPI scaling (#637) * feat: add nightly builds and opt-in update channel (#638) * fix(updater): Preserve nested macOS signatures (#631) * fix(build): configure relocated GStreamer plugins * fix(ci): use supported macOS runner size * fix(native): mark Objective-C selectors thread-safe * fix(build): sign unsigned nested macOS bundles * fix(build): sign nested macOS Mach-O code * fix(build): enforce nested macOS signing order * fix(release): upload assets before publishing * fix(release): target repository when publishing * fix(native): stabilize high-FPS Vulkan streaming and input (#639) * fix(native): enable DX11 tearing and VRR presentation (#640) Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com> * fix: align settings/library UI and preserve GFN auth/library ownership (#644) * fix(ui): repair settings interactions and accessibility (#649) * fix(ui): smooth animation lifecycles (#651) * feat(streaming): add 90 FPS mode (#652) * fix(ci): preserve LF endings for patch files (#653) Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com> * fix(ci): build only patched D3D11 target (#654) Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com> * fix(ci): align Windows GStreamer Vulkan runtime (#655) Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com> * fix(ci): bundle and verify Vulkan loader (#656) Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com> * feat(input): Scandinavian keyboard layouts (#624) (#660) * fix(controller): make bottom hint overlay clickable with mouse (#620) (#661) fixes #620 * fix(streaming): stop synthesizing 90 FPS from entitlements (#662) * feat(gfn): add Identify as Steam Deck option for Deck modes and 90 FPS (#663) Spoof official Steam Deck device headers on MES/CloudMatch so entitlements return Deck resolutions and 90 FPS, and refresh video options when toggled. * fix: Mac missing fullscreen (#642) * fix(deps): update dependencies and clear npm audit vulnerabilities (#664) * feat: PostHog telemetry, consent, and in-app feedback (#668) * fix(build): restore macOS plist packaging compatibility Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com> * fix(native): bundle Windows DLL dependency closure (#676) Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com> * feat(native): add Linux and Raspberry Pi codec support (#679) * feat(native): add Linux hardware codec support Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com> * ci(native): verify Linux release builds Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com> --------- Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com> * refactor(settings): centralize platform defaults (#683) Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com> * refactor(settings): split stream settings modules (#685) Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com> * refactor(stream): decompose StreamView runtime (#686) Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com> * refactor(gfn): modularize NVST RTSP probe (#682) Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com> * refactor(native): extract streamer runtime helpers (#684) * refactor(native): extract streamer runtime helpers Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com> * test(native): make path fixtures portable Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com> * test(native): normalize Windows path assertions Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com> --------- Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com> * refactor(renderer): extract App stream runtime orchestration (#690) Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com> * refactor(gfn): decompose auth service (#689) Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com> * refactor(gfn): split input protocol modules (#688) Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com> * refactor(gfn): modularize SDP transformations (#687) Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com> * refactor(gfn): compose WebRTC client from focused controllers (#691) Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com> * feat(discord): show game artwork in rich presence (#681) Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com> * fix(security): verify signaling TLS certificates Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com> --------- Co-authored-by: Luiz Eduardo Kowalski <luizeduardokowalski@gmail.com> Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com> Co-authored-by: Anderson Shindy Oki <anderson.vs.oki@gmail.com>
* feat(stream): redesign Ctrl+G overlay with tabs and controller support (OpenCloudGaming#622) * refactor: split oversized modules into focused files (OpenCloudGaming#626) Co-authored-by: Zortos <zortosdev@proton.me> * feat(renderer): polish queue shaders and Motion animations (OpenCloudGaming#628) * feat(native): internal one-window renderer with external fallback (OpenCloudGaming#619) * Stabilize WebRTC streaming and native window behavior (OpenCloudGaming#635) * fix(native): honor Windows DPI scaling (OpenCloudGaming#637) * feat: add nightly builds and opt-in update channel (OpenCloudGaming#638) * fix(updater): Preserve nested macOS signatures (OpenCloudGaming#631) * fix(build): configure relocated GStreamer plugins * fix(ci): use supported macOS runner size * fix(native): mark Objective-C selectors thread-safe * fix(build): sign unsigned nested macOS bundles * fix(build): sign nested macOS Mach-O code * fix(build): enforce nested macOS signing order * fix(release): upload assets before publishing * fix(release): target repository when publishing * fix(native): stabilize high-FPS Vulkan streaming and input (OpenCloudGaming#639) * fix(native): enable DX11 tearing and VRR presentation (OpenCloudGaming#640) Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com> * fix: align settings/library UI and preserve GFN auth/library ownership (OpenCloudGaming#644) * fix(ui): repair settings interactions and accessibility (OpenCloudGaming#649) * fix(ui): smooth animation lifecycles (OpenCloudGaming#651) * feat(streaming): add 90 FPS mode (OpenCloudGaming#652) * fix(ci): preserve LF endings for patch files (OpenCloudGaming#653) Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com> * fix(ci): build only patched D3D11 target (OpenCloudGaming#654) Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com> * fix(ci): align Windows GStreamer Vulkan runtime (OpenCloudGaming#655) Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com> * fix(ci): bundle and verify Vulkan loader (OpenCloudGaming#656) Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com> * feat(input): Scandinavian keyboard layouts (OpenCloudGaming#624) (OpenCloudGaming#660) * fix(controller): make bottom hint overlay clickable with mouse (OpenCloudGaming#620) (OpenCloudGaming#661) fixes OpenCloudGaming#620 * fix(streaming): stop synthesizing 90 FPS from entitlements (OpenCloudGaming#662) * feat(gfn): add Identify as Steam Deck option for Deck modes and 90 FPS (OpenCloudGaming#663) Spoof official Steam Deck device headers on MES/CloudMatch so entitlements return Deck resolutions and 90 FPS, and refresh video options when toggled. * fix: Mac missing fullscreen (OpenCloudGaming#642) * fix(deps): update dependencies and clear npm audit vulnerabilities (OpenCloudGaming#664) * feat: PostHog telemetry, consent, and in-app feedback (OpenCloudGaming#668) * fix(build): restore macOS plist packaging compatibility Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com> * fix(native): bundle Windows DLL dependency closure (OpenCloudGaming#676) Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com> * feat(native): add Linux and Raspberry Pi codec support (OpenCloudGaming#679) * feat(native): add Linux hardware codec support Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com> * ci(native): verify Linux release builds Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com> --------- Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com> * refactor(settings): centralize platform defaults (OpenCloudGaming#683) Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com> * refactor(settings): split stream settings modules (OpenCloudGaming#685) Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com> * refactor(stream): decompose StreamView runtime (OpenCloudGaming#686) Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com> * refactor(gfn): modularize NVST RTSP probe (OpenCloudGaming#682) Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com> * refactor(native): extract streamer runtime helpers (OpenCloudGaming#684) * refactor(native): extract streamer runtime helpers Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com> * test(native): make path fixtures portable Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com> * test(native): normalize Windows path assertions Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com> --------- Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com> * refactor(renderer): extract App stream runtime orchestration (OpenCloudGaming#690) Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com> * refactor(gfn): decompose auth service (OpenCloudGaming#689) Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com> * refactor(gfn): split input protocol modules (OpenCloudGaming#688) Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com> * refactor(gfn): modularize SDP transformations (OpenCloudGaming#687) Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com> * refactor(gfn): compose WebRTC client from focused controllers (OpenCloudGaming#691) Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com> * feat(discord): show game artwork in rich presence (OpenCloudGaming#681) Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com> * fix(security): verify signaling TLS certificates Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com> --------- Co-authored-by: Luiz Eduardo Kowalski <luizeduardokowalski@gmail.com> Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com> Co-authored-by: Anderson Shindy Oki <anderson.vs.oki@gmail.com>
…#4) * feat(stream): redesign Ctrl+G overlay with tabs and controller support (OpenCloudGaming#622) * refactor: split oversized modules into focused files (OpenCloudGaming#626) Co-authored-by: Zortos <zortosdev@proton.me> * feat(renderer): polish queue shaders and Motion animations (OpenCloudGaming#628) * feat(native): internal one-window renderer with external fallback (OpenCloudGaming#619) * Stabilize WebRTC streaming and native window behavior (OpenCloudGaming#635) * fix(native): honor Windows DPI scaling (OpenCloudGaming#637) * feat: add nightly builds and opt-in update channel (OpenCloudGaming#638) * fix(updater): Preserve nested macOS signatures (OpenCloudGaming#631) * fix(build): configure relocated GStreamer plugins * fix(ci): use supported macOS runner size * fix(native): mark Objective-C selectors thread-safe * fix(build): sign unsigned nested macOS bundles * fix(build): sign nested macOS Mach-O code * fix(build): enforce nested macOS signing order * fix(release): upload assets before publishing * fix(release): target repository when publishing * fix(native): stabilize high-FPS Vulkan streaming and input (OpenCloudGaming#639) * fix(native): enable DX11 tearing and VRR presentation (OpenCloudGaming#640) Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com> * fix: align settings/library UI and preserve GFN auth/library ownership (OpenCloudGaming#644) * fix(ui): repair settings interactions and accessibility (OpenCloudGaming#649) * fix(ui): smooth animation lifecycles (OpenCloudGaming#651) * feat(streaming): add 90 FPS mode (OpenCloudGaming#652) * fix(ci): preserve LF endings for patch files (OpenCloudGaming#653) Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com> * fix(ci): build only patched D3D11 target (OpenCloudGaming#654) Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com> * fix(ci): align Windows GStreamer Vulkan runtime (OpenCloudGaming#655) Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com> * fix(ci): bundle and verify Vulkan loader (OpenCloudGaming#656) Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com> * feat(input): Scandinavian keyboard layouts (OpenCloudGaming#624) (OpenCloudGaming#660) * fix(controller): make bottom hint overlay clickable with mouse (OpenCloudGaming#620) (OpenCloudGaming#661) fixes OpenCloudGaming#620 * fix(streaming): stop synthesizing 90 FPS from entitlements (OpenCloudGaming#662) * feat(gfn): add Identify as Steam Deck option for Deck modes and 90 FPS (OpenCloudGaming#663) Spoof official Steam Deck device headers on MES/CloudMatch so entitlements return Deck resolutions and 90 FPS, and refresh video options when toggled. * fix: Mac missing fullscreen (OpenCloudGaming#642) * fix(deps): update dependencies and clear npm audit vulnerabilities (OpenCloudGaming#664) * feat: PostHog telemetry, consent, and in-app feedback (OpenCloudGaming#668) * fix(build): restore macOS plist packaging compatibility Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com> * docs: link the OpenNOW Switch prototype (OpenCloudGaming#670) Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com> * Fix Nintendo Switch release documentation (OpenCloudGaming#674) * New translations en.json (Romanian) [ci skip] * New translations en.json (French) [ci skip] * New translations en.json (Spanish) [ci skip] * New translations en.json (German) [ci skip] * New translations en.json (Japanese) [ci skip] * New translations en.json (Korean) [ci skip] * New translations en.json (Dutch) [ci skip] * New translations en.json (Polish) [ci skip] * New translations en.json (Russian) [ci skip] * New translations en.json (Turkish) [ci skip] * New translations en.json (Chinese Simplified) [ci skip] * New translations en.json (Korean) [ci skip] * New translations en.json (Korean) [ci skip] * fix(native): bundle Windows DLL dependency closure (OpenCloudGaming#676) Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com> * feat(native): add Linux and Raspberry Pi codec support (OpenCloudGaming#679) * feat(native): add Linux hardware codec support Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com> * ci(native): verify Linux release builds Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com> --------- Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com> * refactor(settings): centralize platform defaults (OpenCloudGaming#683) Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com> * refactor(settings): split stream settings modules (OpenCloudGaming#685) Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com> * refactor(stream): decompose StreamView runtime (OpenCloudGaming#686) Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com> * refactor(gfn): modularize NVST RTSP probe (OpenCloudGaming#682) Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com> * refactor(native): extract streamer runtime helpers (OpenCloudGaming#684) * refactor(native): extract streamer runtime helpers Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com> * test(native): make path fixtures portable Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com> * test(native): normalize Windows path assertions Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com> --------- Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com> * refactor(renderer): extract App stream runtime orchestration (OpenCloudGaming#690) Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com> * refactor(gfn): decompose auth service (OpenCloudGaming#689) Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com> * refactor(gfn): split input protocol modules (OpenCloudGaming#688) Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com> * refactor(gfn): modularize SDP transformations (OpenCloudGaming#687) Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com> * refactor(gfn): compose WebRTC client from focused controllers (OpenCloudGaming#691) Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com> * feat(discord): show game artwork in rich presence (OpenCloudGaming#681) Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com> * fix(security): verify signaling TLS certificates Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com> * chore(release): prepare v0.5.3 * fix(input): keep gameplay interactive after Escape unlock (OpenCloudGaming#711) * fix(input): preserve interaction after Escape unlock Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com> * fix(input): pin cursor before fallback clicks Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com> * fix(input): order fallback cursor pins reliably Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com> --------- Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com> * fix(main): harden auth and external lifecycle (OpenCloudGaming#715) Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com> * fix(main): tolerate closed output and streamer pipes (OpenCloudGaming#714) Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com> * fix(input): prevent recursive mouse flush scheduling (OpenCloudGaming#712) Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com> * fix(media): recover shader and audio playback (OpenCloudGaming#713) Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com> * feat(stream): align SDP and BWE with official client (OpenCloudGaming#720) Co-authored-by: Akamiya Chizui <127862333+Chizuui@users.noreply.github.com> * feat(catalog): add game detail modal (OpenCloudGaming#721) Co-authored-by: Akamiya Chizui <127862333+Chizuui@users.noreply.github.com> * Harden codec capability selection and negotiation fallback (OpenCloudGaming#722) Adds capability-aware codec selection and bounded negotiation fallback, preserving official-client SDP/BWE behavior while preventing unsupported codec choices from leaving sessions without video. Co-authored-by: Akamiya Chizui <127862333+Chizuui@users.noreply.github.com> * Add accurate stream diagnostics telemetry (OpenCloudGaming#723) Adds typed telemetry for server game FPS, receive/decode rates, ICE transport, network capacity, and session location so the compact/full HUD reports distinct measurements accurately. Co-authored-by: Akamiya Chizui <127862333+Chizuui@users.noreply.github.com> * Add GFN-style compact and full stats HUD (OpenCloudGaming#724) Adds off, compact, and full frame-stat modes with distinct server, receive, decode, and render telemetry; configurable corner placement; localized diagnostics; and a guarded Ctrl+N shortcut. Co-authored-by: Akamiya Chizui <127862333+Chizuui@users.noreply.github.com> * New translations en.json (Romanian) [ci skip] * New translations en.json (French) [ci skip] * New translations en.json (Spanish) [ci skip] * New translations en.json (German) [ci skip] * New translations en.json (Japanese) [ci skip] * New translations en.json (Korean) [ci skip] * New translations en.json (Dutch) [ci skip] * New translations en.json (Polish) [ci skip] * New translations en.json (Russian) [ci skip] * New translations en.json (Turkish) [ci skip] * New translations en.json (Chinese Simplified) [ci skip] * New translations en.json (English) [ci skip] * Harden browser recording controls and performance (OpenCloudGaming#725) Adds bounded browser recording controls, presented-frame capture, ordered chunk persistence, and reliable finalization without importing native GStreamer recording scope. Co-authored-by: Akamiya Chizui <127862333+Chizuui@users.noreply.github.com> * New translations en.json (Romanian) [ci skip] * New translations en.json (French) [ci skip] * New translations en.json (Spanish) [ci skip] * New translations en.json (German) [ci skip] * New translations en.json (Japanese) [ci skip] * New translations en.json (Korean) [ci skip] * New translations en.json (Dutch) [ci skip] * New translations en.json (Polish) [ci skip] * New translations en.json (Russian) [ci skip] * New translations en.json (Turkish) [ci skip] * New translations en.json (Chinese Simplified) [ci skip] * New translations en.json (English) [ci skip] * Reorganize streaming and diagnostics settings (OpenCloudGaming#726) Groups stream quality and recording controls under Stream, moves HUD and codec tests into Diagnostics, preserves persisted settings, and restores legacy search aliases. Co-authored-by: Akamiya Chizui <127862333+Chizuui@users.noreply.github.com> * New translations en.json (Romanian) [ci skip] * New translations en.json (French) [ci skip] * New translations en.json (Spanish) [ci skip] * New translations en.json (German) [ci skip] * New translations en.json (Japanese) [ci skip] * New translations en.json (Korean) [ci skip] * New translations en.json (Dutch) [ci skip] * New translations en.json (Polish) [ci skip] * New translations en.json (Russian) [ci skip] * New translations en.json (Turkish) [ci skip] * New translations en.json (Chinese Simplified) [ci skip] * New translations en.json (English) [ci skip] * Harden media lifecycles and refresh dependencies (OpenCloudGaming#728) * Harden media lifecycles and refresh dependencies * Harden authorized CloudMatch endpoints * feat: add recurring anti-AFK reminders (OpenCloudGaming#729) * feat: add recurring anti-AFK reminders * docs: add anti-AFK reminder previews * fix(input): retain pointer capture on Escape (OpenCloudGaming#735) * feat(queue): add ad mute control (OpenCloudGaming#733) * feat(desktop): add account menu exit button (OpenCloudGaming#731) * fix(linux): restore app icon on Wayland (OpenCloudGaming#732) * New translations en.json (Romanian) [ci skip] * New translations en.json (French) [ci skip] * New translations en.json (Spanish) [ci skip] * New translations en.json (German) [ci skip] * New translations en.json (Japanese) [ci skip] * New translations en.json (Korean) [ci skip] * New translations en.json (Dutch) [ci skip] * New translations en.json (Polish) [ci skip] * New translations en.json (Russian) [ci skip] * New translations en.json (Turkish) [ci skip] * New translations en.json (Chinese Simplified) [ci skip] * New translations en.json (English) [ci skip] * feat: support an isolated secondary app instance (OpenCloudGaming#736) * fix(native): avoid X11 embedding under Wayland (OpenCloudGaming#737) * Improve app performance and repair light theme (OpenCloudGaming#739) * perf: optimize app runtime and repair light theme * fix: harden performance changes against regressions * Add controller-first console mode with PIN-protected profiles (OpenCloudGaming#697) * fix(release): keep changelog comparisons current (OpenCloudGaming#740) * fix(console): harden profile PINs and controller flows (OpenCloudGaming#741) * feat(console): suggest controller mode on gamepad connection (OpenCloudGaming#742) * feat(console): suggest controller mode on gamepad connection * feat(console): control mode prompt with gamepad * style(console): color controller action glyphs * refactor(console): reuse shared controller glyphs * New translations en.json (Romanian) [ci skip] * New translations en.json (French) [ci skip] * New translations en.json (Spanish) [ci skip] * New translations en.json (German) [ci skip] * New translations en.json (Japanese) [ci skip] * New translations en.json (Korean) [ci skip] * New translations en.json (Dutch) [ci skip] * New translations en.json (Polish) [ci skip] * New translations en.json (Russian) [ci skip] * New translations en.json (Turkish) [ci skip] * New translations en.json (Chinese Simplified) [ci skip] * style(console): polish controller mode prompt (OpenCloudGaming#747) * style(console): polish controller mode prompt * style(console): align prompt with standard modals --------- Co-authored-by: Capy Agent <agent@capy.test> * fix(stream): show accurate region and server GPU stats (OpenCloudGaming#748) * Add desktop bug reporting and session summaries * Potential fix for pull request finding Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> * Fix bug report timeout and consent handling * New translations en.json (Romanian) [ci skip] * New translations en.json (French) [ci skip] * New translations en.json (Spanish) [ci skip] * New translations en.json (German) [ci skip] * New translations en.json (Japanese) [ci skip] * New translations en.json (Korean) [ci skip] * New translations en.json (Dutch) [ci skip] * New translations en.json (Polish) [ci skip] * New translations en.json (Russian) [ci skip] * New translations en.json (Turkish) [ci skip] * New translations en.json (Chinese Simplified) [ci skip] * New translations en.json (English) [ci skip] * feat(catalog): show premium membership requirements * feat(settings): add compact icon rail variant (OpenCloudGaming#744) Co-authored-by: Capy Agent <agent@capy.test> * New translations en.json (Romanian) [ci skip] * New translations en.json (French) [ci skip] * New translations en.json (Spanish) [ci skip] * New translations en.json (German) [ci skip] * New translations en.json (Japanese) [ci skip] * New translations en.json (Korean) [ci skip] * New translations en.json (Dutch) [ci skip] * New translations en.json (Polish) [ci skip] * New translations en.json (Russian) [ci skip] * New translations en.json (Turkish) [ci skip] * New translations en.json (Chinese Simplified) [ci skip] * New translations en.json (English) [ci skip] * New translations en.json (Romanian) [ci skip] * New translations en.json (French) [ci skip] * New translations en.json (Spanish) [ci skip] * New translations en.json (German) [ci skip] * New translations en.json (Japanese) [ci skip] * New translations en.json (Korean) [ci skip] * New translations en.json (Dutch) [ci skip] * New translations en.json (Polish) [ci skip] * New translations en.json (Russian) [ci skip] * New translations en.json (Turkish) [ci skip] * New translations en.json (Chinese Simplified) [ci skip] * chore(release): prepare v0.5.4 * fix(gfn): recover catalog requests from proxy failures (OpenCloudGaming#758) * feat(gfn): use Railway community session proxy (OpenCloudGaming#759) * chore(release): prepare v0.5.5 * Update star history image source URLs in README --------- Co-authored-by: Zortos <zortosdev@proton.me> Co-authored-by: Luiz Eduardo Kowalski <luizeduardokowalski@gmail.com> Co-authored-by: Zortos <65777760+zortos293@users.noreply.github.com> Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com> Co-authored-by: Anderson Shindy Oki <anderson.vs.oki@gmail.com> Co-authored-by: Kiefer <67562560+Kief5555@users.noreply.github.com> Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com> Co-authored-by: Akamiya Chizui <127862333+Chizuui@users.noreply.github.com> Co-authored-by: Capy Agent <agent@capy.test> Co-authored-by: Kiefer <kieferlin1001@gmail.com> Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>


Summary
Refactor compatibility
devat8b27533acomponents/library/LibraryControllerView.tsxcomponents/settings/sections/*ownerscomponents/stream/StreamEmptyStates.tsxandStreamIndicators.tsxVerification
npm.cmd run typechecknpm.cmd test— 196 passingnpm.cmd run lint— passes with existing warningsnpm.cmd run buildgit diff --check origin/dev...HEADNote
Medium Risk
Changes the critical launch-to-play path (overlay timing, first-frame detection) and adds a runtime WebGL dependency; behavior is partially covered by new
isStreamVideoReadytests.Overview
This PR refreshes queue → stream launch and catalog presentation with WebGL shader backdrops (
three/@react-three/fibervia lazyShaderAtmosphere), a redesigned StreamLoading flow (stage rail, cozy copy, elapsed/queue facts, queue vs connecting shader variants), and a Motion-controlled handoff that keeps the loading overlay until a real frame is ready—not merely when status flips tostreaming.Stream readiness is centralized in
isStreamVideoReady(diagnostics or video element dimensions) plus a short reveal delay;AppmountsStreamViewunderneath while the overlay warps/fades out. StreamView fades video in and animates empty/waiting states; the quick-menu sidebar is full-height withAnimatePresenceon the backdrop.Motion replaces many CSS keyframe spinners/pulses with shared tokens (
overlayMotion,dialogMotion,MotionSpinner) across login, settings prompts, cards, ads, and stats. Home/library get the catalog atmosphere layer; default poster scale moves to 1.05.Build tooling: Windows Electron install uses
tar.exewhenextract-ziphangs on newer Node; non-Windows still resolvesextract-zipfrom Electron’s package boundary.New
streamLoadinglocale strings support the expanded launch UI.Reviewed by Cursor Bugbot for commit 7d0068d. Configure here.