2026-07-29 13:54:34 +02:00
{
"schema" : "silentmode-releases/2" ,
Ship Theseus 0.0.9 5452a34f (cumulative: 0.0.7 warm-start + 0.0.8 window.bcnr + address-picker + reload keys)
Setup 5452a34f211176cf04b7ea77a70fb838f0031b6ea0faed2cd270eae989b20c60
Portable ee602a016caf022452b2096ca683cf4bb4cea93ded1352192910c581a962d9ae
Version bumped 0.0.8 -> 0.0.9 because the prior 0.0.7 and 0.0.8
"Ship ..." commits (f464de6, 1a3b232, ed9ec18) never actually
deployed - the live manifest at dl.silentmode.st still served 0.0.6
until this commit. Bumping the number preserves version->hash 1:1:
this 0.0.9 is the FIRST post-0.0.6 binary that ever went public.
Cumulative content:
- 0.0.7 warm-start from bundled BNS snapshot + 30-s background delta
refresh + Sia snapshot pull on boot (first .bch page opens
near-instantly, index stays fresh while browser runs).
- 0.0.8 window.bcnr read-only dApp API on every page (resolveName,
isRegistered, getBcnrTlds, getRecordVersion). Permission
origins now scope to eTLD+1 via the Public Suffix List
(same rule Chromium uses for cookies/storage).
- 0.0.9 Address-picker paints the picked URL in the address bar
immediately (was leaving the typed prefix while the target
loaded). Reload keys wired end-to-end: F5 / Ctrl+R soft,
Ctrl+Shift+R / Ctrl+F5 hard, Shift-click the toolbar reload
does hard too.
Deployed:
- scp installers + releases-manifest.json to /opt/silent-mode/dl/
- scp tools/ + releases/ index pages to /opt/silent-mode/site/
- sia-upload of ../site to bns/silentmode/
- verified: dl.silentmode.st HEAD 200 on the installer, manifest
reports 0.0.9 2026-08-31, VPS hashes match, both silentmode.st and
silentmode.bch tools pages show 0.0.9 buttons.
Existing 0.0.6 installs will surface the update chip on next launch.
2026-08-31 02:58:25 +02:00
"updated" : "2026-08-31" ,
2026-07-29 13:54:34 +02:00
"mirrors" : [
"https://dl.silentmode.st/"
] ,
"releases" : [
{
"id" : "ariadne-resolver" ,
"product" : "Ariadne Resolver (Windows)" ,
"version" : "0.1.0" ,
2026-08-02 01:19:34 +02:00
"date" : "2026-08-01" ,
2026-07-29 13:54:34 +02:00
"platform" : "win-x64" ,
"signed" : false ,
"signingAuthority" : null ,
"files" : {
Ariadne 9ab725be: default installer to -Mode nrpt (surgical)
Change the Inno [Run] entry from
install.ps1 -Mode full -> install.ps1 -Mode nrpt
Rationale (observed today on the operator's machine): Full mode repoints
adapter DNS at 127.0.0.1, so every DNS query goes through the daemon's
forwarder. bnsd.js's raw-dgram forwarder has a known EDNS/AAAA bug --
strict clients using getaddrinfo (Chrome, Yandex, Firefox, Node) reject
some forwarded replies with "non-recoverable error". Concretely today,
github.com / duckduckgo.com / www.coinex.com all failed in Yandex while
silentmode.bch loaded fine.
Surgical (NRPT) mode routes only activated BCNR TLDs to the daemon
(fetched from tlds.bch at install time -- currently bch, p2p, deviant,
nav, sia, dgb, nt, sm, lm). Everything else stays on the adapter's DHCP
DNS, sidestepping the forwarder bug entirely. Users still get the
"resolves any BCNR TLD in every browser" promise for the entire on-chain
activated set.
Full mode remains available for anyone who explicitly opts in by running
install.ps1 -Mode full themselves. Default flips back once the forwarder
bug is repaired (memory: silentmode-build-state.md).
- SHA-256: 9ab725bec5567625e5857a49b112c4fbc0f59dbdd623abd7110429306f5d0ddb
- Deployed to dl.silentmode.st, site pages + manifest updated, Sia
mirror re-uploaded. Coordinates with a parallel-session build that
briefly landed cb9e8ea0 in the site references without a matching
binary; resolved to my build since only its bytes exist locally.
2026-08-14 23:33:29 +02:00
"AriadneResolver-Setup-0.1.0.exe" : "9ab725bec5567625e5857a49b112c4fbc0f59dbdd623abd7110429306f5d0ddb"
2026-07-29 13:54:34 +02:00
}
} ,
{
"id" : "ariadne-android" ,
"product" : "Ariadne for Android" ,
2026-08-31 01:05:20 +02:00
"version" : "0.11" ,
2026-08-30 22:15:31 +02:00
"date" : "2026-08-30" ,
2026-07-29 13:54:34 +02:00
"platform" : "android" ,
"minSdk" : 21 ,
"signed" : true ,
"signingAuthority" : null ,
"signingCertSha256" : "46ebbbe5dc73148d66410fd0337b1e6683472128c983e8e2578200b9e3ca548c" ,
2026-08-31 01:05:20 +02:00
"changes" : "Adds a Sia-mirror pull path alongside the APK-bundled starter (0.10). On boot the app fires a background HTTP GET for dl.silentmode.st/bns-name-index.json — the operator's latest published BNS snapshot in the interpreted-index format Bns.saveDisk reads. On any subsequent cold start after a release, the browser converges on the current chain state with one HTTP call instead of a full electrum walk. Multi-source: bundled + CDN + on-device electrum + optional Argus indexer, all racing in parallel; whichever gives a fresh answer first wins." ,
2026-07-29 13:54:34 +02:00
"files" : {
2026-08-31 01:05:20 +02:00
"ariadne-v0.11.apk" : "03c95832c16cc4763acaadbf328caa7d4bd05fc7c2994f6997a79cc6890bca44"
2026-07-29 13:54:34 +02:00
}
} ,
{
"id" : "theseus-navigator" ,
"product" : "Theseus Navigator" ,
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.
2026-08-31 13:38:05 +02:00
"version" : "0.1.3" ,
Ship Theseus 0.0.9 5452a34f (cumulative: 0.0.7 warm-start + 0.0.8 window.bcnr + address-picker + reload keys)
Setup 5452a34f211176cf04b7ea77a70fb838f0031b6ea0faed2cd270eae989b20c60
Portable ee602a016caf022452b2096ca683cf4bb4cea93ded1352192910c581a962d9ae
Version bumped 0.0.8 -> 0.0.9 because the prior 0.0.7 and 0.0.8
"Ship ..." commits (f464de6, 1a3b232, ed9ec18) never actually
deployed - the live manifest at dl.silentmode.st still served 0.0.6
until this commit. Bumping the number preserves version->hash 1:1:
this 0.0.9 is the FIRST post-0.0.6 binary that ever went public.
Cumulative content:
- 0.0.7 warm-start from bundled BNS snapshot + 30-s background delta
refresh + Sia snapshot pull on boot (first .bch page opens
near-instantly, index stays fresh while browser runs).
- 0.0.8 window.bcnr read-only dApp API on every page (resolveName,
isRegistered, getBcnrTlds, getRecordVersion). Permission
origins now scope to eTLD+1 via the Public Suffix List
(same rule Chromium uses for cookies/storage).
- 0.0.9 Address-picker paints the picked URL in the address bar
immediately (was leaving the typed prefix while the target
loaded). Reload keys wired end-to-end: F5 / Ctrl+R soft,
Ctrl+Shift+R / Ctrl+F5 hard, Shift-click the toolbar reload
does hard too.
Deployed:
- scp installers + releases-manifest.json to /opt/silent-mode/dl/
- scp tools/ + releases/ index pages to /opt/silent-mode/site/
- sia-upload of ../site to bns/silentmode/
- verified: dl.silentmode.st HEAD 200 on the installer, manifest
reports 0.0.9 2026-08-31, VPS hashes match, both silentmode.st and
silentmode.bch tools pages show 0.0.9 buttons.
Existing 0.0.6 installs will surface the update chip on next launch.
2026-08-31 02:58:25 +02:00
"date" : "2026-08-31" ,
2026-07-29 13:54:34 +02:00
"platform" : "win-x64" ,
"signed" : false ,
"signingAuthority" : null ,
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.
2026-08-31 13:38:05 +02:00
"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." ,
2026-07-29 13:54:34 +02:00
"files" : {
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.
2026-08-31 13:38:05 +02:00
"TheseusNavigator-Setup-0.1.3.exe" : "f2afc14efc63008cbb9dad44176e94146386db4c0afda4459f1d4eb929172b6d" ,
"TheseusNavigator-0.1.3-portable.exe" : "5d08b1415526934db8de780949a610896064fe9567aa0e5e1702ebabd7eb7df2"
2026-07-29 13:54:34 +02:00
}
}
]
}