docs(ui): sync docs to the app-shell; fix stale nav comments
Tests · UI / test (push) Failing after 9m28s
Tests · UI / test (push) Failing after 9m28s
Rewrite ui/docs (navigation, order-composer, auth-flow, pwa-strategy, game-state + secondary topic docs) and ui/README for the single-URL app-shell (in-memory screens/views, Back→lobby via shallow routing, sessionStorage restore + validation, return-to-lobby). ui/PLAN.md gets a Phase-10 supersede note (implemented; standalone-compatible). Fix stale code comments (session-store auth gate, report-sections spec contract). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
+13
-3
@@ -4,12 +4,21 @@ The web client is an installable, offline-tolerant PWA. It uses
|
||||
SvelteKit's native service worker (no Workbox) so there is no extra
|
||||
build dependency and the cache logic stays explicit.
|
||||
|
||||
The single-URL app-shell (see [`navigation.md`](navigation.md)) makes
|
||||
the offline story simpler: the whole game UI lives at one route
|
||||
(`${base}/`, i.e. `/game/` under the single-origin deployment), so
|
||||
there is exactly one navigation target to precache and fall back to —
|
||||
no per-screen routes to enumerate. The service-worker scope and the
|
||||
manifest are unchanged by that refactor; both were already base-aware
|
||||
(the SW keys everything off `$service-worker`'s `base`, and the
|
||||
manifest uses relative `./` `start_url` / `scope`).
|
||||
|
||||
## Pieces
|
||||
|
||||
- [`src/service-worker.ts`](../frontend/src/service-worker.ts) — the
|
||||
worker. SvelteKit registers it automatically in the production build.
|
||||
It precaches the app shell (`/`), the build artefacts (JS/CSS +
|
||||
`core.wasm`), and the static files under a **version-keyed** cache
|
||||
It precaches the app shell (`${base}/`), the build artefacts (JS/CSS
|
||||
+ `core.wasm`), and the static files under a **version-keyed** cache
|
||||
(`galaxy-cache-<version>`, `version` from `$service-worker`). On
|
||||
`activate` it deletes every other cache, so a new deploy never serves
|
||||
stale code. Strategy: cache-first for the version-keyed build/files;
|
||||
@@ -17,7 +26,8 @@ build dependency and the cache logic stays explicit.
|
||||
shell answers navigations when fully offline. The gateway (cross-
|
||||
origin) is never intercepted — it is always live network.
|
||||
- [`static/manifest.webmanifest`](../frontend/static/manifest.webmanifest)
|
||||
— name, `standalone` display, `start_url`/`scope` `/`, dark
|
||||
— name, `standalone` display, relative `./` `start_url`/`scope` (so
|
||||
it resolves under whatever `base` the build is deployed at), dark
|
||||
`theme_color`/`background_color`, and the icon set.
|
||||
- [`static/icons/`](../frontend/static/icons/) — `192`/`512` (`any`),
|
||||
a `512` `maskable`, and a `180` apple-touch icon. They are placeholder
|
||||
|
||||
Reference in New Issue
Block a user