Skip to content

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_dispatch of deploy-alpha.yml, or Tuesday's scheduled run) and an iPhone and an Android phone.
  • [x] PWO.1 — share target, images (PWA-D7): share_target POST 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 .cat or .yaml goes to character import with the file already dropped
  • [x] PWO.3 — file handlers: file_handlers for .cat and .yaml, read through launchQueue into 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 shortcuts for Resume last map, Characters, Library
  • [x] PWO.6 — keep the screen awake: Screen Wake Lock while /play is 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.setAppBadge with 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 .cat from Files into import; wake lock through a ten-minute idle /play on a phone
    • Done: checked by the owner on next (version/0.110.0 deployed there), 2026-10-01; pnpm verify --e2e green, the share POST exercised through a real browser's worker in e2e/pwa.spec.ts.