site/releases/index.html

101 lines
6.7 KiB
HTML
Raw Normal View History

<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Silent Mode — releases &amp; 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">
<link rel="icon" type="image/svg+xml" href="/favicon.svg">
</head>
<body>
<nav class="topnav">
<a class="brand" href="../">⛓️ Silent <span class="g">Mode</span></a>
<a href="../tools/">Theseus</a>
<a href="../prometheus/">Prometheus</a>
<a href="../sirius/">Sirius</a>
<a href="../hephaestus/">Hephaestus</a>
<a href="../helios/">Helios</a>
<a href="../hermes/">Hermes</a>
</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.26 4715efd4 (CDP capture fixes blank screenshots + editor Discard + manual add-on update controls) Setup 4715efd47bcee3ab026417f055ca8fe13d80efafaba433b3f52d21040acd85c5 Portable 536fb98b715a581751000ddc14e2cd2a219ea1fee2c414fa52df206e7c36ed29 Three fixes since 0.3.25: 1799a09(a) - Screenshot toolbar-menu captures no longer come out blank on Windows. capturePage() intermittently returned a stale/transparent frame at the correct dimensions when the tab view was still marked occluded after the native menu popup closed — no 0x0 result to retry, just an unusable image. captureTab now uses CDP Page.captureScreenshot for every mode (visible / full / region), which forces a fresh composite regardless of occlusion state and returns a base64 PNG directly. Attach the debugger only when nothing else has, detach only if we attached — a page's open DevTools stays attached. 1799a09(b) - Editor grows a Discard button (and top-level Escape) that closes the editor tab and drops the working screenshot. Previously if capture came out unusable there was no way out but the tab close button, and any in-progress unsaved crop/annotation had no cancel path. New addon-tab-close IPC lets an add-on's own page close its own tab; window.silentmode.closeTab() exposes it. Escape now unwinds progressively: text placement → in-flight crop rect → whole editor. 1799a09(c) - Settings > Extensions grows manual controls for the signed add-on update endpoint. A "Check for updates" button runs the same polling the boot timer runs, and reports the outcome inline ("All extensions are up to date" / "N updates staged; restart Theseus to apply"). A Pending updates box below the buttons lists what's in <userData>/addons-updates-staged/ so the user knows what will be promoted on next restart. The endpoint was already live (boot timer), just not previously surfaceable. Toolbar-menu popup settle bumped 120 → 250 ms with an explicit win.focus() in the popup close callback. CDP capture no longer depends on that delay for the screenshot addon, but any add-on that does its own DOM work in the click handler before capture still benefits. Screenshot add-on bumped 0.2.2 → 0.2.3 (Discard button; capture comes from the host, not the add-on). Also carrying forward everything committed in 0.3.22 – 0.3.25 that had not reached LIVE: - 0.3.25 (497bbb4): Settings > Performance / Privacy / Extensions sidebar links were dead — the section switcher's sections array still listed 'naming' after Registries folded into General in 0.3.21, and the null lookup threw before switching. One-line fix (cbdc755). - 0.3.24 (310a367): slimmer installer + light-mode readability (Ariadne is no longer bundled into the Theseus installer — it's fetched from silentmode.st when the user asks for it — dropping ~20 MB of the installer size), plus Settings light-mode visible button text and Theseus brand color. - 0.3.23 (9c15ff7): BCH-palette light mode + user-agent strip. Deployed. Verified LIVE 0.3.26.
2026-09-08 02:35:41 +02:00
<h2>Theseus Navigator <span style="color:var(--acid)">0.3.26</span></h2>
<div class="meta">Windows 64-bit · unsigned · 2026-09-08 · <b>Screenshot no longer blank + editor Discard button + manual add-on update controls</b> — Three fixes since 0.3.25. (1) Screenshot toolbar-menu captures no longer come out blank on Windows: the capture path moves from WebContents.capturePage() (which was snapshotting a stale/transparent frame when the tab view was still marked occluded after the native menu popup closed — a size-based retry couldn't catch that) to CDP Page.captureScreenshot, which forces a fresh composite regardless of occlusion state. (2) Editor grows a Discard button (and top-level Escape) that closes the editor tab and drops the working screenshot — no more stuck editor when capture came out unusable. (3) Settings > Extensions grows a Check for updates button and a Pending updates surface — the signed add-on update endpoint is now controllable by hand from the UI, not only on the boot timer. Everything from 0.3.22 – 0.3.25 rides along.</div>
<div class="file">
Ship Theseus 0.3.26 4715efd4 (CDP capture fixes blank screenshots + editor Discard + manual add-on update controls) Setup 4715efd47bcee3ab026417f055ca8fe13d80efafaba433b3f52d21040acd85c5 Portable 536fb98b715a581751000ddc14e2cd2a219ea1fee2c414fa52df206e7c36ed29 Three fixes since 0.3.25: 1799a09(a) - Screenshot toolbar-menu captures no longer come out blank on Windows. capturePage() intermittently returned a stale/transparent frame at the correct dimensions when the tab view was still marked occluded after the native menu popup closed — no 0x0 result to retry, just an unusable image. captureTab now uses CDP Page.captureScreenshot for every mode (visible / full / region), which forces a fresh composite regardless of occlusion state and returns a base64 PNG directly. Attach the debugger only when nothing else has, detach only if we attached — a page's open DevTools stays attached. 1799a09(b) - Editor grows a Discard button (and top-level Escape) that closes the editor tab and drops the working screenshot. Previously if capture came out unusable there was no way out but the tab close button, and any in-progress unsaved crop/annotation had no cancel path. New addon-tab-close IPC lets an add-on's own page close its own tab; window.silentmode.closeTab() exposes it. Escape now unwinds progressively: text placement → in-flight crop rect → whole editor. 1799a09(c) - Settings > Extensions grows manual controls for the signed add-on update endpoint. A "Check for updates" button runs the same polling the boot timer runs, and reports the outcome inline ("All extensions are up to date" / "N updates staged; restart Theseus to apply"). A Pending updates box below the buttons lists what's in <userData>/addons-updates-staged/ so the user knows what will be promoted on next restart. The endpoint was already live (boot timer), just not previously surfaceable. Toolbar-menu popup settle bumped 120 → 250 ms with an explicit win.focus() in the popup close callback. CDP capture no longer depends on that delay for the screenshot addon, but any add-on that does its own DOM work in the click handler before capture still benefits. Screenshot add-on bumped 0.2.2 → 0.2.3 (Discard button; capture comes from the host, not the add-on). Also carrying forward everything committed in 0.3.22 – 0.3.25 that had not reached LIVE: - 0.3.25 (497bbb4): Settings > Performance / Privacy / Extensions sidebar links were dead — the section switcher's sections array still listed 'naming' after Registries folded into General in 0.3.21, and the null lookup threw before switching. One-line fix (cbdc755). - 0.3.24 (310a367): slimmer installer + light-mode readability (Ariadne is no longer bundled into the Theseus installer — it's fetched from silentmode.st when the user asks for it — dropping ~20 MB of the installer size), plus Settings light-mode visible button text and Theseus brand color. - 0.3.23 (9c15ff7): BCH-palette light mode + user-agent strip. Deployed. Verified LIVE 0.3.26.
2026-09-08 02:35:41 +02:00
<div class="n"><a href="https://dl.silentmode.st/TheseusNavigator-Setup-0.3.26.exe">TheseusNavigator-Setup-0.3.26.exe</a> — installer</div>
<code>4715efd47bcee3ab026417f055ca8fe13d80efafaba433b3f52d21040acd85c5</code>
</div>
<div class="file">
Ship Theseus 0.3.26 4715efd4 (CDP capture fixes blank screenshots + editor Discard + manual add-on update controls) Setup 4715efd47bcee3ab026417f055ca8fe13d80efafaba433b3f52d21040acd85c5 Portable 536fb98b715a581751000ddc14e2cd2a219ea1fee2c414fa52df206e7c36ed29 Three fixes since 0.3.25: 1799a09(a) - Screenshot toolbar-menu captures no longer come out blank on Windows. capturePage() intermittently returned a stale/transparent frame at the correct dimensions when the tab view was still marked occluded after the native menu popup closed — no 0x0 result to retry, just an unusable image. captureTab now uses CDP Page.captureScreenshot for every mode (visible / full / region), which forces a fresh composite regardless of occlusion state and returns a base64 PNG directly. Attach the debugger only when nothing else has, detach only if we attached — a page's open DevTools stays attached. 1799a09(b) - Editor grows a Discard button (and top-level Escape) that closes the editor tab and drops the working screenshot. Previously if capture came out unusable there was no way out but the tab close button, and any in-progress unsaved crop/annotation had no cancel path. New addon-tab-close IPC lets an add-on's own page close its own tab; window.silentmode.closeTab() exposes it. Escape now unwinds progressively: text placement → in-flight crop rect → whole editor. 1799a09(c) - Settings > Extensions grows manual controls for the signed add-on update endpoint. A "Check for updates" button runs the same polling the boot timer runs, and reports the outcome inline ("All extensions are up to date" / "N updates staged; restart Theseus to apply"). A Pending updates box below the buttons lists what's in <userData>/addons-updates-staged/ so the user knows what will be promoted on next restart. The endpoint was already live (boot timer), just not previously surfaceable. Toolbar-menu popup settle bumped 120 → 250 ms with an explicit win.focus() in the popup close callback. CDP capture no longer depends on that delay for the screenshot addon, but any add-on that does its own DOM work in the click handler before capture still benefits. Screenshot add-on bumped 0.2.2 → 0.2.3 (Discard button; capture comes from the host, not the add-on). Also carrying forward everything committed in 0.3.22 – 0.3.25 that had not reached LIVE: - 0.3.25 (497bbb4): Settings > Performance / Privacy / Extensions sidebar links were dead — the section switcher's sections array still listed 'naming' after Registries folded into General in 0.3.21, and the null lookup threw before switching. One-line fix (cbdc755). - 0.3.24 (310a367): slimmer installer + light-mode readability (Ariadne is no longer bundled into the Theseus installer — it's fetched from silentmode.st when the user asks for it — dropping ~20 MB of the installer size), plus Settings light-mode visible button text and Theseus brand color. - 0.3.23 (9c15ff7): BCH-palette light mode + user-agent strip. Deployed. Verified LIVE 0.3.26.
2026-09-08 02:35:41 +02:00
<div class="n"><a href="https://dl.silentmode.st/TheseusNavigator-0.3.26-portable.exe">TheseusNavigator-0.3.26-portable.exe</a> — portable</div>
<code>536fb98b715a581751000ddc14e2cd2a219ea1fee2c414fa52df206e7c36ed29</code>
</div>
</div>
<div class="rel">
Ariadne 0.1.1 + Theseus fetches it from silentmode.st (no more bundling) Ariadne 0.1.1 - install.ps1 primary TLD source: HTTPS $Indexer/api/tlds -> advertised[] (electrum fetchTldList / legacy fetchBcnrTlds / ariadne.config.json / bootstrap kept as fallbacks in that order). Silent installs no longer stall when WSS is blocked. - Persistent transcript at C:\ProgramData\Ariadne\install.log; separate install-error.log on any uncaught exception. Top-level trap logs the full stack, then exit 1 so Inno/NSIS silent-install callers see a real failure. - .iss: SetupLogging=yes; DeinitializeSetup() copies Inno's log to C:\ProgramData\Ariadne\inno-setup.log on every exit path. - Version bumped to 0.1.1. sha256=be1fa8841919b321841d90f8147abe1b1d7604fe7fff6c2e271dc47c4c24a2b6 Theseus decoupled from Ariadne - Removed nsis/installer.nsh (custom Ariadne chain-install page). - Removed extraResources entry for AriadneResolver-Setup-*.exe. - Removed build.nsis.include from package.json. - Settings > System-wide resolver panel now fetches the .exe from https://silentmode.st/releases-manifest.json, streams the download while hashing, refuses to spawn on SHA-256 mismatch. 30-min in-memory manifest cache so opening Settings doesn't spam the endpoint. Offline gracefully degrades to installedVersion-only / canUpdate:false. - "bundledVersion" IPC field kept for renderer compatibility; it now carries "latest advertised by the site's manifest". Deployed to silentmode.st: - dl.silentmode.st/AriadneResolver-Setup-0.1.1.exe (25 MB) - silentmode.st/releases-manifest.json (schema/2, updated 2026-09-08) - silentmode.st/releases/ + silentmode.st/tools/ show 0.1.1 Local Dev <noreply@localhost>
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>
<div class="file">
Ariadne 0.1.1 + Theseus fetches it from silentmode.st (no more bundling) Ariadne 0.1.1 - install.ps1 primary TLD source: HTTPS $Indexer/api/tlds -> advertised[] (electrum fetchTldList / legacy fetchBcnrTlds / ariadne.config.json / bootstrap kept as fallbacks in that order). Silent installs no longer stall when WSS is blocked. - Persistent transcript at C:\ProgramData\Ariadne\install.log; separate install-error.log on any uncaught exception. Top-level trap logs the full stack, then exit 1 so Inno/NSIS silent-install callers see a real failure. - .iss: SetupLogging=yes; DeinitializeSetup() copies Inno's log to C:\ProgramData\Ariadne\inno-setup.log on every exit path. - Version bumped to 0.1.1. sha256=be1fa8841919b321841d90f8147abe1b1d7604fe7fff6c2e271dc47c4c24a2b6 Theseus decoupled from Ariadne - Removed nsis/installer.nsh (custom Ariadne chain-install page). - Removed extraResources entry for AriadneResolver-Setup-*.exe. - Removed build.nsis.include from package.json. - Settings > System-wide resolver panel now fetches the .exe from https://silentmode.st/releases-manifest.json, streams the download while hashing, refuses to spawn on SHA-256 mismatch. 30-min in-memory manifest cache so opening Settings doesn't spam the endpoint. Offline gracefully degrades to installedVersion-only / canUpdate:false. - "bundledVersion" IPC field kept for renderer compatibility; it now carries "latest advertised by the site's manifest". Deployed to silentmode.st: - dl.silentmode.st/AriadneResolver-Setup-0.1.1.exe (25 MB) - silentmode.st/releases-manifest.json (schema/2, updated 2026-09-08) - silentmode.st/releases/ + silentmode.st/tools/ show 0.1.1 Local Dev <noreply@localhost>
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>
</div>
</div>
<div class="rel">
Ship Ariadne 0.11: Sia CDN pull + gitignore _prev/ Mobile parity with Theseus 0.0.7's multi-source model, one source at a time. Ships: * Bns.pullSiaIndex() — fetches dl.silentmode.st/bns-name-index.json (the operator's latest published interpreted BNS snapshot) on a background thread. Installs the result as the current index + persists to disk cache when we don't already have something fresher. Best-effort: silent on failure, on-device electrum still runs. * MainActivity fires the pull once per applyResolverSettings(), racing the bundled starter + on-device electrum. The bundled starter wins the very first navigation (already in memory); the Sia pull wins any subsequent cold start after an operator publish; electrum wins steady-state via the existing INDEX_TTL_MS refresh. * publish-name-mirror.mjs now uploads three shapes to Sia (raw snapshot, raw immutable, mobile-shape floating, mobile-shape immutable) AND scps the mobile-shape floating pointer to the CDN so anonymous clients can actually GET it. The s3.silentmode.st bucket rejects anon reads today; the CDN copy is the workaround, same bytes. * Cannot use Sia direct for now: s3d bucket policy blocks anon reads. Documented in Bns.SIA_INDEX_URL — swap URL when the policy changes. Version bump: 0.10 → 0.11 (versionCode 11, versionName 0.11). Also: .gitignore TheseusNavigator/_prev/ — the ~372 MB local rollback dir that kept appearing as untracked in every git status. ariadne-v0.11.apk 124 KB 03c95832c16cc4763acaadbf328caa7d4bd05fc7c2994f6997a79cc6890bca44
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>
<div class="file">
Ship Ariadne 0.11: Sia CDN pull + gitignore _prev/ Mobile parity with Theseus 0.0.7's multi-source model, one source at a time. Ships: * Bns.pullSiaIndex() — fetches dl.silentmode.st/bns-name-index.json (the operator's latest published interpreted BNS snapshot) on a background thread. Installs the result as the current index + persists to disk cache when we don't already have something fresher. Best-effort: silent on failure, on-device electrum still runs. * MainActivity fires the pull once per applyResolverSettings(), racing the bundled starter + on-device electrum. The bundled starter wins the very first navigation (already in memory); the Sia pull wins any subsequent cold start after an operator publish; electrum wins steady-state via the existing INDEX_TTL_MS refresh. * publish-name-mirror.mjs now uploads three shapes to Sia (raw snapshot, raw immutable, mobile-shape floating, mobile-shape immutable) AND scps the mobile-shape floating pointer to the CDN so anonymous clients can actually GET it. The s3.silentmode.st bucket rejects anon reads today; the CDN copy is the workaround, same bytes. * Cannot use Sia direct for now: s3d bucket policy blocks anon reads. Documented in Bns.SIA_INDEX_URL — swap URL when the policy changes. Version bump: 0.10 → 0.11 (versionCode 11, versionName 0.11). Also: .gitignore TheseusNavigator/_prev/ — the ~372 MB local rollback dir that kept appearing as untracked in every git status. ariadne-v0.11.apk 124 KB 03c95832c16cc4763acaadbf328caa7d4bd05fc7c2994f6997a79cc6890bca44
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>
</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 &lt;file&gt; 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>