Skip to content

fix(catalog): load Alliance libraries with bounded paging - #937

Closed
zortos293 wants to merge 1 commit into
devfrom
fix/alliance-account-library
Closed

zortos293 wants to merge 1 commit into
devfrom
fix/alliance-account-library

Conversation

@zortos293

Copy link
Copy Markdown
Collaborator

Audit and implementation against the latest dev base, including 783db41f. The full evidence-backed comparison with OpenNOW-Mac is in docs/alliance-library-audit.md.

Library delivery and recovery

The core previously aggregated up to 2,000 games into one result while Qt rejects protocol lines over 1 MiB. Library now uses complete cursor pages capped at 100 games and 768 KiB, sharing the Store page-budget implementation. Oversized pages retry at the same cursor with a smaller count, without skipping rows.

Qt appends/deduplicates pages progressively, retains search on retry, cancels stale account/disconnect requests, and rejects cyclic or malformed pagination. Missing apps/items are errors rather than empty success. Desktop and console preserve partial results alongside a visible error and retry action.

Mac reference parity

  • Honor explicit vpcId / vpc_id before the server-ID fallback. Route discovery through the configured proxy and separate metadata caches by route; subscription uses the same route.
  • Preserve integer catalog IDs and server-defined ownership states, including selected variants.
  • Refresh known expired ID tokens independently of access-token expiry, and share safe token selection across catalog, CloudMatch, linked accounts and storage. An expired ID token omitted by refresh is not retained.
  • Keep existing provider endpoint restrictions, OAuth profiles, GraphQL identity headers and ownership filters. No guessed Alliance identity headers or public-catalog substitution.

Verification

  • Full Rust core suite: 301 passed, 4 ignored; strict all-target Clippy and formatting passed.
  • Full application/native build on Qt 6.8.3.
  • 16/16 focused CTests, covering 24 QML paging checks, 78 orchestration checks, error surfaces, library routes, collections and Store paging/navigation.
  • Localization validation passed for 1,483 QML source texts; only the English source was edited.
  • Local HTTPS fixtures cover provider discovery, authorization, response mapping, paging budgets, malformed data, cancellation, proxy isolation and ID-token refresh.

The affected external tester's authenticated response is still unavailable. These are demonstrated client defects and reference-parity fixes, not proof that the tester's account now loads. The separate RTSPS Transport investigation in #883 remains outside this PR.

Visual acceptance: mocked partial-library failures, not a live account

Desktop library with partial results and retry

Console library with partial results and retry

Compact light desktop library

Open in Capy

@coderabbitai

coderabbitai Bot commented Sep 14, 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: Advanced

Run ID: 26c8c033-540b-4fe9-b3df-7bac3d999dd8

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 closed this Sep 14, 2026

@capy-ai capy-ai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Capy found no issues.

View 2 other findings in Capy.

Open in Capy

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