Fix PWA Home Screen icon still showing the old Harness artwork - #302
Merged
Conversation
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>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Adding Ness to an iOS/Android Home Screen still installed the pre-rebrand dot-grid Harness icon.
scripts/build-icons.shregenerates every raster icon fromresources/icon.svg, but it only ever wrote toresources/andsite/public/— neversrc/web-client/public/, which is what the PWA manifest andapple-touch-iconactually serve. So the rebrand to the Nessie mark never reached them (31bd3b0brenamed user-facing strings, not these PNGs).build-icons.shnow also emitssrc/web-client/public/{icon,icon-maskable,apple-touch-icon}.png, so they can't drift out of sync again.icon.pngis now byte-identical toresources/icon.png(the desktop app icon).icon-maskable.pngandapple-touch-icon.pngare 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/andsite/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.shsucceeds;git statusshows only the three web-client PNGs modifiedmagick -format %[opaque]reportsTruefor both full-bleed variantsvite build --config vite.web.config.tscopies all three intoout/web-client/, hashes match sourceNote for reviewers/users: iOS caches
apple-touch-iconaggressively. An already-installed PWA keeps the old icon until it's deleted from the Home Screen and re-added.🤖 Generated with Claude Code