Skip to content

refactor: OpenNOW Rebuild V1.0.0 - #781

Open
zortos293 wants to merge 21 commits into
capy/native-streamer-v2from
t3code/redesign-open-now-framework
Open

refactor: OpenNOW Rebuild V1.0.0#781
zortos293 wants to merge 21 commits into
capy/native-streamer-v2from
t3code/redesign-open-now-framework

Conversation

@zortos293

Copy link
Copy Markdown
Collaborator

Description

Adds the cross-platform Qt OpenNOW client, shared Rust core integration, platform-specific streaming support, automated CI, and signed release workflows for Linux, Windows, and macOS.

Base branch: capy/native-streamer-v2
Head branch: t3code/redesign-open-now-framework

Commits:
86a40e4 feat(qt): add cross-platform client and release pipeline

- Introduce the Qt application and native core runtime
- Add multi-platform CI, packaging, signing, and update artifacts
@coderabbitai

coderabbitai Bot commented Aug 28, 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: 6c92121f-6745-4914-b8b5-d685574b8ea0

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

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.

@zortos293 zortos293 changed the title feat(qt): add cross-platform client and release pipeline refactor: OpenNOW Rebuild V1.0.0 Aug 28, 2026
zortos293 and others added 18 commits August 28, 2026 20:08
- Add desktop-mode shell with home, library, store, friends, settings, sign-in, and stream views
- Add desktop localization strings, mode switching, and smoke-test routes
- Persist desktop preferences and validate settings round trips
Desktop chrome needs the Paper typefaces and nav glyphs in the Qt resource tree, and Windows TLS has to use Schannel so sign-in can reach NVIDIA.
Fall back to the first saved account when the active user id is missing, and keep a memory session if the first refresh or vault write fails so a rebuild does not dump the user on sign-in.
Wait for the first auth.session.get before showing the sign-in gate, and pass stay-signed-in through device login so the keychain session is actually saved.
Keep page content pinned to the 72px rail so hover or Ctrl+B expands an overlay instead of shoving the library and home grid sideways.
Grow home and store rails from the real catalog, and replace the fake friends list with the honest GeForce NOW unavailable state.
Game details and in-stream chrome now show live last-played and store state, or stay empty, instead of invented friends and RTX 5080 placeholders.
Honor launch-in-console-mode and pad/pointer switches in Main so the console toggle actually leaves desktop instead of flipping a dead flag.
Settings rows and the status-bar hints were reading as captions at 1440p. Bump the shared type scale and drop Quality mode plus fake connection-test chrome.
ItemDelegate chips were collapsing their content height so labels clipped and store dots overlapped. Rebuild them as buttons and use fewer, wider columns.
Home and Library posters now lift to the same 1.025 scale and focus outline the store rails already use, including keyboard focus.
Five-across tiles read as posters the size of the window. Target ~146px cells again, and stop shadowing ItemDelegate.highlighted so the library can load.
Windows Credential Manager rejects the NVIDIA session blob, so stay-signed-in never survived a quit. Store the session on disk and crossfade desktop/console without dumping the user on sign-in.
* fix(qt): finish desktop Paper UI polish

* fix(qt): replace desktop glyphs with Lucide icons
The bundled streamer had drifted to an older protocol than opennow-core
requires, so every session was killed at the handshake. It could not be
rebuilt on Windows because sdl2-sys copies Linux-generated bindings whose
X11 layout assertions underflow under LLP64, so Windows now generates its
own via use-bindgen against a rust-sdl2 fork carrying the upstream MSVC
enum-signedness fix. Building the streamer is enabled again and pinned to
the release profile so the bundled binary cannot silently go stale.

Rebuilding surfaced a hardware decode regression: NVIDIA and AMD route
decode through DXVA2 rather than registering a hardware-flagged MFT, so
enumerating hardware MFTs alone found nothing and every such machine fell
back to software. Hardware mode keeps the D3D11-aware registered MFTs as
a fallback.

Also stops the desktop shell dropping to console mode when a stream starts,
lays the queue screen out from anchors instead of fixed 1440x900
coordinates, and bounds two failure modes found in the session logs: a held
Escape issued one streamer.stop per key repeat, and Discord presence
blocked for 30-40s because the Windows named pipe has no read deadline.
- Restore native streamer integration across Qt and Electron
- Improve NVST video, audio, input, recovery, and settings paths
- Document streamer behavior and protocol comparisons
- Validate video format conversions with SDR fallback
- Buffer and persist native streamer stderr logs
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