Feature set 179. - #94
Merged
Merged
Conversation
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
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.
Every page now loads its CSS and JS from its own file. Nothing is left inline.
wwwroot/index.htmlassets/home.css,assets/home.jsgames/index.htmlgames/style.css,games/hub.jskupodle/index.htmlkupodle/style.csssphere-hunter/index.htmlsphere-hunter/style.cssbattle-square/index.htmlbattle-square/style.csstriple-triad/index.htmltriple-triad/style.cssDashboard/index.htmlDashboard/app.css,Dashboard/app.jsStats/index.htmlStats/app.css,Stats/app.jsPage-specific files sit beside the page, the way
game.jsalready did; the root page has nodirectory of its own, so it uses
assets/home.*. Every reference carries a?v=stamp, sinceCloudflare overrides the origin's
no-cacheon.jsand.css.Scripts are wrapped in an IIFE with
'use strict', matchingtheme.jsand three of the fourgame.jsfiles. The home page's five inlineon*handlers becameaddEventListenercalls inhome.js— they resolve against the global object and could not have survived the move into ascope. No other page used them.
Dashboard and Stats sit outside
wwwroot, soUseStaticFilesnever sees them: their CSS and JSget explicit routes behind the same
Dashboardauthorization policy as the pages, plusContententries in the csproj so they reach the output directory. Serving them off
wwwrootinsteadwould have left the markup private and its behaviour public.
Also adds the strip and wordmark art: character/monster octagons, game circles (now bordered to
match), and the two logo lockups.
Verification
main: all 3,908 original CSS/JS lines are present verbatim.node --checkon all four extracted scripts.with every referenced stylesheet and script resolving 200;
/dashboard/app.*and/stats/app.*302 to the OAuth challenge, same as their pages; no served page contains an inline block.
dotnet build -c Releaseanddotnet format --verify-no-changesboth clean.Not covered: the dashboard and stats pages rendered while signed in — that needs a real Google
sign-in. Their assets are confirmed routed and guarded.
🤖 Generated with Claude Code