site/releases-manifest.json

51 lines
2.6 KiB
JSON
Raw Normal View History

{
"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",
"mirrors": [
"https://dl.silentmode.st/"
],
"releases": [
{
"id": "ariadne-resolver",
"product": "Ariadne Resolver (Windows)",
"version": "0.1.0",
"date": "2026-08-01",
"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"
}
},
{
"id": "ariadne-android",
"product": "Ariadne for Android",
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
"version": "0.11",
"date": "2026-08-30",
"platform": "android",
"minSdk": 21,
"signed": true,
"signingAuthority": null,
"signingCertSha256": "46ebbbe5dc73148d66410fd0337b1e6683472128c983e8e2578200b9e3ca548c",
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
"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.",
"files": {
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
"ariadne-v0.11.apk": "03c95832c16cc4763acaadbf328caa7d4bd05fc7c2994f6997a79cc6890bca44"
}
},
{
"id": "theseus-navigator",
"product": "Theseus Navigator",
Ship Theseus 0.2.4 7fd323a8 (home cards refresh + engine-picker sync + proxy auth support) Setup 7fd323a87bd32b780e147de18e16ecd82f89960bbd8e9a619c5d25d374597cd2 Portable 3166e64cf56badd7b26c4c793dc79bbed6f9d6c48fbd467d97f845385b91b1dd Home cards: DEFAULT_HOME_CARDS replaced with the .x sibling grid the user asked for -- hello.bch, siatest.bch (the "types of BCDN" pair), then silentmode.x / theseus.x / sirius.x / hephaestus.x / prometheus.x / helios.x / hermes.x. Existing installs with a saved home-cards.json keep their edits (defaults only seed fresh profiles). Search engine picker sync: user reported the toolbar dropdown listed engines as active that Settings > Search showed differently. Root cause: settings.searchEngine could be pointing at an id not in the currently-enabled set (stale settings.json after DEFAULT_ENABLED changes across versions). loadSettings now normalizes on boot -- if searchEngine isn't enabled, fall back to enabled[0]; and installedEngines gets unioned with enabledEngines so the two lists can't disagree in ways that make toolbar and Settings render different rows. Proxy auth support in the framework: setSessionProxy accepts `{ proxyRules, auth: { username, password } }` or an inline `socks5://user:pass@host:port` URL. When creds are present, the handler strips them from the URL, installs a session#login listener on the default session that answers with them, then calls setProxy. Chromium's SOCKS5 client doesn't consume proxy auth (known Chromium limitation), but HTTP proxies work; SOCKS-based extensions need to gate by IP allowlist at their server. Log line masks the password. Update chip note: the "download opens in a different browser" was 0.2.0-era behavior. 0.2.1 rewired it to session.downloadURL. Anyone still seeing it needs to install 0.2.1+ once. Deployed: scp + sia-upload both trees, verified HEAD 200 + manifest 0.2.4 live.
2026-08-31 17:24:39 +02:00
"version": "0.2.4",
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",
"platform": "win-x64",
"signed": false,
"signingAuthority": null,
Ship Theseus 0.2.4 7fd323a8 (home cards refresh + engine-picker sync + proxy auth support) Setup 7fd323a87bd32b780e147de18e16ecd82f89960bbd8e9a619c5d25d374597cd2 Portable 3166e64cf56badd7b26c4c793dc79bbed6f9d6c48fbd467d97f845385b91b1dd Home cards: DEFAULT_HOME_CARDS replaced with the .x sibling grid the user asked for -- hello.bch, siatest.bch (the "types of BCDN" pair), then silentmode.x / theseus.x / sirius.x / hephaestus.x / prometheus.x / helios.x / hermes.x. Existing installs with a saved home-cards.json keep their edits (defaults only seed fresh profiles). Search engine picker sync: user reported the toolbar dropdown listed engines as active that Settings > Search showed differently. Root cause: settings.searchEngine could be pointing at an id not in the currently-enabled set (stale settings.json after DEFAULT_ENABLED changes across versions). loadSettings now normalizes on boot -- if searchEngine isn't enabled, fall back to enabled[0]; and installedEngines gets unioned with enabledEngines so the two lists can't disagree in ways that make toolbar and Settings render different rows. Proxy auth support in the framework: setSessionProxy accepts `{ proxyRules, auth: { username, password } }` or an inline `socks5://user:pass@host:port` URL. When creds are present, the handler strips them from the URL, installs a session#login listener on the default session that answers with them, then calls setProxy. Chromium's SOCKS5 client doesn't consume proxy auth (known Chromium limitation), but HTTP proxies work; SOCKS-based extensions need to gate by IP allowlist at their server. Log line masks the password. Update chip note: the "download opens in a different browser" was 0.2.0-era behavior. 0.2.1 rewired it to session.downloadURL. Anyone still seeing it needs to install 0.2.1+ once. Deployed: scp + sia-upload both trees, verified HEAD 200 + manifest 0.2.4 live.
2026-08-31 17:24:39 +02:00
"changes": "Home page refreshed with the .x sibling grid (hello.bch, siatest.bch, silentmode.x, theseus.x, sirius.x, hephaestus.x, prometheus.x, helios.x, hermes.x). Search-engine picker in the toolbar and Settings ▸ Search now stay in sync — the persisted default is coerced back into the enabled set on load, so a stale searchEngine setting can't disagree with what's actually available. New extension proxy capability: pass credentials as `{ proxyRules, auth: { username, password } }` and the framework installs a session#login handler for HTTP proxies (Chromium's SOCKS5 client still doesn't do password auth — SOCKS extensions need to gate by IP allowlist at their server instead).",
"files": {
Ship Theseus 0.2.4 7fd323a8 (home cards refresh + engine-picker sync + proxy auth support) Setup 7fd323a87bd32b780e147de18e16ecd82f89960bbd8e9a619c5d25d374597cd2 Portable 3166e64cf56badd7b26c4c793dc79bbed6f9d6c48fbd467d97f845385b91b1dd Home cards: DEFAULT_HOME_CARDS replaced with the .x sibling grid the user asked for -- hello.bch, siatest.bch (the "types of BCDN" pair), then silentmode.x / theseus.x / sirius.x / hephaestus.x / prometheus.x / helios.x / hermes.x. Existing installs with a saved home-cards.json keep their edits (defaults only seed fresh profiles). Search engine picker sync: user reported the toolbar dropdown listed engines as active that Settings > Search showed differently. Root cause: settings.searchEngine could be pointing at an id not in the currently-enabled set (stale settings.json after DEFAULT_ENABLED changes across versions). loadSettings now normalizes on boot -- if searchEngine isn't enabled, fall back to enabled[0]; and installedEngines gets unioned with enabledEngines so the two lists can't disagree in ways that make toolbar and Settings render different rows. Proxy auth support in the framework: setSessionProxy accepts `{ proxyRules, auth: { username, password } }` or an inline `socks5://user:pass@host:port` URL. When creds are present, the handler strips them from the URL, installs a session#login listener on the default session that answers with them, then calls setProxy. Chromium's SOCKS5 client doesn't consume proxy auth (known Chromium limitation), but HTTP proxies work; SOCKS-based extensions need to gate by IP allowlist at their server. Log line masks the password. Update chip note: the "download opens in a different browser" was 0.2.0-era behavior. 0.2.1 rewired it to session.downloadURL. Anyone still seeing it needs to install 0.2.1+ once. Deployed: scp + sia-upload both trees, verified HEAD 200 + manifest 0.2.4 live.
2026-08-31 17:24:39 +02:00
"TheseusNavigator-Setup-0.2.4.exe": "7fd323a87bd32b780e147de18e16ecd82f89960bbd8e9a619c5d25d374597cd2",
"TheseusNavigator-0.2.4-portable.exe": "3166e64cf56badd7b26c4c793dc79bbed6f9d6c48fbd467d97f845385b91b1dd"
}
}
]
}