Files
moeka-project/apps/stage-web
RainbowBird 1d27dc7cdf fix(stage-web): cache canonical app shell for payment returns (#2531)
Payment completed and Flux was credited, but returning from Stripe
showed `ERR_FAILED`. Edge reported that the service worker replayed a
redirected response for a navigation request. Cloudflare redirects
`/index.html` to `/`.

Precache the canonical root URL and use it as the navigation fallback.
The new cache key also avoids reusing the old redirected app shell.

Validation: generated a service worker with the installed Workbox
version and verified both its precache entry and navigation handler use
`./`; ESLint passed. Production payment credited 500 Flux, and bypassing
the service worker restored the page. Normal-cache production
verification follows deployment.
2026-09-12 18:00:48 +08:00
..
2026-08-26 20:13:10 +08:00
2026-08-26 20:13:10 +08:00

アイリ VTuber

[Try it]

Heavily inspired by Neuro-sama

Performance diagnostics

Run pnpm dev:web:https from the repository root. Open /devtools/performance-visualizer and enable FPS. The floating overlay shows the last 10 seconds of FPS history, with time and FPS axes. The minimum, maximum, and latest values describe the visible samples. Other metrics retain their distribution charts.

Start a recording, then navigate within the app to the scene you want to measure. Stop the recording within 60 seconds, or let it stop automatically. Return to the visualizer to inspect the recorded FPS history. Export the recording as CSV for individual timestamps and values.

Each FPS sample is 1000 / frameIntervalMs, from requestAnimationFrame callbacks. Use these samples to locate changes in animation frame timing. They do not measure GPU presentation or native application FPS. Keep the page in the foreground. Reloading the page clears the recording.

For device comparisons, use the same scene, model, warm-up period, and recording duration. The development server and the visible overlay affect performance, so record these conditions with the results.