2026-07-29 13:54:34 +02:00
{
"schema" : "silentmode-releases/2" ,
2026-09-06 02:16:42 +02:00
"updated" : "2026-09-06" ,
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" ,
2026-09-08 00:41:33 +02:00
"version" : "0.3.21" ,
Ship Theseus 0.3.18 b751b5de (add-on updates land + signed endpoint + tab-flash + screenshot fix + Ariadne installer)
Setup b751b5deea997bb7e0e894104dcb7411358728987196cb610f316edacaf9be54
Portable 8a258f29c62a03b745e93ea0265285e6d5df38d4f25cdbdadc20b4d2a54b97d7
Five theseus fixes since 0.3.16:
e90062a - Bundled add-on updates now actually land. seedBundledAddons()
previously copied a bundled add-on only when its target folder was
missing, so the 0.3.14 screenshot editor never reached machines that
already had an older screenshot/ folder from a previous run — Theseus
quietly kept using the stale copy. The seeder now compares bundled and
on-disk addon.json versions and reseeds with a timestamped backup
under <userData>/addons-backups/<id>-<oldver>-<timestamp>/.
ecfd481 + 6117429 - Signed add-on update endpoint, à la Firefox XPI.
An add-on can now advertise an updateURL in its addon.json and be
republished at any time without waiting for a Theseus release. The
client fetches, verifies an Ed25519 signature over
"silentmode.addon-update-v1|<id>|<version>|<tarball-sha256>",
downloads the tarball, verifies the hash, and stages the new copy
under <userData>/addons-updates-staged/ for promotion on next launch.
Dormant in this build — the shipped addon-update-pubkeys.js is empty,
so checkAndStageUpdates() short-circuits and makes no outbound
requests; the feature activates when an operator ceremonies a key in
and ships a follow-up release with the pubkey baked in. Operator
tooling in scripts/generate-update-keypair.mjs and
scripts/sign-addon-update.mjs; full brief in docs/ADDON-UPDATES.md.
End-to-end verified against a local HTTP server: sign, serve, fetch,
verify, download, extract, stage, promote, backup — plus signature
tamper, wrong pubkey, sha256 tamper, and empty-pubkey short-circuit
all rejected as expected. 15/15 checks pass.
bfe5132 - Tab-switch flash is gone. Two independent causes: (a) tab
views were created without an explicit background color, so the first
frame after setVisible(true) showed whatever was underneath the view
until the page painted; a solid theme-tracking ground fills the gap.
(b) setActive iterated tabs in list order, so if the outgoing tab
came before the incoming in the array, the loop hid the outgoing
first and left one frame where no tab was visible; the incoming is
now shown before any hides.
a5a667d - Screenshot toolbar-menu captures no longer come out blank.
The click handler dispatched capture synchronously while the native
Menu.popup window was still on top, marking the tab view occluded and
letting WebContents.capturePage() snapshot a stale/empty compositor
frame at the correct dimensions (which the existing 0x0 retry
couldn't detect). Dispatch now runs from the popup's close callback
after a 120ms settle so the parent window is foreground and the
compositor is live at capture time.
a5a667d also - Ariadne — Install / Update / Uninstall alongside Turn
on / off. The Ariadne toggle card in Settings > Registries grows
three lifecycle actions. Install and Update run the bundled
AriadneResolver-Setup-<ver>.exe silently and elevated (/VERYSILENT
/SUPPRESSMSGBOXES /NORESTART — one UAC prompt, no wizard); Update is
only visible when the bundled version is newer than what's installed.
Uninstall reads Inno's QuietUninstallString from HKLM registry and
runs it elevated. Status surfaces installed version + bundled version
so the user can see what's on disk vs what would land next; buttons
disable during work and refresh after both success and failure so the
UI never lies.
Deployed. Verified LIVE 0.3.18.
2026-09-07 23:50:52 +02:00
"date" : "2026-09-07" ,
2026-07-29 13:54:34 +02:00
"platform" : "win-x64" ,
"signed" : false ,
"signingAuthority" : null ,
2026-09-08 00:41:33 +02:00
"changes" : "Settings tidy-up: the Toolbar dropdowns in Settings > General are gone (the drag handles on the address bar and search box replace them), and the Registries section is folded into General as a subheading (collision policy + Ariadne install/turn on/off/uninstall/update, all in one place). Sidebar entry 'Registries' removed. Everything from 0.3.20 rides along." ,
2026-07-29 13:54:34 +02:00
"files" : {
2026-09-08 00:41:33 +02:00
"TheseusNavigator-Setup-0.3.21.exe" : "a2e25a80ad2300e79cf5e7de1337bbc986b48e6bda9c13f497caf5b66c90edb9" ,
"TheseusNavigator-0.3.21-portable.exe" : "173d376aa23e6cb28f8a353206a15144f8a04d9817f531902b4ba93039101742"
2026-07-29 13:54:34 +02:00
}
}
]
}