feat: unify JacYac clients and integrate GitHub SSO and Ninja Scores - #8997
Merged
marsninja merged 7 commits intoSep 6, 2026
Merged
Conversation
Contributor
|
Too many files changed for review (137 files, 100 file limit). Bypass the limit by tagging |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
Turn the site's separate social, mobile, and leaderboard experiences into JacYac. Web and React Native share session handling, application state, validation, and branding while retaining their own UI components. The header CTA now says Join JacYac, uses the JacYac logo, and opens
/jacyac.Integrate Ninja Scores into JacYac on web and mobile, with public browsing, search, sorting, score breakdowns, and submissions associated with JacYac profiles. Remove its site-wide navigation entry and redirect
/leaderboardinto JacYac. Preserve historical unowned entries under a labeled archive profile.Add GitHub sign-in, explicit account linking, and a picker limited to public repositories owned by the linked GitHub identity. Verify ownership by immutable provider ID. Document OAuth configuration; credentials are supplied through the server environment.
Build reusable OAuth sessions into Jac Scale: PKCE, expiring single-use state bound to provider configuration, browser cookie binding for existing SSO routes, and expiring native results redeemed using a private device polling secret. Resolve accounts by provider ID instead of automatically merging matching emails.
Consolidate duplicated social code and styling, retain inbound
/socializeroutes, and improve mobile layout, submission feedback, and removal confirmation.Align the live code tour with the current source, correct stacked-clip highlight scrolling, serve the mobile embed snippet live within its grid column, and verify the illustrative ownership diagnostics. Add regression coverage for all tour anchors and landing-page samples.
Replace handwritten React effects with Jac lifecycle blocks, including closure-local cleanup for subscriptions, observers, and timers. Correct the client return diagnostic, register returned cleanup with Solid, and document synchronous and async cleanup semantics.
Validation
jac runand checked theme synchronization, reveal/section navigation, game launch and route teardown, and desktop/narrow code clips usingjac browse.jac browse.jac runand validated withjac browse: GitHub's real JacYac authorization page, password login, a real repository submission and score, anonymous browsing, legacy redirect, search, invalid-submission draft retention, and the React Native preview.A personal GitHub login completing the live callback remains unconfirmed. Native UI validation used the browser preview and build checks, not a physical device.