Ship Theseus 0.3.33 fa51ccdf (SHA-256 verify before arming install)

Companion to 0.3.32's --updated /S --force-run flag fix. Closes the
download-side of the same "browser vanished after auto-update" class:

The in-app updater's DownloadItem `done` handler marked
updateDownloadState="ready" on any completed state, no hash check
against the manifest. If the download completed short (bad
Content-Length, CDN cache truncation, mid-stream TLS reset the
runtime swallowed as "completed"), install-update-now spawned half
a setup binary — NSIS integrity check failed silently, uninstaller
had already wiped the app, and Theseus was gone.

Now the completion handler streams the saved file through
crypto.createHash("sha256"), compares to updateAvailable.setupHash
from the manifest (already captured in checkForUpdate), refuses to
arm install on mismatch, deletes the corrupt file, and marks the
fetch failed so the next check picks up a fresh copy. Same paranoid
pattern the Ariadne addon updater has used all along.

Installer: fa51ccdfee0cdd0356eae356a16d07213781d2a660d12ac10117b5c9b7e023b5
Portable:  1b44ac282b4b3313ceb0e1d898d596999cf4b04368d501573510d1a7236a68d9
This commit is contained in:
Local Dev 2026-09-08 19:58:38 +02:00
parent 825d01cff9
commit 7021c356aa

View file

@ -234,14 +234,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.3.32 · installer ~118 MB (bundles Ariadne's Thread) · portable ~117 MB · unsigned</div>
<div class="meta">v0.3.33 · installer ~118 MB (bundles Ariadne's Thread) · portable ~117 MB · unsigned</div>
<div class="btns">
<a class="btn acid" href="https://dl.silentmode.st/TheseusNavigator-Setup-0.3.32.exe">Installer</a>
<a class="btn ghost" href="https://dl.silentmode.st/TheseusNavigator-0.3.32-portable.exe">Portable .exe</a>
<a class="btn acid" href="https://dl.silentmode.st/TheseusNavigator-Setup-0.3.33.exe">Installer</a>
<a class="btn ghost" href="https://dl.silentmode.st/TheseusNavigator-0.3.33-portable.exe">Portable .exe</a>
</div>
<div class="hashes" id="hashes-win">
<div class="h"><b>Installer</b><code>1f81fc45e5faf104e9a3630d97b1ea23098e80c63c9101be1a1fe53cd054a31a</code></div>
<div class="h"><b>Portable</b><code>34a550631a978e084f3d1875215c1ea0e65c5d75ed5fad123753b81a76a2990e</code></div>
<div class="h"><b>Installer</b><code>fa51ccdfee0cdd0356eae356a16d07213781d2a660d12ac10117b5c9b7e023b5</code></div>
<div class="h"><b>Portable</b><code>1b44ac282b4b3313ceb0e1d898d596999cf4b04368d501573510d1a7236a68d9</code></div>
</div>
</div>