Theseus 0.1.3: branded error page for load failures (BUILT, NOT DEPLOYED)

Setup    f2afc14efc63008cbb9dad44176e94146386db4c0afda4459f1d4eb929172b6d
Portable 5d08b1415526934db8de780949a610896064fe9567aa0e5e1702ebabd7eb7df2

Chromium's default 'This site can't be reached' replaced with a Theseus-
themed error page. did-fail-load on every tab's webContents (main frame
only, non-ignorable code) routes the tab to error.html with the
attempt URL, host, error code, and description as query params. The
page keeps t.url pointing at the failed URL so the address bar shows
what the user typed and they can edit + retry - refreshTabUrl's
existing file:// skip means the error page's own path never leaks
back into the bar.

Five kinds, chosen by pickErrorKind(code, host):
  name-not-registered  BCNR-eligible host + ERR_NAME_NOT_RESOLVED.
                       Says "no BCDN record on chain, no clearnet host
                       either." Offers Register on Sirius + Search +
                       Retry + Home.
  name-unreachable     ERR_NAME_NOT_RESOLVED on a non-BCNR host. DNS
                       failed - offers Retry + Search + Register +
                       Home.
  unreachable          CONN_REFUSED/RESET/TIMED_OUT/CLOSED/NETWORK_CHANGED.
                       Offers Retry + Tor guide + Home.
  tls                  ERR_CERT_* range (-200..-299). Offers Retry +
                       Home.
  generic              Everything else.

home-preload.js gains `window.errorpage` alongside `window.home`. Both
APIs are sender-URL-gated in main - a random page seeing the shape
can't invoke them (isErrorPageSender / isHomePageSender). The external-
open handler additionally allowlists Silent Mode domains only.

package.json build.files gets error.html + error-preload.js so
electron-builder actually bundles them (GOTCHAS rule: an unlisted
runtime-loaded file silently opens blank).

Ship pages (releases-manifest.json, tools/index.html, releases/index.html,
site-theseus-x/index.html) updated to 0.1.3 with the new hashes.

DEPLOY STATUS - blocked on VPS SSH: my IP was hit with a full-port ban
mid-turn (likely fail2ban from the burst of scp during the 0.1.0-0.1.2
iterations). Site pages/manifest/installers are committed locally but
NOT yet on dl.silentmode.st or the Sia mirror. Live still reads 0.1.2.
User needs to unban 195.184.247.106 on their end, or wait for the ban
to expire, before the ship pages match reality.
This commit is contained in:
Local Dev 2026-08-31 13:38:05 +02:00
parent aea58e4cfd
commit 4d1cee8197
3 changed files with 14 additions and 14 deletions

View file

@ -35,15 +35,15 @@
{
"id": "theseus-navigator",
"product": "Theseus Navigator",
"version": "0.1.2",
"version": "0.1.3",
"date": "2026-08-31",
"platform": "win-x64",
"signed": false,
"signingAuthority": null,
"changes": "Copy pass on the Ariadne install page: names it BCDN — Bitcoin Cash Domain Names — in the body text instead of listing TLDs. Everything else from 0.1.1 rides along: dedicated wizard-page checkbox for Ariadne's Thread (pre-checked, skipped on upgrades), uninstall symmetry, Startpage POST-form fix (any same-origin form submit).",
"changes": "Branded error page instead of Chromium's default \"This site can't be reached.\" Kinds: name-not-registered (no BCDN record + no clearnet host — offers to register on Sirius), name-unreachable (DNS failed), unreachable (server down / connection refused), tls (certificate error), generic. Every kind carries retry, home, and where useful, search + register actions. Address bar keeps the failed URL so you can edit and try again. Everything from 0.1.2 (Ariadne checkbox page, Startpage POST fix) rides along.",
"files": {
"TheseusNavigator-Setup-0.1.2.exe": "b8cc85ec0f70844e4ce14a70b0ff89b9d9720be2f0e5568e56c51ecef706b14d",
"TheseusNavigator-0.1.2-portable.exe": "6540b4c67906046cd2c5303a9ccaa4e00a39b3daa5792b71e16c4f141f498220"
"TheseusNavigator-Setup-0.1.3.exe": "f2afc14efc63008cbb9dad44176e94146386db4c0afda4459f1d4eb929172b6d",
"TheseusNavigator-0.1.3-portable.exe": "5d08b1415526934db8de780949a610896064fe9567aa0e5e1702ebabd7eb7df2"
}
}
]

