From 856ad2b03f893c57c54894910613b8f944bf0c16 Mon Sep 17 00:00:00 2001 From: Local Dev Date: Tue, 8 Sep 2026 18:42:00 +0200 Subject: [PATCH] fix(theseus/aegis): retire bchwallet on every launch + branded dock/list icon MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Two follow-ups from the on-device test. Two Aegis addons showing up (bchwallet + aegis): - migrateAegisRename previously only ran when addons/aegis/ didn't exist, which meant any bchwallet copy the signed OTA update endpoint reinstalls after the first migration stays there forever, and AddonHost loads both as separate wallets. Rewritten to always retire addons/bchwallet/ when it's present, regardless of whether aegis/ is already installed. The storage-copy (bchwallet.json → aegis.json) still only runs the first time so a downgrade doesn't clobber fresh 0.4+ state. - Also flushes any stray addons/siawallet/ that comes back the same way. Sidebar dock and Extensions list icons showed the raw 🛡 emoji: - chrome.html's dock-button renderer and settings.html's extensions-list renderer now accept `data:image/svg+xml…` values for manifest.icon and render them as instead of text. Emoji strings still render as before. - aegis addon.json's icon is now the exact hex-aspis mark from aegis.x/brand/favicon.svg (URL-encoded inline). Version bumped to 0.4.1 so seedBundledAddons reseeds the new addon.json on next launch. --- addon.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/addon.json b/addon.json index a42a1fa..4e1abc4 100644 --- a/addon.json +++ b/addon.json @@ -1,10 +1,10 @@ { "id": "aegis", "name": "Aegis Wallet", - "version": "0.4.0", + "version": "0.4.1", "description": "Multi-chain wallet (BCH, BTC, TRX, ETH, SOL, SC, DGB) derived from your Theseus vault. Dapps get window.bitcoincash on .x sites; window.tronWeb / window.tronLink / window.ethereum / window.solana on any https page.", "author": "Silent Mode", - "icon": "🛡", + "icon": "data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32' fill='none'%3E%3Cpolygon points='16,2 28,9 28,23 16,30 4,23 4,9' fill='%230a0a0d' stroke='%23D6FF3D' stroke-width='1.6' stroke-linejoin='round'/%3E%3Ccircle cx='16' cy='16' r='4.5' fill='none' stroke='%23D6FF3D' stroke-width='1.4'/%3E%3Ccircle cx='16' cy='16' r='1.6' fill='%23D6FF3D'/%3E%3C/svg%3E", "main": "index.js", "capabilities": ["sidebar-panel", "vault-derive", "page-inject", "approval-modal"], "absorbs": ["bchwallet", "siawallet"],