From c47c3118738664c31ceb3409cd471e42c49c4c3e Mon Sep 17 00:00:00 2001 From: Nathan Schneider Date: Tue, 20 Oct 2026 22:21:00 -0600 Subject: [PATCH] =?UTF-8?q?manifest=20icons:=20explicit=20any/maskable=20e?= =?UTF-8?q?ntries=20(no=20dual-purpose=20value=20=E2=80=94=20Firefox=20And?= =?UTF-8?q?roid=20quirk),=20launcher=20sizes=20first?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- patch_index.py | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/patch_index.py b/patch_index.py index 1ec80bb..e230846 100644 --- a/patch_index.py +++ b/patch_index.py @@ -51,9 +51,17 @@ try: mf["name"] = "Inference Co\u2011op" mf["short_name"] = "Inference" mf["description"] = "Member-governed AI inference — private and renewable model choices." - for icon in mf.get("icons", []): - if icon.get("sizes") == "512x512": - icon["purpose"] = "any maskable" + # Deterministic icon list: explicit any/maskable entries (no dual-purpose + # values — some Firefox Android versions mishandle "any maskable"), and + # the launcher-suitable sizes first. + mf["icons"] = [ + {"src": "assets/icon-192x192.png", "sizes": "192x192", "type": "image/png", "purpose": "any"}, + {"src": "assets/maskable-icon.png", "sizes": "512x512", "type": "image/png", "purpose": "any"}, + {"src": "assets/maskable-icon.png", "sizes": "512x512", "type": "image/png", "purpose": "maskable"}, + {"src": "assets/apple-touch-icon-180x180.png", "sizes": "180x180", "type": "image/png"}, + {"src": "assets/favicon-32x32.png", "sizes": "32x32", "type": "image/png"}, + {"src": "assets/favicon-16x16.png", "sizes": "16x16", "type": "image/png"}, + ] open(MPATH, "w", encoding="utf-8").write(_json.dumps(mf, indent=2)) print("manifest: co-op identity set") except OSError: