mirror of
https://github.com/olehomelchenko/astrolabe.git
synced 2026-08-08 02:02:33 +00:00
Seat web.dev on the design council; record PWA backfill
This commit is contained in:
@@ -437,11 +437,13 @@ entries).
|
||||
`DONATE_URL` pending the real link).
|
||||
- **Offline/installable:** verify the SW + manifest give a working offline + installed app.
|
||||
**⏳ Remaining** — needs manual verification in a running/installed app.
|
||||
- **Council** — seat **web.dev** for the PWA/offline/storage surfaces none of the seated
|
||||
- **Council** — ~~seat **web.dev** for the PWA/offline/storage surfaces none of the seated
|
||||
members cover: the service-worker **update-available** prompt (`registerType: 'prompt'`),
|
||||
storage **persistence** (`navigator.storage.persist()`), and the quota **estimate**
|
||||
(`StorageManager.estimate()`). **⏳ Remaining** (storage monitor is its consumer; seating
|
||||
triggers a one-off backfill — see [`/council`](../.claude/skills/council/SKILL.md)).
|
||||
(`StorageManager.estimate()`)~~ ✅ seated + backfilled (update-prompt toast + `persist()`
|
||||
request; estimate already wired). **⏳ Remaining gap:** manifest ships no icons → not yet
|
||||
installable (design-asset task). See [`/council`](../.claude/skills/council/SKILL.md) and
|
||||
[arch 10](architecture/10-interaction-and-feedback.md).
|
||||
|
||||
**Manual checks:** keyboard-only run-through; reload restores view from URL;
|
||||
offline reload works; install as standalone; reduced-motion honored. **⏳ Still owed**
|
||||
|
||||
@@ -320,6 +320,20 @@ Datasets (⌘/Ctrl+K), or check the dataset name in your spec."_ — instead of
|
||||
must match the actual cause (NN/g #9, GOV.UK error-message). The thrown
|
||||
`DatasetNotFoundError` carries `datasetName` so the surface can name it.
|
||||
|
||||
**Resolved — service-worker update prompt & persistent storage (web.dev seat).** The build
|
||||
uses `registerType: 'prompt'`, so a new service worker waits and never takes over a running
|
||||
session on its own — the app **must** tell the user, or "ask before updating" silently means
|
||||
"never update." `orchestration/pwa.ts` consumes `virtual:pwa-register` and surfaces
|
||||
`onNeedRefresh` as a **durable** (non-auto-dismissing) info toast with a **Reload** action
|
||||
that calls `updateSW()`; `onOfflineReady` is a transient success toast. Separately, browser
|
||||
storage is best-effort and evictable under pressure, which for a local-first workspace is data
|
||||
loss — so we request `navigator.storage.persist()` once at startup
|
||||
(`infrastructure/storage-persist`), feature-detected and silent on denial (Chromium decides
|
||||
automatically; nothing for the user to act on). _(Consulted via /council → web.dev, with the
|
||||
exact API from vite-plugin-pwa/Workbox; see `reference/principles/web-dev.md`. This bullet is
|
||||
the contract; cite it, not the source.) **Known gap:** the manifest ships no icons, so the app
|
||||
is not yet installable — a design-asset task, logged not passed._
|
||||
|
||||
## 6. Motion & accessibility as default
|
||||
|
||||
Not features to add later — the baseline every surface is built on.
|
||||
|
||||
Reference in New Issue
Block a user