Conversation
[ci skip]
[ci skip]
[ci skip]
[ci skip]
[ci skip]
[ci skip]
[ci skip]
[ci skip]
[ci skip]
[ci skip]
[ci skip]
[ci skip]
* 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>
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>
Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com>
Co-authored-by: Akamiya Chizui <127862333+Chizuui@users.noreply.github.com>
Co-authored-by: Akamiya Chizui <127862333+Chizuui@users.noreply.github.com>
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>
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>
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>
[ci skip]
[ci skip]
[ci skip]
[ci skip]
[ci skip]
[ci skip]
[ci skip]
[ci skip]
[ci skip]
[ci skip]
[ci skip]
[ci skip]
[ci skip]
[ci skip]
[ci skip]
[ci skip]
[ci skip]
New Crowdin updates
…game-details Show premium membership requirements in game details
[ci skip]
[ci skip]
[ci skip]
[ci skip]
[ci skip]
[ci skip]
[ci skip]
[ci skip]
[ci skip]
[ci skip]
New Crowdin updates
|
Caution Review failedThe pull request is closed. ℹ️ Recent review info⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Plus Run ID: ⛔ Files ignored due to path filters (12)
📒 Files selected for processing (268)
📝 WalkthroughWalkthroughThis PR delivers a large multi-area update to the OpenNOW desktop application. It switches CI/release workflows to npm and adds release-notes generation, adds secondary app-instance support, console PIN-protected profiles with encrypted storage, native streamer stdin/codec resilience, CloudMatch codec negotiation, browser recording, desktop bug reporting with session reports, a controller-first console UI, expanded localization for twelve languages, and broad renderer/shared refactors covering codec diagnostics, WebRTC negotiation, and settings navigation. ChangesCI, Infra, and Docs
Estimated code review effort: 5 (Critical) | ~180 minutes Localization
Shared Contracts
Main Process
Preload
Renderer Core
Renderer Streaming
Renderer Console UI
Renderer Settings UI
Renderer Stream View
Renderer GameCard and Misc
Sequence Diagram(s)sequenceDiagram
participant Renderer as ConsoleProfileGate (Renderer)
participant Preload
participant IPC as consolePinHandlers (Main)
participant Store as ConsoleProfileStore
participant Policy as pinPolicy/pinHash
Renderer->>Preload: verifyConsolePin(userId, pin)
Preload->>IPC: CONSOLE_PIN_VERIFY
IPC->>Store: verifyPin(userId, pin)
Store->>Policy: evaluatePinGate / verifyPinHash
Policy-->>Store: gate result, hash match
Store-->>IPC: ConsolePinVerifyResult
IPC-->>Preload: verify result
Preload-->>Renderer: success or lockout state
Renderer->>Renderer: enter shell or show lockout
sequenceDiagram
participant Client as webrtcClient
participant Codec as codecNegotiation
participant PC as RTCPeerConnection
participant SDP as sdpValidation
Client->>Codec: negotiatePeerConnectionCodecAnswer(candidates)
loop each candidate codec
Codec->>PC: setRemoteDescription(offer)
Codec->>PC: createAnswer()
Codec->>SDP: extractNegotiatedVideoCodec(answer.sdp)
alt codec negotiated
SDP-->>Codec: VideoCodec
Codec-->>Client: NegotiatedCodecAnswer
else rejected
Codec->>PC: rollback remote offer
end
end
✨ Finishing Touches📝 Generate docstrings
🧪 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 |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 0d11fded7a
ℹ️ 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".
| "common": { | ||
| "loading": "Loading..." |
There was a problem hiding this comment.
This change directly updates locales/de.json and the other non-English locale files alongside product code, but these files are Crowdin-generated and may only change through a Crowdin sync pull request; keep the new copy in locales/en.json and let the translation workflow populate the generated locales.
AGENTS.md reference: AGENTS.md:L57-L59
Useful? React with 👍 / 👎.
| requestedResolution: settings.resolution, | ||
| requestedCodec: settings.codec, | ||
| targetFps: settings.fps, |
There was a problem hiding this comment.
Score against the resolved stream profile
When persisted resolution/FPS settings exceed the active account's entitlements, buildCurrentStreamSettings clamps them through resolveEntitledStreamProfile before session creation, but this accumulator records the raw settings instead. A legitimately clamped 1080p60 session requested from stale 4K120 settings will therefore be reported as an unexpected resolution change and have its FPS scored against 120, producing a misleading low-quality report; capture the resolved profile used for this session instead.
Useful? React with 👍 / 👎.
Summary
Merge the latest
devchanges intomain, bringing the desktop app's streaming reliability, diagnostics, controller-first experience, settings, catalog, reporting, and platform improvements upstream.This is an aggregate release sync containing 144 commits across 280 files.
Highlights
Streaming, media, and input reliability
Related PRs: #711, #712, #713, #714, #715, #720, #722, #728, #735.
Diagnostics, recording, and support
Related PRs: #723, #724, #725, #748, #749.
Controller and console experience
Related PRs: #697, #741, #742, #747.
Catalog, settings, and in-app UX
Related PRs: #721, #726, #729, #731, #733, #739, #744, #751.
Platform, release, and localization
Related PRs: #675, #732, #736, #740, #743, #755.
Validation
This sync is covered by the GitHub Actions desktop build matrix for macOS, Windows, and Linux on x64/arm64, together with CodeQL analysis. See the PR checks for the current results.
Summary by CodeRabbit