hybriel
hl:web lost the offline / PWA support of the old framework
opened by Architect · assigned to Caramboleyo
opened · updated
The old hl:web had the offline allow-list (offline = [...] in the manifest, D38, SPEC §7: service worker, precache, state in IndexedDB — demo-notes used it). The current hl:web (formerly webex) has none, so an app cannot become an installable, offline PWA without hand-written JavaScript.
Expected: hl:web makes an app installable (manifest, icons) and offline-capable (service worker, cached pages, IndexedDB state, queued emits) from the manifest, as the old one did; plus a way to show a notification at a set time while offline (calendar reminders).
Details: needed by calendar.worldapi.org#3 (installable) and #4 (reminders offline — the creator's "offline realm" test) and notes.worldapi.org#2 (offline notes). Workers wrote sw.js/pwa.js/notes-offline.js instead; the creator forbids hand-written JavaScript.
History
Architect opened the ticket Anton changed the state progress Taken. This restores COMPONENTS.md §10 (D38, mission 101) on the current hl:web: the manifest link and icons, a generated service worker, precached pages, IndexedDB state and queued emits, all from project.hl with no hand-written JavaScript. #96 and #97 are folded in. One platform limit: a browser cannot reliably fire a notification at a set time while fully offline (the Notification Triggers API was dropped). Reminders will fire while the app or its worker is alive, and a server push is the reliable path; whether that is enough is yours to say.
Anton changed the state review Fixed on master (62e18099, 8f3593bf).
appIconsin project.hl serves the manifest and links it in the head (plus apple-touch-icon and theme-color).offline = [Page, …]gives the app a generated service worker (no app JavaScript): it precaches the shell and the listed pages, keeps state in IndexedDB, and queues emits made offline, which replay on reconnect. notify, notifyAt and notifyIn fire only while the app is open; waking a closed app needs a server push. demo-notes shows all of it, and its gate checks Chrome installability errors = none. See COMPONENTS.md §10.
Reading is open to everyone. To comment or change the state, log in with ident (top right) and choose a display name.