Root Cause: Old icons were cached on Vercel from previous deployment Fix: Rebuilt with new vault shield icons and redeployed
Root Cause: Manifest missing purpose: 'any' on required icon sizes
Fix: Added purpose: 'any' to 192x192 and 512x512 icons in manifest
1. New Vault Shield Icon Design:
- Professional security-focused vault shield shape
- "TV" initials in teal (#16c79a)
- Dark navy background (#1a1a2e)
- Keyhole detail for security symbolism
- Replaced all instances of old green fill icon
2. PWA Manifest Fix (vite.config.ts):
icons: [
{
src: 'pwa-192x192.png',
sizes: '192x192',
type: 'image/png',
purpose: 'any' // ← Added for installability
},
{
src: 'pwa-512x512.png',
sizes: '512x512',
type: 'image/png',
purpose: 'any' // ← Added for installability
},
{
src: 'pwa-maskable-192x192.png',
sizes: '192x192',
type: 'image/png',
purpose: 'maskable'
},
{
src: 'pwa-maskable-512x512.png',
sizes: '512x512',
type: 'image/png',
purpose: 'maskable'
}
]3. CSP Headers for Preview Server:
- Added security headers to preview server
- Matches production security configuration
- Blocks unauthorized content injection
- Push completed at:
2025-11-09 ~18:50 UTC - Check Vercel dashboard: https://vercel.com/ianpintos-projects/trust-vault-pwa
- Wait for "Deployment Complete" status (~2-3 minutes)
- Note the deployment URL
CRITICAL: Old icons may be cached by browser and service worker
Chrome:
- Open DevTools (F12)
- Application tab → Storage → Clear site data
- Check: "Unregister service workers"
- Check: "Clear storage"
- Click "Clear site data"
- Hard refresh: Cmd+Shift+R (Mac) or Ctrl+Shift+R (Windows)
Firefox:
- Open DevTools (F12)
- Storage tab → Cache Storage → Delete all
- Service Workers → Unregister all
- Hard refresh: Cmd+Shift+R (Mac) or Ctrl+Shift+R (Windows)
Safari:
- Develop menu → Empty Caches
- Hard refresh: Cmd+R
- Visit: https://trust-vault-pwa.vercel.app
- Look at browser tab icon
- ✅ Should see: Vault shield with TV initials
- ❌ If green icon: Clear cache and refresh
- Visit: https://trust-vault-pwa.vercel.app/manifest.webmanifest
- Verify JSON contains:
{ "icons": [ {"src":"pwa-192x192.png","sizes":"192x192","type":"image/png","purpose":"any"}, {"src":"pwa-512x512.png","sizes":"512x512","type":"image/png","purpose":"any"}, {"src":"pwa-maskable-192x192.png","sizes":"192x192","type":"image/png","purpose":"maskable"}, {"src":"pwa-maskable-512x512.png","sizes":"512x512","type":"image/png","purpose":"maskable"} ] } - ✅ Should see
"purpose":"any"on both 192 and 512 icons - ✅ Should see 4 total icon definitions
- Visit: https://trust-vault-pwa.vercel.app/pwa-512x512.png
- ✅ Should see: Vault shield with TV initials (dark navy background, teal border)
- ❌ If green icon: Wait a bit more for Vercel CDN to update (~1-2 min)
- Also check:
- Visit: https://trust-vault-pwa.vercel.app
- Wait 5-10 seconds
- ✅ Should see: Install icon (+) in address bar (right side)
- Click install icon
- ✅ Should see: "Install TrustVault PWA?" dialog with new icon
- Install and verify icon on desktop/dock
- Visit: https://trust-vault-pwa.vercel.app
- Wait 5-10 seconds
- ✅ Should see: "Add to Home screen" banner at bottom
- Tap "Add to Home screen"
- ✅ Should see: New vault shield icon in preview
- Add to home screen and verify icon in app drawer
- Visit: https://trust-vault-pwa.vercel.app
- Tap Share button (square with arrow up)
- Scroll down → Tap "Add to Home Screen"
- ✅ Should see: New vault shield icon (uses apple-touch-icon.png)
- Tap "Add" and verify icon on home screen
What are maskable icons? Maskable icons ensure the icon isn't clipped when Android applies different shapes (circle, squircle, rounded square, etc.)
To Test:
- Add PWA to Android home screen
- Check icon shape follows system theme
- ✅ Icon should not be clipped or cut off
- ✅ TV text should be fully visible in all shapes
Test Different Icon Shapes:
- Go to Android Settings → Display → Icon shape (if available)
- Try different shapes: Circle, Square, Rounded, Squircle
- Return to home screen
- ✅ TrustVault icon should adapt without clipping
- Open: https://trust-vault-pwa.vercel.app
- Open DevTools (F12)
- Application tab → Manifest
- ✅ Check "Installability" section:
- "No issues detected" or "Installable"
- NOT "Manifest does not contain a suitable icon"
- ✅ Check "Icons" section:
- Should show 4 icons
- Click each to preview
- All should show new vault shield design
- Open DevTools → Lighthouse tab
- Select: "Progressive Web App"
- Click "Generate report"
- ✅ Check results:
- "Installable" should be green checkmark
- "Manifest has a maskable icon" should pass
- "Web app manifest meets installability requirements" should pass
- "Has a tag" should pass
- PWA score should be 100
Verify Service Worker Updated:
- Open DevTools → Application → Service Workers
- Check Status: "activated and is running"
- Check version in SW code (should match latest deploy)
- If old version cached:
- Click "Unregister"
- Hard refresh page (Cmd+Shift+R)
- Service Worker should re-register with new icons
Solution:
- Clear browser cache completely
- Unregister service worker
- Wait 2-3 minutes for Vercel CDN propagation
- Try incognito/private window
- Check actual icon URL directly: https://trust-vault-pwa.vercel.app/pwa-512x512.png
Checks:
- Manifest has
purpose: 'any'on icons? (Visit /manifest.webmanifest) - Icons are valid PNG files? (Visit /pwa-192x192.png and /pwa-512x512.png)
- HTTPS connection? (Required for PWA)
- Not already installed? (Check chrome://apps or home screen)
- Wait 5-10 seconds after page load
Solution:
- Check icon has 40% safe zone padding
- Verify using: https://maskable.app/editor
- Upload: https://trust-vault-pwa.vercel.app/pwa-maskable-512x512.png
- Ensure content (TV text + shield) stays within safe zone circle
This is normal:
- iOS uses: apple-touch-icon.png (180x180)
- Android uses: pwa-512x512.png or pwa-maskable-512x512.png
- Desktop uses: favicon.ico (32x32)
- All should show same vault shield design, just different sizes
| Time | Event |
|---|---|
| T+0min | Push to GitHub complete |
| T+1min | Vercel build starts |
| T+3min | Vercel deployment complete |
| T+5min | CDN cache updated globally |
| T+10min | All users see new icons |
Current Status:
- ✅ Code pushed to GitHub: 9888510
- ⏳ Waiting for Vercel deployment
- ⏳ Waiting for CDN propagation
All of these must be ✅:
- Browser tab shows vault shield favicon (not green icon)
- /manifest.webmanifest has
purpose: 'any'on 192 & 512 icons - /pwa-512x512.png shows vault shield with TV initials
- Install icon (+) appears in browser address bar
- Install dialog shows new vault shield icon
- Installed PWA shows new icon on desktop/home screen
- Lighthouse PWA audit: "Installable" = ✅
- Lighthouse PWA audit: "Has maskable icon" = ✅
- Service worker version matches latest deploy
- No console errors related to manifest or icons
After verifying success:
-
Test on Multiple Devices:
- Desktop Chrome (Windows)
- Desktop Chrome (Mac)
- Desktop Edge
- Mobile Chrome (Android)
- Mobile Safari (iOS)
-
Test Install/Uninstall:
- Install PWA
- Verify icon on home screen/desktop
- Uninstall
- Re-install
- Icon still correct
-
Test Update Flow:
- Keep PWA open
- Make a code change and deploy
- Update notification appears
- Update installs successfully
- Icon remains correct after update
-
Monitor Error Logs:
- Check Vercel logs for deployment errors
- Check browser console for manifest warnings
- Check Analytics (if configured) for install success rate
Once all criteria met:
- ✅ New vault shield icons deployed successfully
- ✅ PWA install prompt working on all devices
- ✅ Maskable icons prevent clipping on Android
- ✅ All platforms show consistent branding
Deployment Date: 2025-11-09 Commit: 9888510 Deployed By: Claude Code (Anthropic) Vercel Project: trust-vault-pwa