Theseus Navigator — Silent Mode's Electron browser with the Ariadne resolver built in.
Bumps version so the chip actually surfaces itself on 0.0.3 installs (the version-newer check requires a strict semver bump — same-version rebuilds don't trigger the chip). From this release on, whenever the manifest names a newer Theseus, users get a one-click download. Mechanism - main.js checkForUpdate() fetches https://dl.silentmode.st/releases- manifest.json on startup (5s timeout, cache: no-store) + every 6h. Finds the theseus-navigator release, compares version to app.getVersion() with a numeric a.b.c comparator that handles "0.10.0 > 0.9.9" correctly. - On a match → stores { version, setupUrl, portableUrl, setupHash, portableHash, date } and emits update-available to chrome. Cleared after the user upgrades + relaunches (same-version → null). - Re-emits on chrome's did-finish-load in case the fetch beats the chrome view. Chip UI (chrome.html) - Acid-yellow pill between the downloads button and the Tor toggle: "↓ Update to X.Y.Z" + a ✕. Main body opens setupUrl in the system browser via shell.openExternal (origin-validated to https://dl.silentmode.st/ or https://silentmode.st/). ✕ dismisses for the current session — you'll see it again next launch if still behind. Trust anchor - No signing / no cryptographic verification of the download in this phase. releases.silentmode.bch publishes the SAME manifest URL, so users who want to verify can cross-check the manifest hash against what BCNR returns. The proper auto-updater with signature checks is the follow-on to this cheap version. Non-goals in phase 1 - No delta downloads; the user clicks and gets a full installer. - No auto-install; download → user runs the installer themselves. - No "check now" button in Settings; the periodic timer suffices. - No portable-vs-installed detection; the chip prefers setupUrl (the installer upgrades in place). Right-click for portable is future work. |
||
|---|---|---|
| dev | ||
| lib | ||
| address-picker-preload.js | ||
| address-picker.html | ||
| BROWSER-PROMPT.md | ||
| chrome.html | ||
| collision-preload.js | ||
| collision.html | ||
| DESIGN-password-manager.md | ||
| downloads-preload.js | ||
| downloads.html | ||
| engine-picker-preload.js | ||
| engine-picker.html | ||
| GOTCHAS.md | ||
| home-preload.js | ||
| home.html | ||
| main.js | ||
| messages-preload.js | ||
| messages.html | ||
| package-lock.json | ||
| package.json | ||
| PACKAGING-PROMPT.md | ||
| PENDING.md | ||
| popover-preload.js | ||
| popover.html | ||
| preload.js | ||
| pw-fill-preload.js | ||
| pw-fill.html | ||
| README.md | ||
| RELEASE-HANDOFF.md | ||
| ROADMAP-identity-wallet.md | ||
| SESSION-PROMPT-identity-wallet.md | ||
| settings-preload.js | ||
| settings.html | ||
Theseus Navigator
The browser — the consumer face of the stack. Native .bch support with the
resolver built in, so a user installs one app instead of modifying their
operating system. Named for the thread through the labyrinth: the chain is the
thread.
Scope
- Electron shell (Chromium engine, no forking): tabs, address bar, history.
- In-process
.bchresolution — no system daemon, no NRPT, no OS trust-store changes; reusesbns.jsfrom the BNS repo as a library. - Record handling:
hrender,ipconnect,p/s3via in-app gateway,uredirect. - TLS via cert-verify hook (Electron
setCertificateVerifyProc) against the BNS root / on-chaintlsfingerprints — no OS store touched. - Provenance indicator: shows whether a page came from the chain / Sia / a direct server, with NFT category and record type — the decentralized padlock.
Status: not started
Build it in its own session/repo. The ready-to-paste brief is
BROWSER-PROMPT.md (a reference copy in this folder; canonical source is
D:\Dev\NameCoin\BROWSER-PROMPT.md — if they diverge, NameCoin wins). It points
here and reuses the resolver core. theseus.bch is registered and should
eventually serve the browser's own homepage over the protocol it implements.
Roadmap
BUILD-ROADMAP.md Stage 5.