Skip to content

Fix PWA Home Screen icon still showing the old Harness artwork - #302

Merged
frenchie4111 merged 1 commit into
mainfrom
fix-pwa-icon
Aug 27, 2026
Merged

Fix PWA Home Screen icon still showing the old Harness artwork#302
frenchie4111 merged 1 commit into
mainfrom
fix-pwa-icon

Conversation

@frenchie4111

Copy link
Copy Markdown
Collaborator

Summary

Adding Ness to an iOS/Android Home Screen still installed the pre-rebrand dot-grid Harness icon.

scripts/build-icons.sh regenerates every raster icon from resources/icon.svg, but it only ever wrote to resources/ and site/public/ — never src/web-client/public/, which is what the PWA manifest and apple-touch-icon actually serve. So the rebrand to the Nessie mark never reached them (31bd3b0b renamed user-facing strings, not these PNGs).

  • build-icons.sh now also emits src/web-client/public/{icon,icon-maskable,apple-touch-icon}.png, so they can't drift out of sync again.
  • Regenerated all three. icon.png is now byte-identical to resources/icon.png (the desktop app icon).
  • icon-maskable.png and apple-touch-icon.png are rendered full-bleed — flattened onto the artwork's own background colour, read out of the SVG rather than restated in the script. iOS and Android apply their own mask, so shipping the padded rounded rect leaves the icon double-rounded and inset. Confirmed the mark stays inside the maskable safe zone (max radius ~325px vs. the 410px limit) and that both files are fully opaque.

Only the web-client icons changed — resources/ and site/public/ re-rendered byte-identical, which is a decent check that the script's existing outputs weren't disturbed.

Test plan

  • bash scripts/build-icons.sh succeeds; git status shows only the three web-client PNGs modified
  • Rendered all three and visually confirmed the Nessie mark
  • magick -format %[opaque] reports True for both full-bleed variants
  • vite build --config vite.web.config.ts copies all three into out/web-client/, hashes match source
  • Deploy and add to iOS Home Screen to confirm end to end

Note for reviewers/users: iOS caches apple-touch-icon aggressively. An already-installed PWA keeps the old icon until it's deleted from the Home Screen and re-added.

🤖 Generated with Claude Code

build-icons.sh regenerated resources/ and site/ from icon.svg but never
covered src/web-client/public/, so the web client's manifest and
apple-touch icons were left on the pre-rebrand dot-grid mark. Adding
them to the script is what stops it drifting again.

The maskable and apple-touch variants are flattened onto the artwork's
own background colour, since iOS and Android apply their own mask and a
padded rounded rect ends up double-rounded and inset.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
@frenchie4111
frenchie4111 merged commit 7f8ff55 into main Aug 27, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant