diff --git a/engine-icons/chatgpt.svg b/engine-icons/chatgpt.svg
deleted file mode 100644
index 13d93f54..00000000
--- a/engine-icons/chatgpt.svg
+++ /dev/null
@@ -1 +0,0 @@
-
diff --git a/engine-icons/gemini.svg b/engine-icons/gemini.svg
deleted file mode 100644
index 0a1b12d5..00000000
--- a/engine-icons/gemini.svg
+++ /dev/null
@@ -1 +0,0 @@
-
diff --git a/engine-icons/grok.svg b/engine-icons/grok.svg
deleted file mode 100644
index 186c1d7e..00000000
--- a/engine-icons/grok.svg
+++ /dev/null
@@ -1 +0,0 @@
-
diff --git a/engine-icons/phind.svg b/engine-icons/phind.svg
deleted file mode 100644
index af402d66..00000000
--- a/engine-icons/phind.svg
+++ /dev/null
@@ -1 +0,0 @@
-
diff --git a/main.js b/main.js
index 2ea4082a..626ae758 100644
--- a/main.js
+++ b/main.js
@@ -288,8 +288,13 @@ function isInstalled(id) {
return (settings.installedEngines || DEFAULT_ENABLED).includes(id);
}
function allEngines() {
+ // Built-in engines without a bundled icon fall back to the same
+ // fetch-and-cache path custom engines use — pulls the site's own
+ // /favicon.ico once and remembers it per profile, so the picker shows
+ // the real brand mark instead of the sym glyph. The emoji sym renders
+ // first and the real icon replaces it on the next emit after fetch.
const list = Object.entries(SEARCH_ENGINES).map(([id, e]) =>
- ({ id, name: e.name, sym: e.sym, favicon: bundledIcon(id), kind: e.kind || "search", tier: e.tier || "catalog", builtin: true, installed: isInstalled(id), enabled: isEnabled(id) && !e.frozen, frozen: e.frozen || null }));
+ ({ id, name: e.name, sym: e.sym, favicon: bundledIcon(id) || (e.fav ? customFavicon("https://" + e.fav + "/") : null), kind: e.kind || "search", tier: e.tier || "catalog", builtin: true, installed: isInstalled(id), enabled: isEnabled(id) && !e.frozen, frozen: e.frozen || null }));
for (const c of settings.customEngines || [])
list.push({ id: c.id, name: c.name, sym: c.sym || "🔍", favicon: customFavicon(c.url), kind: c.kind || "search", tier: "custom", builtin: false, installed: true, enabled: isEnabled(c.id) });
// Apply the user's custom order; ids not in engineOrder keep their natural order (stable sort).
diff --git a/package.json b/package.json
index 71149242..3ee61024 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "theseus-navigator",
- "version": "0.3.112",
+ "version": "0.3.113",
"license": "MPL-2.0",
"description": "Theseus Navigator — a browser that follows the thread. By Silent Mode, a Deviant project.",
"author": "Silent Mode",