From 1ee9cc423ee1464aea324112898c8792c86c1548 Mon Sep 17 00:00:00 2001 From: Local Dev Date: Sun, 20 Sep 2026 14:39:07 +0200 Subject: [PATCH] fix(theseus): address bar follows the page; tab strip stops blinking; extensions page MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Address bar: the chrome view keeps document.activeElement on the URL input after the user clicks into the page (focus moved to the tab's own view), and the "don't clobber typed text" guard then froze the bar until something blurred the field. The guard now requires real focus (document.hasFocus()), and the field is blurred when the view loses focus. - Tab strip: rebuilt with innerHTML on every tabs event, which recreated every favicon — a blink on the other tabs whenever one tab loaded, reloaded or changed title — and dropped drag state mid-gesture. Elements are now keyed by tab id (chips by group colour), updated in place, and moved into order; the strip is never rebuilt. - Settings › Extensions links to theseus.x/extensions. That page now has a card per bundled add-on with the current signed version, tarball and hash read from each add-on's updates.json at load (it still claimed Screenshot 0.2.4 while the channel serves 0.6.5). --- extensions/index.html | 76 +++++++++++++++++++++++++++++++++++-------- 1 file changed, 63 insertions(+), 13 deletions(-) diff --git a/extensions/index.html b/extensions/index.html index bba25f4..6c859c3 100644 --- a/extensions/index.html +++ b/extensions/index.html @@ -97,24 +97,74 @@

Available extensions

-

Currently one bundled add-on ships with a signed update channel. More on the way.

+

What ships inside Theseus today. Versions and hashes on this page are read from each + add-on's signed updates.json when the page loads, so they match what the browser + would install. First-party components show up under Settings › Plug-ins in Theseus, + everything else under Settings › Extensions.

-
-

📸 Screenshot current 0.2.4

-
Capture the current tab — visible viewport, entire scrollable page, or a rectangle - you draw. Pick a mode from the toolbar dropdown; the capture opens in a full-tab editor - (crop, annotate, redact, save).
-
Ships bundled with Theseus 0.3.21+. Later versions auto-update through - this endpoint on the next boot's 30-second poll.
+
+

🛡️ Aegis current 0.6.21

+
Multi-chain wallet (BCH, BTC, TRX, ETH, SOL, SC, DGB) derived from your Theseus vault, with + a dApp bridge for the pages you visit. Bundled; updates over this signed channel and through the + panel's own "Stage → Restart" flow.
+
Plug-in · Settings › Plug-ins ·
Signed update manifest — SHA-256 verified before install
- - -
sha256399a9a3be696aaaa96a1c12c4da0bbae6585efbdc4338a5caabb1769e0f36861
+ + +
sha256—
+ +
+

📸 Screenshot current 0.6.5

+
Capture the current tab — visible viewport, entire scrollable page, or a rectangle + you draw. The capture opens in a full-tab editor: crop, annotate, line tool, resizable text, + redact, save.
+
Extension · Settings › Extensions ·
+
+
Signed update manifest — SHA-256 verified before install
+ + +
sha25687ae730d329ff9f552bbf513efba19bd14bb016bb90e24f7b62868434dadda60
+
+
+ +
+

📝 Notepad bundled 0.1.0

+
Right-sidebar notes. Text lives on this machine only and autosaves as you type.
+
Extension · Settings › Extensions · no update channel yet — ships with each Theseus release.
+
+ +
Installing something else. An extension is a folder with an addon.json. + Drop it into the extensions directory (Settings › Extensions › Open extensions folder), press + Reload, and it is live. Extensions run with full app access — treat one like an unsigned executable + and load only what you trust.
+ +

How updates work

Same mechanism a Firefox XPI update uses, cut down to what a name-native browser needs.

@@ -124,7 +174,7 @@
  • Each entry carries an Ed25519 signature over silentmode.addon-update-v1|<id>|<version>|<sha256>. Theseus verifies against a small set of operator public keys baked into the build. Unsigned or badly-signed entries are dropped silently.
  • If a signed version beats what's installed, Theseus downloads the tarball, re-checks its sha256, and stages the new copy under <userData>/addons-updates-staged/<id>-<version>/.
  • On the next Theseus launch, promoteStagedUpdates moves the staged copy into addons/<id>/. Any prior copy is renamed to addons-backups/<id>-<oldver>-<timestamp>/ so hand-edits survive.
  • -
  • The Settings > Extensions surface (Theseus 0.3.26+) has a Check for updates button and a Pending updates box for on-demand control.
  • +
  • Settings › Extensions has a Check for updates button and shows what is staged; first-party plug-ins (Aegis) can also stage and restart from their own panel.
  • @@ -144,7 +194,7 @@