Add storage reset settings and streamer reliability updates#519
Conversation
|
Capy auto-review is paused for this organization because the monthly auto-review limit has been reached. Increase the limit or turn it off in billing settings to resume automatic reviews. |
|
Caution Review failedPull request was closed or merged during review 📝 WalkthroughWalkthroughThis PR introduces end-to-end native keyboard shortcut support (Rust protocol v3 + Electron IPC), QR/device-code login via NVIDIA device authorization, GFN persistent cloud storage management (fetch/reset with paywall and statuspage fallback), a configurable recording bitrate setting, a shared controller gamepad bitmask utility with search overlays, Linux updater detection, a video acceleration command-line builder extracted from ChangesNative Streamer Shortcut System
QR / Device-Code Login
GFN Persistent Storage Management
Video Acceleration Refactor and Recording Bitrate
Controller Gamepad, Linux Updater, and Settings UI Overhaul
Build System
Sequence Diagram(s)sequenceDiagram
participant User
participant LoginScreen
participant AppTsx as App.tsx
participant Preload
participant AuthService
participant NvidiaOAuth as NVIDIA OAuth API
User->>LoginScreen: click "Sign in with QR"
LoginScreen->>AppTsx: onQrLogin()
AppTsx->>Preload: startDeviceLogin(provider)
Preload->>AuthService: startDeviceLogin
AuthService->>NvidiaOAuth: POST /device/authorize
NvidiaOAuth-->>AuthService: device_code, verification_uri_complete
AuthService-->>Preload: AuthDeviceLoginChallenge
Preload-->>AppTsx: challenge
AppTsx->>LoginScreen: qrLoginChallenge (verificationUriComplete)
LoginScreen->>LoginScreen: QRCode.toDataURL(verificationUriComplete) → QR image
loop poll until authorized/expired
AppTsx->>Preload: pollDeviceLogin(attemptId)
Preload->>AuthService: pollDeviceLogin
AuthService->>NvidiaOAuth: POST /token (device_code)
NvidiaOAuth-->>AuthService: pending / authorized
AuthService-->>AppTsx: AuthDeviceLoginPollResult
end
AppTsx->>Preload: completeDeviceLogin(attemptId)
Preload->>AuthService: completeDeviceLogin → persist session
AuthService-->>AppTsx: AuthSession
sequenceDiagram
participant NativeProc as NativeStreamer (Rust)
participant Manager as NativeStreamerManager
participant Coordinator as signalingCoordinator
participant AppTsx as App.tsx
participant StreamView
AppTsx->>Coordinator: IPC NATIVE_UPDATE_SHORTCUTS (bindings)
Coordinator->>Manager: updateShortcuts(bindings)
Manager->>NativeProc: stdin {"type":"update-shortcuts", shortcuts}
NativeProc->>NativeProc: set_native_shortcut_bindings
Note over NativeProc: user presses shortcut key
NativeProc->>Manager: stdout {"type":"shortcut", action}
Manager->>AppTsx: IPC native-shortcut signaling event
AppTsx->>AppTsx: handleStreamShortcutAction(action)
AppTsx->>StreamView: dispatchStreamShortcutAction(action)
StreamView->>StreamView: captureScreenshot / toggleRecording
Estimated code review effort🎯 5 (Critical) | ⏱️ ~120 minutes Possibly related issues
Poem
🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
⚔️ Resolve merge conflicts
Comment |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 839a06927d
ℹ️ 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".
| @@ -1,8575 +0,0 @@ | |||
| { | |||
There was a problem hiding this comment.
Keep the npm lockfile until release jobs stop using it
I checked .github/workflows/release.yml: the preflight job still runs npm ci in opennow-stable and the release build job does the same, while scripts/sync-release-version.mjs still reads package-lock.json. With this file deleted, npm ci --dry-run in this tree now exits EUSAGE because it “can only install with an existing package-lock.json or npm-shrinkwrap.json,” so tag/manual release builds are blocked until the release workflow and version sync script are migrated to bun/bun.lock or the npm lockfile is retained.
Useful? React with 👍 / 👎.
Summary
Testing
Summary by CodeRabbit
New Features
Documentation
Chores