feat(offline): offline-mode state, Settings toggle + blue chrome (Phase C) #195

Merged
developer merged 1 commits from feature/offline-mode-state into development 2026-07-06 07:48:49 +00:00
Owner

First Phase C step of PWA offline mode — the deliberate offline mode is now visible. An installed web-PWA user with a confirmed email can switch to offline in Settings; the header turns blue with an "Offline" chip. (Network gating, the dict preload + toggle readiness, the offline lobby + local-game creation, and the service-worker precache follow.)

  • offline.ts / offline.svelte.ts: a sticky, device-scoped reactive offlineMode flag (distinct from connection.svelte's transient reachability), with pure persistence + readiness helpers (offlineReady/missingDicts) unit-tested.
  • Settings.svelte: an Online / Offline toggle, shown only for an installed web PWA with a confirmed email.
  • Header.svelte: a blue-tinted nav (color-mix from the accent, so it tracks light/dark + a Telegram theme override) + an "Offline" chip while offline; the deliberate mode suppresses the transient "Connecting…" indicator.

Behaviour-preserving online (the toggle is hidden and offlineMode false there). Local verify green: check + test:unit + build + bundle gate (111.6/112 KB) + e2e (196 passed). Best reviewed live on the contour (install the PWA, confirm email, toggle offline).

First Phase C step of PWA offline mode — the deliberate offline mode is now visible. An installed web-PWA user with a confirmed email can switch to offline in Settings; the header turns blue with an "Offline" chip. (Network gating, the dict preload + toggle readiness, the offline lobby + local-game creation, and the service-worker precache follow.) - `offline.ts` / `offline.svelte.ts`: a sticky, device-scoped reactive `offlineMode` flag (distinct from `connection.svelte`'s transient reachability), with pure persistence + readiness helpers (`offlineReady`/`missingDicts`) unit-tested. - `Settings.svelte`: an Online / Offline toggle, shown only for an installed web PWA with a confirmed email. - `Header.svelte`: a blue-tinted nav (`color-mix` from the accent, so it tracks light/dark + a Telegram theme override) + an "Offline" chip while offline; the deliberate mode suppresses the transient "Connecting…" indicator. Behaviour-preserving online (the toggle is hidden and offlineMode false there). Local verify green: check + test:unit + build + bundle gate (111.6/112 KB) + e2e (196 passed). Best reviewed live on the contour (install the PWA, confirm email, toggle offline).
developer added 1 commit 2026-07-06 07:44:22 +00:00
feat(offline): offline-mode state, Settings toggle + blue chrome (Phase C)
CI / changes (pull_request) Successful in 2s
CI / unit (pull_request) Has been skipped
CI / integration (pull_request) Has been skipped
CI / ui (pull_request) Successful in 1m9s
CI / conformance (pull_request) Successful in 9s
CI / gate (pull_request) Successful in 0s
CI / deploy (pull_request) Successful in 1m39s
68ecd881d9
The deliberate offline mode is now visible: an installed web-PWA user with a confirmed
email can switch to offline in Settings, and the header turns blue with an "Offline"
chip. (Network gating, the dict preload, the offline lobby + local-game creation, and the
service-worker precache follow in later Phase C steps.)

- offline.ts / offline.svelte.ts: a sticky, device-scoped reactive offline flag
  (offlineMode), distinct from connection.svelte's transient reachability signal, with the
  pure persistence + readiness helpers (offlineReady / missingDicts) unit-tested.
- Settings.svelte: an Online / Offline toggle, shown only for an installed web PWA with a
  confirmed email (the SW-launch + durable-account preconditions).
- Header.svelte: a blue-tinted nav (color-mix from the accent, so it tracks light/dark and
  a Telegram theme override) + an "Offline" chip while offline; the deliberate mode
  suppresses the transient "Connecting…" indicator.

Behaviour-preserving online (the toggle is hidden and offlineMode is false there; e2e 196
green). App entry stays within its size budget (111.6 / 112 KB gzip).
owner approved these changes 2026-07-06 07:47:54 +00:00
developer merged commit 8349e222fc into development 2026-07-06 07:48:49 +00:00
developer deleted branch feature/offline-mode-state 2026-07-06 07:48:49 +00:00
Sign in to join this conversation.
No Reviewers
No Label
2 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: developer/scrabble-game#195