View file

@ -49,16 +49,16 @@
mirror cannot change what you check against here.</p>
<div class="rel">
<h2>Theseus Navigator <span style="color:var(--acid)">0.1.2</span></h2>
<h2>Theseus Navigator <span style="color:var(--acid)">0.1.3</span></h2>
<div class="meta">Windows 64-bit · unsigned · 2026-08-31 · <b>Ariadne's Thread bundled</b> — installer shows a real wizard-page checkbox (pre-checked) for the system-wide resolver, uninstall symmetrically asks to remove it. Also unbreaks Startpage's in-page search (any POST-form submit). Installer ~118 MB. Portable unchanged.</div>
<div class="file">
<div class="n"><a href="https://dl.silentmode.st/TheseusNavigator-Setup-0.1.2.exe">TheseusNavigator-Setup-0.1.2.exe</a> — installer</div>
<code>b8cc85ec0f70844e4ce14a70b0ff89b9d9720be2f0e5568e56c51ecef706b14d</code>
<div class="n"><a href="https://dl.silentmode.st/TheseusNavigator-Setup-0.1.3.exe">TheseusNavigator-Setup-0.1.3.exe</a> — installer</div>
<code>f2afc14efc63008cbb9dad44176e94146386db4c0afda4459f1d4eb929172b6d</code>
</div>
<div class="file">
<div class="n"><a href="https://dl.silentmode.st/TheseusNavigator-0.1.2-portable.exe">TheseusNavigator-0.1.2-portable.exe</a> — portable</div>
<code>6540b4c67906046cd2c5303a9ccaa4e00a39b3daa5792b71e16c4f141f498220</code>
<div class="n"><a href="https://dl.silentmode.st/TheseusNavigator-0.1.3-portable.exe">TheseusNavigator-0.1.3-portable.exe</a> — portable</div>
<code>5d08b1415526934db8de780949a610896064fe9567aa0e5e1702ebabd7eb7df2</code>
</div>
</div>

View file

@ -110,15 +110,15 @@
<h3>for Windows</h3>
<p class="desc">Full-window desktop browser with Tor toggle and search bar.
macOS and Linux not yet packaged.</p>
<div class="meta">v0.1.2 · installer ~118 MB (with Ariadne's Thread) · portable ~116 MB · unsigned</div>
<div class="meta">v0.1.3 · installer ~118 MB (with Ariadne's Thread) · portable ~116 MB · unsigned</div>
<div class="buttons">
<a class="btn acid" href="https://dl.silentmode.st/TheseusNavigator-Setup-0.1.2.exe">Installer</a>
<a class="btn ghost" href="https://dl.silentmode.st/TheseusNavigator-0.1.2-portable.exe">Portable .exe</a>
<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>
</div>
<div class="verifybox">
<div class="lbl">SHA-256 — verify before running</div>
<div class="h"><b>Installer</b><code>b8cc85ec0f70844e4ce14a70b0ff89b9d9720be2f0e5568e56c51ecef706b14d</code></div>
<div class="h"><b>Portable</b><code>6540b4c67906046cd2c5303a9ccaa4e00a39b3daa5792b71e16c4f141f498220</code></div>
<div class="h"><b>Installer</b><code>f2afc14efc63008cbb9dad44176e94146386db4c0afda4459f1d4eb929172b6d</code></div>
<div class="h"><b>Portable</b><code>5d08b1415526934db8de780949a610896064fe9567aa0e5e1702ebabd7eb7df2</code></div>
</div>
</div>