Repository navigation
perf: finish smooth navigation follow-up - #57
Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
|
Understand this PR’s impact Explore downstream dependencies and potential security impact with Blast Radius. Preview blast radius → · Advanced feature Warning Review limit reachedNext included review available in 1 minute. View limit detailsLimit details: You’ve used the included review currently available. Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available. Review configuration: ⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Free Run ID: ⛔ Files ignored due to path filters (5)
📒 Files selected for processing (25)
ℹ️ Recent review info⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Free Run ID: ⛔ Files ignored due to path filters (5)
📒 Files selected for processing (25)
|
| Layer / File(s) | Summary |
|---|---|
Subscription query caching src/hooks/use-subscription.ts, src/test/hooks/use-subscription.test.ts, e2e/navigation-performance.spec.ts |
useSubscription now uses React Query with cached subscription snapshots, error handling, refresh support, and a 60-second stale period. Tests cover provider setup, failures, refresh, remount recovery, and shared navigation reads. |
Service-worker offline caching public/sw.js, src/register-service-worker.ts, scripts/test-service-worker-offline.mjs, nginx.conf, package.json, docs/architecture.md, docs/testing.md, src/test/register-service-worker.test.ts, src/test/vercel-deployment-config.test.ts |
The service worker caches visited asset chunks and the favicon. Registration reports loaded assets. Nginx applies URI-based cache policies. The production verification flow runs offline route and cache-isolation checks. |
Navigation input and logo assets src/hooks/use-route-prefetch.ts, src/test/use-route-prefetch.test.tsx, src/components/landing/*, src/components/layout/AppLayout.tsx, e2e/navigation-performance.spec.ts, e2e/public-pages.spec.ts, e2e/sparring.spec.ts |
Hover prefetching now requires fine-pointer hover support. Application logos use /favicon-72.png with explicit dimensions. Tests cover coarse-pointer behavior and logo rendering. |
Performance instrumentation and evidence scripts/measure-navigation-performance.mjs, docs/performance/smooth-navigation-final/README.md, docs/performance/smooth-navigation-final/task-11-audit.json, e2e/loading-performance.spec.ts |
The measurement harness adds event timing, main-thread, rendering, request-classification, and source-commit data. The performance report and audit artifact record navigation results, bundle data, and test limitations. The Jam recorder test skips WebKit runs without MediaRecorder. |
Estimated code review effort: 4 (Complex) | ~60 minutes
Sequence Diagram(s)
sequenceDiagram
participant Browser
participant Registration
participant ServiceWorker
participant CacheStorage
Browser->>Registration: load and observe /assets/ resources
Registration->>ServiceWorker: send CACHE_VISITED_ASSETS
ServiceWorker->>CacheStorage: cache accepted assets
Browser->>CacheStorage: serve cached route and favicon offline
Note
🎁 Summarized by CodeRabbit Free
Your organization is on the Free plan. CodeRabbit will generate a high-level summary and a walkthrough for each pull request. For a comprehensive line-by-line review, please upgrade your subscription to CodeRabbit Essentials by visiting https://app.coderabbit.ai/settings/billing.
Comment @coderabbitai help to get the list of available commands.
…ance-followup # Conflicts: # e2e/sparring.spec.ts # src/components/landing/Footer.tsx # src/components/landing/Navbar.tsx # src/components/layout/AppLayout.tsx
|
@coderabbitai review |
|
Summary
Measured results
Full evidence and caveats:
docs/performance/smooth-navigation-final/README.md.Verification
npm run verify(Node 22): 1,148 unit tests, 10 collaboration tests, 201 Edge tests, build/boundary/service-worker checks, Chromium 215 passed / 2 expected skipped (one flaky retry independently passed 3/3 with retries disabled)CI=1 PORT=18080 PLAYWRIGHT_BASE_URL=http://127.0.0.1:18080 npm run test:e2e:webkit: 107 passed / 2 capability skipsnginx:alpineresponse-header smoke for/,/app,/index.html, and/sw.jsRelease boundary
This PR is ready for review but must not be merged or deployed without a new explicit instruction from Adam.
Summary by CodeRabbit
New Features
Improvements