Skip to content

feat(renderer): polish queue shaders and Motion animations - #628

Merged
zortos293 merged 2 commits into
devfrom
codex/motion-queue-polish
Jul 12, 2026
Merged

feat(renderer): polish queue shaders and Motion animations#628
zortos293 merged 2 commits into
devfrom
codex/motion-queue-polish

Conversation

@zortos293

@zortos293 zortos293 commented Jul 11, 2026

Copy link
Copy Markdown
Collaborator

Summary

  • redesign the queue and stream handoff with the interactive React Three Fiber shader background
  • standardize renderer animation on Motion primitives, including dialogs, sidebars, spinners, cards, status indicators, and the first-frame reveal
  • add the catalog atmosphere, symmetrical library cards, 105% default card scale, and the Ctrl+G sidebar treatment
  • keep the queue visible until video is actually ready, then perform the Motion-controlled handoff
  • preserve Electron runtime installation fallback behavior
  • port the implementation onto the focused modules introduced by refactor: split oversized modules into focused files #626

Refactor compatibility

  • rebased directly onto dev at 8b27533a
  • moved library behavior into components/library/LibraryControllerView.tsx
  • moved settings behavior into the corresponding components/settings/sections/* owners
  • moved stream behavior into components/stream/StreamEmptyStates.tsx and StreamIndicators.tsx
  • does not restore the previous oversized module implementations

Verification

  • npm.cmd run typecheck
  • npm.cmd test — 196 passing
  • npm.cmd run lint — passes with existing warnings
  • npm.cmd run build
  • git diff --check origin/dev...HEAD

Note

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 isStreamVideoReady tests.

Overview
This PR refreshes queue → stream launch and catalog presentation with WebGL shader backdrops (three / @react-three/fiber via lazy ShaderAtmosphere), 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 to streaming.

Stream readiness is centralized in isStreamVideoReady (diagnostics or video element dimensions) plus a short reveal delay; App mounts StreamView underneath while the overlay warps/fades out. StreamView fades video in and animates empty/waiting states; the quick-menu sidebar is full-height with AnimatePresence on 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.exe when extract-zip hangs on newer Node; non-Windows still resolves extract-zip from Electron’s package boundary.

New streamLoading locale strings support the expanded launch UI.

Reviewed by Cursor Bugbot for commit 7d0068d. Configure here.

@coderabbitai

coderabbitai Bot commented Jul 11, 2026

Copy link
Copy Markdown

Important

Review skipped

Auto reviews are disabled on base/target branches other than the default branch.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: 15f41661-0de4-4f33-95ae-64651062689d

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch codex/motion-queue-polish

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.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@capy-ai

capy-ai Bot commented Jul 11, 2026

Copy link
Copy Markdown
Contributor

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.

@cursor cursor Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cursor Bugbot has reviewed your changes using default effort and found 2 potential issues.

Fix All in Cursor

❌ 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]);

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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)
Fix in Cursor Fix in Web

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 }}

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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)
Fix in Cursor Fix in Web

Reviewed by Cursor Bugbot for commit 7d0068d. Configure here.

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 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".

Comment on lines +122 to +125
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], {

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge 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 👍 / 👎.

@zortos293
zortos293 merged commit d568a55 into dev Jul 12, 2026
16 checks passed
zortos293 added a commit that referenced this pull request Jul 29, 2026
* 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>
Chizuui pushed a commit to Chizuui/OpenNOW-Modified that referenced this pull request Aug 11, 2026
Chizuui pushed a commit to Chizuui/OpenNOW-Modified that referenced this pull request Aug 11, 2026
* 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>
ap0ught added a commit to ap0ught/OpenNOW that referenced this pull request Aug 15, 2026
…#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>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant