Conversation
* Fix native streamer verification to read protocol version dynamically and parse multi-line responses Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com> * Fix native streamer app protocol verification 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>
…#529) * Fix GFN create-session HTTP 400 by updating request payload to match official endpoints Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com> * Fix macOS CloudMatch session test 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>
* Add CLI direct launch support with --launch-app-id and --launch-title for LaunchBox integration Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com> * fix direct launch handoff guard Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com> * preserve ownership for direct app id launches 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>
Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com>
* Fetch entire owned library via paginated GraphQL query Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com> * Bump library cache for paginated fetch results 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>
* Extend proxy pipeline to games catalog for region-restricted titles Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com> * Fix proxy cache key secret hashing Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com> * Bypass caches for credentialed catalog proxies Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com> * Handle missing paginated library cursor 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>
Remove overflow clipping on the account connections section so the settings content pane scrolls like other tabs when the provider list exceeds the modal. Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com>
…uts (#547) * Fix keyboard input for non-US layouts by using physical position-based VKs from official GFN client Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com> * Fix native keyboard mapping edge cases 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>
Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com>
…ecting unsupported settings for (#552) Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com>
…ecting unsupported settings. (#555) Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com>
Bugbot couldn't run - usage limit reachedBugbot is counted against Cursor usage for this user or team, and this run hit a usage or spend limit. A user or team admin can review and increase usage limits in the Cursor dashboard. (requestId: serverGenReqId_5b14e7c2-623d-426f-86f0-934313f15ae2) |
|
Caution Review failedThe pull request is closed. ℹ️ Recent review info⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Plus Run ID: 📒 Files selected for processing (47)
📝 WalkthroughWalkthroughThis PR adds game-account connection flows, direct launch support, proxy-aware catalog/session handling, updated WebRTC and input processing, and new stream/settings UI surfaces. ChangesStreaming platform feature release
Estimated code review effort🎯 5 (Critical) | ⏱️ ~120 minutes Possibly related PRs
Poem
✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
Comment |
Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com>
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 647da6eb27
ℹ️ 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 (candidate.protocol !== "https:" || !allowedHosts.has(candidate.hostname)) { | ||
| validatedBaseUrl = new URL(defaultBase); |
There was a problem hiding this comment.
Preserve provider-specific VPC lookups
When the selected provider is an alliance endpoint such as prod.bpc.geforcenow.nvidiagrid.net, this allowlist rejects the provider URL and silently falls back to NVIDIA's default CloudMatch host. Since this helper feeds catalog/library/metadata requests via providerStreamingBaseUrl, alliance accounts will resolve the wrong VPC ID and query game data against the wrong region/provider context. Allow the selected provider host instead of replacing it here.
Useful? React with 👍 / 👎.
| } | ||
|
|
||
| async function invalidateAccountGameCaches(session: AuthSession, proxyUrl?: string): Promise<void> { | ||
| const cacheKeySets = [getAccountGamesCacheKeys(session.user.userId, session.provider.streamingServiceUrl)]; |
There was a problem hiding this comment.
Invalidate legacy token-scoped game caches
On upgraded installs that still have the old token-scoped cache files, this invalidation only deletes the new userId-scoped keys. loadAccountScopedFromCache still probes and migrates those legacy keys when the primary key is missing, so after linking/unlinking/resyncing an account the freshly invalidated library/catalog cache can be immediately repopulated from stale pre-migration data. Include the token-scoped legacy keys for the current session token(s) in this invalidation path.
Useful? React with 👍 / 👎.
Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com>
This reverts commit a3c9b7a.
* Merge dev into main (#557) * Revert "Merge dev into main (#557)" This reverts commit a3c9b7a. * chore(release): prepare v0.5.0 * Add Android and iOS options to bug report template * Guard Linux AppImage updates on read-only installs Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com> --------- Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com> Co-authored-by: Kiefer <67562560+Kief5555@users.noreply.github.com> Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com>
* Merge dev into main (OpenCloudGaming#557) * Revert "Merge dev into main (OpenCloudGaming#557)" This reverts commit a3c9b7a. * chore(release): prepare v0.5.0 * Add Android and iOS options to bug report template * Guard Linux AppImage updates on read-only installs Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com> --------- Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com> Co-authored-by: Kiefer <67562560+Kief5555@users.noreply.github.com> Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com>
This reverts commit a3c9b7a.
Creates a pull request to merge the current dev branch into main.
Note
Medium Risk
Touches session creation, OAuth account linking, and broad GFN API/caching behavior; mitigated by new tests but merge size increases regression risk for launch and library flows.
Overview
Large dev → main merge that adds GeForce NOW connected game accounts (link/unlink/resync via ALS OAuth and LCARS GraphQL), with settings UI copy and cache invalidation after account changes.
CloudMatch / streaming is tightened to official feature enums and session payloads (color depth/chroma mapping, monitor
dpi/displayData), and session creation now resolves the defaultprodCloudMatch base to the user’s local region fromserverInfobeforePOST /v2/session. Signaling handlespeerRemoved,BYE, and forwards ICEusernameFragment.Catalog/library paths gain optional session-proxy fetches, safer cache keys (account id, proxy host hash, bypass when proxy has credentials), paginated library queries with panel fallback, and browse-result caching. Persistent storage paywall helpers are shared; reset/location failures steer users to NVIDIA Storage Manager when the web session token is required.
Native streamer maps physical scancodes to GFN position-dependent virtual keycodes (non-US layouts). CLI direct launch uses single-instance lock and IPC to the renderer. Build verifies app/native protocol version parity before shipping the streamer binary. Subscription entitled resolutions now filter on
isEntitled.Reviewed by Cursor Bugbot for commit 647da6e. Configure here.
Summary by CodeRabbit
New Features
Bug Fixes