v0.110.0 — PWA: OS integration
Shipped 2026-10-01 — built on version/0.110.0; the merge hash and tag are
in the changelog. PWO.0, the device checks carried from v0.109.0, carries on
into v0.111.0 as PWP.0.
Part two of the Progressive Web App: OS integration. Client only, on v0.109.0's worker. No module release.
- [ ] PWO.0 — carried from PWA.11: Lighthouse's installability audit on alpha; the kill switch tried on alpha (
ALPHA_PWA_KILL_SWITCH=1, then unset); a device pass on an iPhone and an Android phone, installed, through two deploys- Carried to v0.111.0 (as PWP.0): it needs v0.109.0+ on alpha (a
workflow_dispatchofdeploy-alpha.yml, or Tuesday's scheduled run) and an iPhone and an Android phone.
- Carried to v0.111.0 (as PWP.0): it needs v0.109.0+ on alpha (a
- [x] PWO.1 — share target, images (PWA-D7):
share_targetPOST multipart; the worker holds the files by a one-time id and opens/share?id=…, which asks Library or the artwork of a token or character you can edit, through the existing ingestion path - [x] PWO.2 — share target, character files: a shared
.cator.yamlgoes to character import with the file already dropped - [x] PWO.3 — file handlers:
file_handlersfor.catand.yaml, read throughlaunchQueueinto the same import page - [x] PWO.4 — signed out on arrival: a share or file that arrives before sign-in is held by id, resumed after Clerk returns, expired after an hour
- [x] PWO.5 — shortcuts: manifest
shortcutsfor Resume last map, Characters, Library - [x] PWO.6 — keep the screen awake: Screen Wake Lock while
/playis visible; a play-bar toggle, on by default standalone, off in a tab- Done: the toggle is in Settings → Map Controls (Auto / Always / Never, per device) rather than the play bar: the play bar has no menu, and a phone — where this matters — has no play bar at all.
- [x] PWO.7 — badging:
navigator.setAppBadgewith the unread message count, cleared at zero, a no-op where missing - [x] PWO.8 — verified: a photo shared from the iOS and Android photo apps into token art; a
.catfrom Files into import; wake lock through a ten-minute idle/playon a phone- Done: checked by the owner on next (
version/0.110.0deployed there), 2026-10-01;pnpm verify --e2egreen, the share POST exercised through a real browser's worker ine2e/pwa.spec.ts.
- Done: checked by the owner on next (