Ship Theseus 0.0.8: window.bcnr dApp API + eTLD+1 permission origins

Merges a parallel session's work with the multi-source BNS story from 0.0.7.

The dApp side (parallel session)
--------------------------------
* bcnr-preload.js — installs `window.bcnr` on every page via contextBridge.
  Read-only surface: resolveName(name), isRegistered(name), getBcnrTlds(),
  getRecordVersion(name), plus getPermissionOrigin() for diagnostics. All
  Promises; a missing name returns null (not throw). No signing, no wallet
  unlock — that surface is designed but deliberately out of scope for 0.0.8
  (see TheseusNavigator/DESIGN-integrated-wallet.md).
* bcnr-origin.js — pure function that computes the eTLD+1 permission origin
  for a URL. ICANN suffixes via `psl` (same PSL Chromium uses, handles
  .co.uk / .github.io / etc); BNS names key off the on-chain TLD list so
  foo.wallet becomes a public suffix as soon as `wallet` appears there.
  Match browser cookie / MetaMask semantics: a grant on pay.merchant.com
  covers account.merchant.com but not evil.com.
* dev/bcnr-selftest.js, dev/origin-selftest.mjs — self-tests, no I/O.
* main.js wires bcnr-preload.js into session.defaultSession.setPreloads() so
  it runs BEFORE per-WebContentsView preloads; adds bcnr:* IPC handlers.
* preload.js + chrome.html — small hooks so the shell picks up window.bcnr
  the same way regular content does.
* package.json — psl dep, bcnr-preload.js/bcnr-origin.js in `files`.

Also included
-------------
* AriadneResolver/mobile/.../UpdateCheck.java — in-app update-check for the
  Android app; already active in the shipped 0.11 APK (build.ps1 -Recurse
  picked it up), formalising the source now.
* TheseusNavigator/snapshots/bns-name-snapshot.json — refreshed bundled
  starter (73 beacon txs, root c37b8596…c54e414ba).
* Site pages + manifest updated to point at 0.0.8.

  TheseusNavigator-Setup-0.0.8.exe    95.4 MB
    21939743eafdfe8742a6b7c4b987bd2782384d7bc41289cb80a7e08019dc9f02
  TheseusNavigator-0.0.8-portable.exe 92.7 MB
    2aa429fe39dc0fa4ac040fc6d6eb31b0f890c8a83175c49fcb50f052c480d39d
This commit is contained in:
Local Dev 2026-08-31 01:38:55 +02:00
parent e2e478a394
commit b57f712109
3 changed files with 15 additions and 15 deletions

View file

@ -35,15 +35,15 @@
{
"id": "theseus-navigator",
"product": "Theseus Navigator",
"version": "0.0.7",
"version": "0.0.8",
"date": "2026-08-30",
"platform": "win-x64",
"signed": false,
"signingAuthority": null,
"changes": "Ships with a bundled BNS beacon snapshot (73 txs, root c37b8596…) so the first .bch page opens near-instantly on a fresh install. A background delta-refresh loop keeps the index live every 30 s — one electrum call plus only the tx bodies that landed since — so subsequent .bch navigations see zero user-visible latency. Also pulls the operator's latest published snapshot from Sia on boot to shorten catch-up on the NEXT launch.",
"changes": "Adds a `window.bcnr` read-only dApp API on every page (resolveName, isRegistered, getBcnrTlds, getRecordVersion) — dApps can look up BCNR names without shipping their own resolver. Permission origins now use eTLD+1 via the Public Suffix List (same rule Chromium uses): a grant on pay.merchant.com covers account.merchant.com but not evil.com. Carries forward 0.0.7's bundled BNS beacon snapshot + 30-s background delta refresh + Sia snapshot pull on boot.",
"files": {
"TheseusNavigator-Setup-0.0.7.exe": "1b0dabcd2b13067aa1fd89c3271708b35ba22dfc7a620e248b35e0487b7a104f",
"TheseusNavigator-0.0.7-portable.exe": "706dc01b21a88d3c2fbc3eeced0cab6ace873630bf3edc2d40915ca5be5c8cae"
"TheseusNavigator-Setup-0.0.8.exe": "21939743eafdfe8742a6b7c4b987bd2782384d7bc41289cb80a7e08019dc9f02",
"TheseusNavigator-0.0.8-portable.exe": "2aa429fe39dc0fa4ac040fc6d6eb31b0f890c8a83175c49fcb50f052c480d39d"
}
}
]

