From 43819dc37604bd6c3ee254f57e5aa70e5d0a4a6a Mon Sep 17 00:00:00 2001 From: "opencode-agent[bot]" <219766164+opencode-agent[bot]@users.noreply.github.com> Date: Tue, 1 Sep 2026 00:11:07 +0800 Subject: [PATCH] fix(app): restore maskable pwa icons (#46434) Co-authored-by: David <1879069+iamdavidhill@users.noreply.github.com> --- packages/app/manifest.json | 4 ++-- packages/app/vite.icons.test.ts | 1 + 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/packages/app/manifest.json b/packages/app/manifest.json index 91bba66009a..427c3adf423 100644 --- a/packages/app/manifest.json +++ b/packages/app/manifest.json @@ -9,13 +9,13 @@ "src": "/web-app-manifest-192x192.png", "sizes": "192x192", "type": "image/png", - "purpose": "any" + "purpose": "maskable" }, { "src": "/web-app-manifest-512x512.png", "sizes": "512x512", "type": "image/png", - "purpose": "any" + "purpose": "maskable" } ], "theme_color": "#080808", diff --git a/packages/app/vite.icons.test.ts b/packages/app/vite.icons.test.ts index e55dad870ce..a416ff6be60 100644 --- a/packages/app/vite.icons.test.ts +++ b/packages/app/vite.icons.test.ts @@ -59,6 +59,7 @@ test.each(["dev", "beta", "prod"])("serves %s app icons", async (channel) => { async function check(channel: string, read: (path: string) => Promise) { const html = new TextDecoder().decode(await read("/index.html")) const actual: typeof manifest = JSON.parse(new TextDecoder().decode(await read("/site.webmanifest"))) + expect(actual.icons.every((icon) => icon.purpose === "maskable")).toBe(true) expect(actual).toEqual({ ...manifest, icons: manifest.icons.map((icon) => ({ ...icon, src: `/icons/${channel}${icon.src}` })),