Make the app installable as a PWA #9
Loading…
Reference in a new issue
No description provided.
Delete branch "feature/pwa"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Summary
build.mjscopiesclient/src/public/*(manifest + icons) intodist/alongside the existingindex.htmlcopy;express.staticalready serves all ofdistunconditionally, so no server changes were needed.Context
This was requested as a follow-up after PR #8 (Picture-in-Picture): I'd explained that PiP can't be triggered automatically on backgrounding because browsers require a fresh user gesture for
requestPictureInPicture()— confirmed empirically by calling it from a realvisibilitychangelistener in a real Chromium tab and gettingNotAllowedError, even withnavigator.userActivation.hasBeenActive === truefrom an earlier real click.Worth being explicit about: installing this app as a PWA does not change that outcome — the gesture requirement is part of the Picture-in-Picture spec itself, not tied to running in a tab vs. a standalone window. So this PR is a standalone, independently useful feature (home-screen icon, no URL bar, OS-level app-switcher entry) rather than a fix for the previous limitation. Full reasoning in docs/architecture.md's new "Progressive Web App" section.
Verification
typecheck/build(client only).manifest.webmanifestand all 3 manifest icons resolve200with correctapplication/manifest+json/image/pngcontent types,apple-touch-iconresolves200, generated PNGs are genuinely the declared dimensions (32/180/192/512), no manifest-related console warnings.Test plan
🤖 Generated with Claude Code