Skip to content

docs(global-access): record Wave 0-2 execution in the plan - #9

Merged
everbird merged 4 commits into
mainfrom
perf/global-access-waves
Aug 5, 2026
Merged

docs(global-access): record Wave 0-2 execution in the plan#9
everbird merged 4 commits into
mainfrom
perf/global-access-waves

Conversation

@everbird

@everbird everbird commented Aug 5, 2026

Copy link
Copy Markdown
Owner

No description provided.

everbird and others added 4 commits August 5, 2026 02:48
…k logo

GAP-001: remove the render-blocking Google Fonts @import from bootstrap.min.css
(and the unused themes/* variants) and switch --bs-font-sans-serif to the system
stack. No fonts.googleapis.com / fonts.gstatic.com remain in the repo.

GAP-002: drop the unpkg.com FilePond CSS <link> from root.html and category.html
(category keeps the local static/css/filepond.css; root has no upload widget).

GAP-003: the sidebar logo was a 1024x1024, 956KB PNG shown at <=256px. Add
logo-512.webp (49KB) + logo-256.png (75KB) and load them via <picture> in
base.html. New filenames avoid depending on purging the old same-name cache.
OG image keeps the original (not a first-paint cost).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01LjBDHnJYAW4ETrLWFyj9he
…oD assets

GAP-004: keep the browser on `Cache-Control: private, no-cache` for /r/raw/* but
add `Cloudflare-CDN-Cache-Control: public, max-age=86400` so Cloudflare can hold
a shared edge copy of the public, effectively-immutable raw report HTML. Tests
assert the CDN header on 200/304/replaced-200 and that dynamic pages never emit
it. (The matching Cloudflare Cache Rule is configured in the dashboard.)

GAP-005: mirror the reader's fixed-version WoD German-site assets locally under
static/wod/ (wod_standard.js + layout.css/skin-cn.css and their @import
ajax.css/news.css) and point report_reader.html at them, removing a render-
blocking cross-border DNS/TLS chain (~1610ms for wod_standard.js). Relative
image url() were rewritten to absolute delta URLs (non-blocking); the runtime
wodInitialize host and external jump links still target the live game server.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01LjBDHnJYAW4ETrLWFyj9he
GAP-006: make the GA4 tag a config toggle (config.py::GOOGLE_ANALYTICS_ID,
injected via an app.py context processor; empty string disables it) and stop
hard-loading gtag.js in <head>. base.html now injects it after the load event
via requestIdleCallback, so it never competes with first paint (it used to pend
for a long time on mainland-China networks).

GAP-007: drop the redundant standalone popper-v2.11.6.js from base.html —
bootstrap.bundle.min.js (v5.2.2) already bundles Popper for the sidebar
dropdowns and no base-extending page uses a global Popper (report_reader.html is
standalone and keeps its own). Gate category.html's FilePond css/js (437KB)
behind the owner check so public/non-owner viewers no longer download the upload
widget assets. Font Awesome subsetting is intentionally deferred (higher risk).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01LjBDHnJYAW4ETrLWFyj9he
Flip GAP-001..003 and 005 to done, GAP-004 to done (with the Cloudflare Cache
Rule reality: `respect origin` still BYPASSed on `private`, so Edge TTL was set
to a forced 1-day TTL), GAP-006 to done, GAP-007 to partial (Font Awesome
subsetting deferred). Add changelog entries for each wave, including the GAP-004
production Cache Rule that was verified serving cf-cache-status: HIT.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01LjBDHnJYAW4ETrLWFyj9he
@everbird
everbird merged commit 73ca443 into main Aug 5, 2026
1 check failed
@everbird
everbird deleted the perf/global-access-waves branch August 5, 2026 03:36
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