From b5f1cf468bb66e29b025c6dfcd3b72c44e675aef Mon Sep 17 00:00:00 2001 From: Local Dev Date: Tue, 8 Sep 2026 18:09:55 +0200 Subject: [PATCH] feat(theseus/settings): Aegis update card + DevTools open in tab sidebar MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Two additions: 1) Aegis (bchwallet) update card lands in Settings > General beside the Ariadne one. Same look, different substance: Aegis is a bundled add-on, not a system service, so no Install/Uninstall buttons — the checkboxes there are 'Check for updates' and (only when an update is staged) 'Restart to apply update'. Reuses the existing signed OTA endpoint (addons-check-updates IPC) and addons-list-staged for the pending-update surface, so new wallet versions ship without a Theseus release. New app-restart IPC (app.relaunch + app.quit) does the promotion handoff — addons-host promotes staged updates on next boot. 2) DevTools (F12 / Ctrl+Shift+I) opens docked to the right of the tab view (mode: 'right') instead of popping a detached window. A user debugging a page gets the tools alongside it, matching stock Chrome; anyone who prefers detached can still drag it out via the DevTools own toolbar. --- main.js | 11 ++++++--- settings-preload.js | 1 + settings.html | 59 +++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 67 insertions(+), 4 deletions(-) diff --git a/main.js b/main.js index dd23831..543d35a 100644 --- a/main.js +++ b/main.js @@ -2978,6 +2978,9 @@ ipcMain.handle("find-stop", () => { // Just the app version — no network. Used by Settings > General so the // user can see which Theseus they're on without clicking "Check for updates". ipcMain.handle("app-version", () => app.getVersion()); +// Clean relaunch — used by the Aegis card to apply a staged add-on update +// (promotion happens on next boot; this is just how the user gets there). +ipcMain.handle("app-restart", () => { try { app.relaunch(); } catch {} app.quit(); }); ipcMain.handle("recheck-update", async () => { // Manual "Check for updates" also un-dismisses any chip the user closed // in this session — they're actively asking to see the status, so honour @@ -4056,9 +4059,9 @@ app.on("web-contents-created", (_event, wc) => { return e.preventDefault(); } // DevTools: F12 or Ctrl+Shift+I toggles Chromium DevTools on the active - // TAB (not the chrome/overlay that received the keystroke — a user - // debugging a page wants the page's inspector, always). Detach into - // its own window so we don't shove tools into the tab strip. + // TAB. Docked to the right of the tab view (mode: "right") so the tools + // ride alongside the page instead of popping a separate Theseus window. + // Users who prefer detached can still drag out via the DevTools UI. const isI = input.key === "I" || input.key === "i"; if (input.key === "F12" || (input.control && input.shift && isI)) { const t = activeTab(); @@ -4066,7 +4069,7 @@ app.on("web-contents-created", (_event, wc) => { try { const twc = t.view.webContents; if (twc.isDevToolsOpened()) twc.closeDevTools(); - else twc.openDevTools({ mode: "detach" }); + else twc.openDevTools({ mode: "right" }); } catch {} } return e.preventDefault(); diff --git a/settings-preload.js b/settings-preload.js index 029583a..20babb6 100644 --- a/settings-preload.js +++ b/settings-preload.js @@ -40,6 +40,7 @@ contextBridge.exposeInMainWorld("cfg", { // fetches the release manifest. Returns { updateAvailable, currentVersion }. recheckUpdate: () => ipcRenderer.invoke("recheck-update"), appVersion: () => ipcRenderer.invoke("app-version"), + restartApp: () => ipcRenderer.invoke("app-restart"), // Add-ons management (Settings > Add-ons tab). listAddons: () => ipcRenderer.invoke("addons-list"), setAddonEnabled: (id, enabled) => ipcRenderer.invoke("addons-set-enabled", id, !!enabled), diff --git a/settings.html b/settings.html index 4d237db..2bb795a 100644 --- a/settings.html +++ b/settings.html @@ -234,6 +234,22 @@ silentmode.st/tools. +
+
+
Built-in wallet — Aegis
+
+ Multi-chain wallet (BCH, BTC, TRX, ETH, SOL, SC, DGB) that ships in the box. + Bundled with Theseus, but updates are delivered over-the-air: new signed + versions land without a Theseus release. Runs entirely inside this browser — + never system-wide. +
+
+
Loading…
+
+ + +
+