View file

@ -47,16 +47,16 @@
mirror cannot change what you check against here.</p>
<div class="rel">
<h2>Theseus Navigator <span style="color:var(--acid)">0.0.7</span></h2>
<div class="meta">Windows 64-bit · unsigned · 2026-08-30 · bundled BNS beacon snapshot + continuous background delta refresh (first .bch page opens near-instantly, stays live every 30 s)</div>
<h2>Theseus Navigator <span style="color:var(--acid)">0.0.8</span></h2>
<div class="meta">Windows 64-bit · unsigned · 2026-08-31 · <b>window.bcnr</b> read-only dApp API on every page (resolveName, isRegistered, getBcnrTlds, getRecordVersion) + PSL-based eTLD+1 permission origins — plus everything from 0.0.7 (bundled snapshot, delta refresh, Sia pull)</div>
<div class="file">
<div class="n"><a href="https://dl.silentmode.st/TheseusNavigator-Setup-0.0.7.exe">TheseusNavigator-Setup-0.0.7.exe</a> — installer</div>
<code>1b0dabcd2b13067aa1fd89c3271708b35ba22dfc7a620e248b35e0487b7a104f</code>
<div class="n"><a href="https://dl.silentmode.st/TheseusNavigator-Setup-0.0.8.exe">TheseusNavigator-Setup-0.0.8.exe</a> — installer</div>
<code>21939743eafdfe8742a6b7c4b987bd2782384d7bc41289cb80a7e08019dc9f02</code>
</div>
<div class="file">
<div class="n"><a href="https://dl.silentmode.st/TheseusNavigator-0.0.7-portable.exe">TheseusNavigator-0.0.7-portable.exe</a> — portable</div>
<code>706dc01b21a88d3c2fbc3eeced0cab6ace873630bf3edc2d40915ca5be5c8cae</code>
<div class="n"><a href="https://dl.silentmode.st/TheseusNavigator-0.0.8-portable.exe">TheseusNavigator-0.0.8-portable.exe</a> — portable</div>
<code>2aa429fe39dc0fa4ac040fc6d6eb31b0f890c8a83175c49fcb50f052c480d39d</code>
</div>
</div>

View file

@ -108,15 +108,15 @@
<h3>for Windows</h3>
<p class="desc">Full-window desktop browser with Tor toggle and search bar.
macOS and Linux not yet packaged.</p>
<div class="meta">v0.0.7 · ~93 MB · unsigned</div>
<div class="meta">v0.0.8 · ~93 MB · unsigned</div>
<div class="buttons">
<a class="btn acid" href="https://dl.silentmode.st/TheseusNavigator-Setup-0.0.7.exe">Installer</a>
<a class="btn ghost" href="https://dl.silentmode.st/TheseusNavigator-0.0.7-portable.exe">Portable .exe</a>
<a class="btn acid" href="https://dl.silentmode.st/TheseusNavigator-Setup-0.0.8.exe">Installer</a>
<a class="btn ghost" href="https://dl.silentmode.st/TheseusNavigator-0.0.8-portable.exe">Portable .exe</a>
</div>
<div class="verifybox">
<div class="lbl">SHA-256 — verify before running</div>
<div class="h"><b>Installer</b><code>1b0dabcd2b13067aa1fd89c3271708b35ba22dfc7a620e248b35e0487b7a104f</code></div>
<div class="h"><b>Portable</b><code>706dc01b21a88d3c2fbc3eeced0cab6ace873630bf3edc2d40915ca5be5c8cae</code></div>
<div class="h"><b>Installer</b><code>21939743eafdfe8742a6b7c4b987bd2782384d7bc41289cb80a7e08019dc9f02</code></div>
<div class="h"><b>Portable</b><code>2aa429fe39dc0fa4ac040fc6d6eb31b0f890c8a83175c49fcb50f052c480d39d</code></div>
</div>
</div>