The daemon now uses the operator's live BNS indexer as the primary source of truth, not chipnet electrum. Two changes to the resolver pipeline: 1) Background refresh is HTTPS-first with ETag. Every 30 s the daemon polls dl.silentmode.st/bns-name-index.json (and s3.silentmode.st:8600 as an independent Sia mirror) sending If-None-Match; only reparses the array when the operator republished, does zero work otherwise. Electrum WSS stays as a same-tick secondary that runs when HTTPS turned nothing up, so a daemon on a network that can reach chipnet but not the operator VPS still converges. Both broken? Keep the last-good index from warm-start. 2) Per-query indexer fallback in the DNS handler. When the in-memory index misses, the handler calls navigate.st/api/name/<host> directly with a 5-second timeout and a 30-second LRU cache. Names registered AFTER the last snapshot poll but BEFORE the next one now answer immediately from the live indexer instead of falling straight through to a forward and returning NXDOMAIN. Cache is cleared on any successful full refresh so a de-registered name doesn't stay resolvable. Net effect: on the class of failure that motivated this (chipnet electrum timing out on blockchain.scripthash.get_history, or port 50004 filtered by the network), the daemon just works. The operator's HTTPS indexer -- which every other client in the ecosystem (Theseus mobile, Aegis, sirius.x, the gateway itself) already reads from -- is now Ariadne's Thread's primary too. Trust model unchanged: the snapshot always came from the operator. Verified locally with the built binary on port 15353: bnsd index: warm-started from https://dl.silentmode.st/bns-name-index.json (61 names) hello.bch -> 127.0.0.1 (snapshot hit) game.x -> 127.0.0.1 (per-query /api/name fallback -- not in .bch-heavy snapshot) coinspectrum.x -> 127.0.0.1 (per-query fallback) ariadne.x -> 127.0.0.1 (per-query fallback) notregisteredxyz.x -> NXDOMAIN (indexer confirms not registered, forwarded to upstream) Deployed - dl.silentmode.st/AriadneResolver-Setup-0.1.11.exe - s3://bns/silentmode/dl/AriadneResolver-Setup-0.1.11.exe - silentmode.st manifest advertises 0.1.11 - sha256 58ffb06424785973d2cd656e5122061ce10b53a8dcff55605c23b5699552ee75
65 lines
6.2 KiB
JSON
65 lines
6.2 KiB
JSON
{
|
||
"schema": "silentmode-releases/2",
|
||
"updated": "2026-09-28",
|
||
"mirrors": [
|
||
"https://dl.silentmode.st/"
|
||
],
|
||
"releases": [
|
||
{
|
||
"id": "theseus-navigator",
|
||
"product": "Theseus Navigator",
|
||
"version": "0.3.59",
|
||
"date": "2026-09-28",
|
||
"platform": "win-x64",
|
||
"signed": false,
|
||
"signingAuthority": null,
|
||
"changes": "Privacy, regrouped: Settings › Privacy now opens with a status card and gathers tracking protection (Shield and Cookie Pop-ups with their per-site exceptions), device access, anti-fingerprinting, network and browsing data in one place. New there: DNS over HTTPS (on by default with Quad9; Cloudflare, Mullvad, AdGuard or your own resolver; an increased-protection mode that never falls back to plain DNS) and Global Privacy Control, which tells every site not to sell or share your data (the Sec-GPC header plus navigator.globalPrivacyControl). Every Settings page has an address you can copy and open, theseus://settings/privacy for example, with sub-pages for the longer lists. Search-engine icons ship inside Theseus and a custom engine's icon is cached once, so the toolbar, the picker and Settings look the same offline and opening the picker no longer asks a favicon service which engines you use; the default-engine control in Settings shows the icons too. A video's fullscreen now hides the toolbar and leaving it, switching tabs or closing the tab puts the window back (before, the window could stay fullscreen with no title-bar buttons); F11 toggles fullscreen. A name owner's subdomain rules (a blocked or redirected subdomain) now apply in Theseus for names it reaches directly by IP as well, not only through the gateway.",
|
||
"files": {
|
||
"TheseusNavigator-0.3.59-portable.exe": "3fd83638c205b2ec42176031b5c775cb519c8ca24bf8acda63bf514a781b6f69",
|
||
"TheseusNavigator-Setup-0.3.59.exe": "82506429906f7dca5db4e1cb37f26b806f0217e8db35426a0345c339a8b4ced5"
|
||
}
|
||
},
|
||
{
|
||
"id": "ariadne-resolver",
|
||
"product": "Ariadne Resolver (Windows)",
|
||
"version": "0.1.11",
|
||
"date": "2026-09-30",
|
||
"platform": "win-x64",
|
||
"signed": false,
|
||
"signingAuthority": null,
|
||
"changes": "The daemon now uses the operator's live BNS indexer as its primary source, not chipnet electrum. Two changes to the resolver pipeline: (1) the 30-second background refresh polls dl.silentmode.st/bns-name-index.json (and s3.silentmode.st:8600 as an independent Sia mirror) with If-None-Match ETags -- only redownloads on republish, no work when nothing changed. Electrum WSS stays as a secondary refresh that runs on the same tick when HTTPS turned nothing up, so a daemon on a network that can reach chipnet but not the operator VPS still converges. (2) A per-query indexer fallback: when a name isn't in the cached snapshot, the DNS handler calls navigate.st/api/name/<host> directly with a 5-second timeout and a 30-second LRU cache. Names registered AFTER the last snapshot poll but BEFORE the next one now answer immediately instead of NXDOMAIN. Result: chipnet electrum flakiness (get_history timeouts, port 50004 filtered, etc.) no longer stalls name resolution; the daemon converges on the same view of the registry that Theseus mobile, Aegis, sirius.x and the gateway itself already share. Includes 0.1.10 warm-start, 0.1.9 search shim, 0.1.8 pinned-origin proxy. Upgrades in place.",
|
||
"files": {
|
||
"AriadneResolver-Setup-0.1.11.exe": "58ffb06424785973d2cd656e5122061ce10b53a8dcff55605c23b5699552ee75"
|
||
}
|
||
},
|
||
{
|
||
"id": "ariadne-android",
|
||
"product": "Ariadne for Android",
|
||
"version": "0.21",
|
||
"date": "2026-09-28",
|
||
"platform": "android",
|
||
"minSdk": 21,
|
||
"signed": true,
|
||
"signingAuthority": null,
|
||
"signingCertSha256": "46ebbbe5dc73148d66410fd0337b1e6683472128c983e8e2578200b9e3ca548c",
|
||
"changes": "Fix: names whose only content record is a URL redirect (u) — hermes.x, prometheus.x, helios.x, silentmode.x — now open in the tab instead of crashing with a resolver error. The app was handing WebView a synthetic 302 response, which Androids WebResourceResponse forbids for any status in the [300, 399] range; redirects are now served as an HTML meta-refresh under status 200. As defence in depth, on-device fetches through the public relay also follow relay-side redirects automatically now.",
|
||
"files": {
|
||
"ariadne-v0.21.apk": "5ed400d8223dbaef3abc013855629d9c9822c4a02e767126547834180c7488ec"
|
||
}
|
||
},
|
||
{
|
||
"id": "theseus-navigator",
|
||
"product": "Theseus Navigator",
|
||
"version": "0.3.49",
|
||
"date": "2026-09-20",
|
||
"platform": "win-x64",
|
||
"signed": false,
|
||
"signingAuthority": null,
|
||
"changes": "Engine: Electron 44 / Chromium 152 (from 130) — a year-old engine had become a bot signal (DataDome-fronted shops served a block page), and the identity Theseus presents is now consistent on both sides (client-hint brands computed like Chromium, matching navigator.userAgentData, well-formed Accept-Language). Extensions: anyone who holds a BCDN name can publish an extension from theseus.x/extensions; Settings › Extensions › Community lists the catalog and installs with the publisher's signature verified against the name's owner in Theseus's own index. Settings › Plug-ins and › Extensions link to the new theseus.x/plug-ins and /extensions pages. Tabs: the tab strip lives in the title bar (Windows), a tab opened from a link lands next to its opener, the selected tab has an accent, the strip no longer blinks when another tab loads, the address bar follows the page even after you clicked into it, and holding or right-clicking Back/Forward lists the history. Also: HTTP sign-in prompt for sites behind Basic/Digest auth instead of a bare 401; local paths and file:// URLs open from the address bar; owner-signed DNS records (A/AAAA/MX/TXT via /api/dns) are fetched alongside on-chain records; the Ariadne's Thread card finds the installed resolver and answers in about 2 s. Includes everything from 0.3.47 and 0.3.48.",
|
||
"files": {
|
||
"TheseusNavigator-0.3.49-portable.exe": "1e44162b3dddb79dff7609374e0f02153a38255d5a94847dd95d99d29c7f582a",
|
||
"TheseusNavigator-Setup-0.3.49.exe": "0f1c34063963cd72e051662617aea51642a01c3a3c4a2a0a03f831131fa83cc5"
|
||
}
|
||
}
|
||
]
|
||
}
|