Own dev#1
Conversation
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: e701a41a48
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| } | ||
|
|
||
| if (isStaticAssetRequest(url.pathname)) { | ||
| event.respondWith(cacheFirst(request, RUNTIME_CACHE_NAME)); |
There was a problem hiding this comment.
Serve static requests from the precache
This route sends /css/*, /js/*, and /assets/* through cacheFirst against RUNTIME_CACHE_NAME, but install preloads those files into STATIC_CACHE_NAME; on a fresh offline launch (before runtime cache is warmed), these requests miss runtime cache and fetch throws, so the app shell cannot load its JS/CSS even though they were precached. Route static assets to the static cache (or fall back to it) to keep offline startup working.
Useful? React with 👍 / 👎.
| <div class="error-state"> | ||
| <i class="fas fa-exclamation-triangle"></i> | ||
| <p>${message}</p> | ||
| <button class="retry-btn" onclick="(${retryFn.toString()})()"> |
There was a problem hiding this comment.
Bind retry callbacks without stringifying closures
The retry button executes retryFn.toString() via inline onclick, which runs in global scope and loses lexical bindings; callers pass closures like () => { loadEvents(true); } / () => { loadChannels(true); } from module-local scopes, so clicking Retry raises ReferenceError and cannot recover from API failures. Attach the click handler with addEventListener so the original callback is invoked with its closure intact.
Useful? React with 👍 / 👎.
Co-authored-by: Codex <[email protected]>
…t/build green - CSS: remove duplicate keyframes, dead rules, unnecessary !important - A11y: ARIA tablist/tab/tabpanel roles, skip-link, focus-visible, input labels - Perf: hero video preload=none, event delegation, debounced search inputs - PWA: offline.html fallback, deduplicated manifest icons - SEO: canonical, Open Graph, Twitter Cards, JSON-LD schema - JS: SharedUtils extracts duplicated helpers, all files use Sanitize API - Tooling: ESLint globals + vendor ignore, Vite build stable (0 errors, 0 warnings) Co-Authored-By: Claude Opus 4.6 <[email protected]>
No description provided.