Ship Theseus 0.2.0 c5202ddb (add-on framework + branded error pages)

Setup    c5202ddba5a4bf4cd8d71c665c72bdd996ced761f9a7aae295cb960e17988f47
Portable 9142764f78e41c6a6220960d5f7278e0abe6c1c91e5033871d95225355d8feda

0.1.x -> 0.2.x — two new subsystems land together. 0.1.3 (which had
only the error pages) is retired; those hashes never went live, so
we jump 0.1.2 -> 0.2.0 for clean version->hash 1:1.

Add-on framework:
- Discovery scans <userData>/addons/<id>/; each add-on carries an
  addon.json manifest and an activate(api) CommonJS entry. Nothing
  about a private add-on ships in the public build - drop the
  folder, restart, it's live.
- Bundled 'Notepad' reference add-on ships in resources/bundled-addons/
  and is seeded into the user's addons dir on first boot. Right-
  sidebar textarea, autosave, char/word counter.
- Extension point in this rev: sidebar-panel (WebContentsView on the
  right, SIDEBAR_W=340). Toolbar toggle appears only when at least
  one add-on registers a panel.
- Settings gains an Add-ons tab: list installed, per-add-on enable/
  disable toggle (settings.disabledAddons persists), Show folder /
  Open add-ons folder / Reload buttons, trust-model warning.
- Origin-gated per-addon storage: main derives the add-on id from the
  sender file:// URL, so a panel can only touch its own kv store
  under <userData>/addons-data/<id>.json.

Branded error page:
- did-fail-load on every tab -> error.html with kind = name-not-
  registered (BCNR host + ERR_NAME_NOT_RESOLVED) | name-unreachable
  (non-BCNR host + NAME_NOT_RESOLVED) | unreachable (conn refused/
  reset/timeout) | tls (cert range) | generic.
- Actions per kind: Retry + Home always; Search for '<host>' and
  Register-on-Sirius where a host is present; Tor guide link on
  unreachable.
- Address bar keeps the failed URL (refreshTabUrl already skips
  file://) so the user can edit and retry.
- Ignorable codes (-3 ABORTED, -20 BLOCKED_BY_CLIENT, subframe
  errors, internalNav) skipped so normal user actions don't paint
  an error page.

Deployed:
- scp installers + manifest + tools/ + releases/ pages to VPS
- sia-upload of ../site (silentmode.bch) and ../site-theseus-x
- verified HEAD 200, manifest reads 0.2.0 2026-08-31

Existing 0.0.6/0.1.2 installs will surface 0.2.0 in the update chip
on next launch.
This commit is contained in:
Local Dev 2026-08-31 14:06:18 +02:00
parent 2d9f8c9f43
commit c3b9956873

View file

@ -233,14 +233,14 @@
<h3>Theseus for Windows</h3>
<p>Full-window desktop browser with Tor toggle and the multi-source BNS
warm-start.</p>
<div class="meta">v0.1.3 · installer ~118 MB (bundles Ariadne's Thread) · portable ~116 MB · unsigned</div>
<div class="meta">v0.2.0 · installer ~118 MB (bundles Ariadne's Thread) · portable ~116 MB · unsigned</div>
<div class="btns">
<a class="btn acid" href="https://dl.silentmode.st/TheseusNavigator-Setup-0.1.3.exe">Installer</a>
<a class="btn ghost" href="https://dl.silentmode.st/TheseusNavigator-0.1.3-portable.exe">Portable .exe</a>
<a class="btn acid" href="https://dl.silentmode.st/TheseusNavigator-Setup-0.2.0.exe">Installer</a>
<a class="btn ghost" href="https://dl.silentmode.st/TheseusNavigator-0.2.0-portable.exe">Portable .exe</a>
</div>
<div class="hashes" id="hashes-win">
<div class="h"><b>Installer</b><code>f2afc14efc63008cbb9dad44176e94146386db4c0afda4459f1d4eb929172b6d</code></div>
<div class="h"><b>Portable</b><code>5d08b1415526934db8de780949a610896064fe9567aa0e5e1702ebabd7eb7df2</code></div>
<div class="h"><b>Installer</b><code>c5202ddba5a4bf4cd8d71c665c72bdd996ced761f9a7aae295cb960e17988f47</code></div>
<div class="h"><b>Portable</b><code>9142764f78e41c6a6220960d5f7278e0abe6c1c91e5033871d95225355d8feda</code></div>
</div>
</div>