2026-07-29 13:54:34 +02:00
<!doctype html>
< html lang = "en" >
< head >
< meta charset = "utf-8" >
< meta name = "viewport" content = "width=device-width, initial-scale=1" >
< title > Silent Mode — releases & checksums< / title >
< style >
:root{--bg:#0b0e14;--panel:#141a24;--line:rgba(255,255,255,.09);--ink:#e7eaf1;--mut:#8b98a9;--dim:#5e6678;--acid:#d6ff3d}
*{box-sizing:border-box}
body{margin:0;background:radial-gradient(1100px 560px at 50% -12%,#16202e,var(--bg));
color:var(--ink);font:16px/1.65 system-ui,-apple-system,Segoe UI,Roboto,sans-serif}
.wrap{max-width:820px;margin:0 auto;padding:3.5rem 1.2rem 4rem}
a{color:var(--acid)}
h1{font-size:1.8rem;margin:0 0 .3rem}
h1 .g{color:var(--acid)}
.lede{color:var(--mut);margin:.2rem 0 2rem}
.rel{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:20px 22px;margin-bottom:16px}
.rel h2{font-size:1.15rem;margin:0 0 .2rem}
.rel .meta{color:var(--dim);font-size:12.5px;margin-bottom:1rem}
.file{border-top:1px solid var(--line);padding-top:12px;margin-top:12px}
.file .n{font-size:14px;color:var(--ink)}
.file .n a{text-decoration:none}
.file code{display:block;font-family:ui-monospace,monospace;font-size:11.5px;color:#c9d4e3;
word-break:break-all;margin-top:4px}
.note{background:var(--panel);border:1px solid var(--line);border-left:3px solid var(--acid);
border-radius:10px;padding:14px 18px;color:var(--mut);font-size:13.5px;margin-top:1.6rem}
.note b{color:var(--ink)}
footer{color:var(--dim);font-size:12.5px;margin-top:2.5rem;text-align:center}
< / style >
< link rel = "stylesheet" href = "../shared.css" >
brand: Silent Mode + navigate.st kits (logo, wordmark, avatar, banner, favicon)
Two brand kits, one design language. Each site now has a /brand/ page + a
favicon; every page I own on silentmode.st links the SVG favicon (parallel
sessions can add the same line to Sirius/Hephaestus/Choose when they touch
those files).
Silent Mode kit (site/brand/, site/favicon.svg):
Mark — two interlocking chain links, one muted (#8b98a9) + one acid
(#d6ff3d). The umbrella family mark.
Logo, wordmark, avatar (400x400 social), banner (1500x500 social header).
Brand page shows every asset with SVG download, colour palette
(tokens matching shared.css), usage do's and don'ts.
navigate.st kit (navigate.st/brand/, navigate.st/favicon.svg):
Mark — compass rose (N acid, other points muted) inside a chain-link
ring. Ring keeps it in the Silent Mode family without cloning the
SilentMode mark; compass says what this specific site is (the
wayfinding front door).
Same asset set: logo, wordmark, avatar, banner. Standalone brand page
(no shared.css — navigate.st runs single-file).
nginx (VPS): added two locations to sites-enabled/navigate-st so /favicon.svg
and /brand/* resolve from /opt/silent-mode/navigate-brand/. Rollback point
at sites-enabled/navigate-st.bak.1788146513. silentmode.st serves both from
disk under /opt/silent-mode/site/ — no vhost change needed.
Verified live: all favicon + brand URLs return 200 on both hosts.
2026-08-31 05:22:45 +02:00
< link rel = "icon" type = "image/svg+xml" href = "/favicon.svg" >
2026-07-29 13:54:34 +02:00
< / head >
< body >
< nav class = "topnav" >
< a class = "brand" href = "../" > ⛓️ Silent < span class = "g" > Mode< / span > < / a >
2026-08-31 04:16:42 +02:00
< a href = "../tools/" > Theseus< / a >
2026-07-31 08:43:31 +02:00
< a href = "../prometheus/" > Prometheus< / a >
< a href = "../sirius/" > Sirius< / a >
2026-08-31 04:06:28 +02:00
< a href = "../hephaestus/" > Hephaestus< / a >
2026-07-31 08:43:31 +02:00
< a href = "../helios/" > Helios< / a >
< a href = "../hermes/" > Hermes< / a >
2026-07-29 13:54:34 +02:00
< / nav >
< div class = "wrap" >
< h1 > Silent < span class = "g" > Mode< / span > — releases< / h1 >
< p class = "lede" > Canonical SHA-256 checksums for every published build. This page lives at the on-chain
name < code > releases.silentmode.bch< / code > ; the name pins where it is served from, so a tampered
mirror cannot change what you check against here.< / p >
< div class = "rel" >
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
2026-09-08 19:58:38 +02:00
< h2 > Theseus Navigator < span style = "color:var(--acid)" > 0.3.33< / span > < / h2 >
< div class = "meta" > Windows 64-bit · unsigned · 2026-09-08 · < b > Auto-updater now verifies SHA-256 before arming install< / b > — Companion to 0.3.32's flag fix. The in-app updater treated any Electron < code style = "display:inline" > DownloadItem< / code > completed as ready-to-run, no hash check against the manifest. Electron has been observed to swallow mid-stream truncations (wrong < code style = "display:inline" > Content-Length< / code > , CDN cache truncation, TLS interruption) as < code style = "display:inline" > completed< / code > , which handed a half-file to < code style = "display:inline" > install-update-now< / code > ; NSIS integrity check then failed silently after the uninstaller had already wiped the app. Now the download handler streams the saved file through < code style = "display:inline" > crypto.createHash("sha256")< / code > , compares against < code style = "display:inline" > updateAvailable.setupHash< / code > from the manifest, refuses to arm install on mismatch, deletes the corrupt file, and marks the fetch failed so the next check pulls a clean copy. 0.3.32 closed the spawn-side of the "browser vanished" bug; 0.3.33 closes the download-side. < b > Users stuck on 0.3.31 still need to manually download 0.3.33.< / b > < / div >
2026-07-29 13:54:34 +02:00
< div class = "file" >
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
2026-09-08 19:58:38 +02:00
< div class = "n" > < a href = "https://dl.silentmode.st/TheseusNavigator-Setup-0.3.33.exe" > TheseusNavigator-Setup-0.3.33.exe< / a > — installer< / div >
< code > fa51ccdfee0cdd0356eae356a16d07213781d2a660d12ac10117b5c9b7e023b5< / code >
2026-07-29 13:54:34 +02:00
< / div >
< div class = "file" >
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
2026-09-08 19:58:38 +02:00
< div class = "n" > < a href = "https://dl.silentmode.st/TheseusNavigator-0.3.33-portable.exe" > TheseusNavigator-0.3.33-portable.exe< / a > — portable< / div >
< code > 1b44ac282b4b3313ceb0e1d898d596999cf4b04368d501573510d1a7236a68d9< / code >
2026-07-29 13:54:34 +02:00
< / div >
< / div >
< div class = "rel" >
2026-09-08 01:27:51 +02:00
< h2 > Ariadne Resolver — Windows < span style = "color:var(--acid)" > 0.1.1< / span > < / h2 >
< div class = "meta" > Windows 64-bit · unsigned · bundled Node runtime · 2026-09-08 · < b > NRPT list from the BNS indexer + install-log-on-disk< / b > — TLD discovery now hits < code style = "display:inline" > silentmode.st/api/tlds< / code > over HTTPS (electrum/config kept as fallbacks) so silent installs no longer get stuck when WSS is blocked. install.ps1 writes a persistent transcript at < code style = "display:inline" > C:\ProgramData\Ariadne\install.log< / code > , plus a separate < code style = "display:inline" > install-error.log< / code > on any uncaught exception, and Inno's own log is copied there too — so a < code style = "display:inline" > /VERYSILENT< / code > failure always leaves forensics. Fixes the class of bug where the resolver appeared installed but the < code style = "display:inline" > BNS Resolver Daemon< / code > scheduled task was never registered.< / div >
2026-07-29 13:54:34 +02:00
< div class = "file" >
2026-09-08 01:27:51 +02:00
< div class = "n" > < a href = "https://dl.silentmode.st/AriadneResolver-Setup-0.1.1.exe" > AriadneResolver-Setup-0.1.1.exe< / a > — ~24 MB< / div >
< code > be1fa8841919b321841d90f8147abe1b1d7604fe7fff6c2e271dc47c4c24a2b6< / code >
2026-07-29 13:54:34 +02:00
< / div >
< / div >
< div class = "rel" >
2026-08-31 01:05:20 +02:00
< h2 > Ariadne for Android < span style = "color:var(--acid)" > 0.11< / span > < / h2 >
< div class = "meta" > Android 5.0+ (API 21) · self-signed release key · 2026-08-30 · adds Sia CDN pull to the APK-bundled starter — post-install cold starts now catch up from the operator's latest published snapshot in one HTTP call< / div >
2026-07-29 13:54:34 +02:00
< div class = "file" >
2026-08-31 01:05:20 +02:00
< div class = "n" > < a href = "https://dl.silentmode.st/ariadne-v0.11.apk" > ariadne-v0.11.apk< / a > — 124 KB< / div >
< code > 03c95832c16cc4763acaadbf328caa7d4bd05fc7c2994f6997a79cc6890bca44< / code >
2026-07-29 13:54:34 +02:00
< / div >
< div class = "file" >
< div class = "n" > Signing certificate — SHA-256 (the same key signs every future release)< / div >
< code > 46ebbbe5dc73148d66410fd0337b1e6683472128c983e8e2578200b9e3ca548c< / code >
< / div >
< / div >
< div class = "note" > < b > How to verify.< / b > After downloading, compute the file's SHA-256 and compare it to
the value above — on Windows: < code style = "display:inline" > certutil -hashfile < file> SHA256< / code > ;
on Android, hash the downloaded < code style = "display:inline" > .apk< / code > on a computer before you move
it to the phone, or use any file-hashing app. Nothing here is signed by an authority your device
already trusts — < b > by design< / b > — so it will warn about an unrecognized app; the checksum is the
real check. The machine-readable manifest is at
< a href = "https://dl.silentmode.st/releases-manifest.json" > releases-manifest.json< / a > .< / div >
< footer > Silent Mode — a Deviant project. Alpha software on a test network.< / footer >
< / div >
< / body >
< / html >