Theseus Navigator — Silent Mode's Electron browser with the Ariadne resolver built in.
The chip menu showed every entry in WEBSITE_LANGUAGE_QUICK (24 rows, most greyed with "— translator coming later") and the picker read as a wall of coming-soon noise. The top strip now carries only the languages the translator actually handles — Automatic plus the six supported ones (en, es, fr, de, el, ru) — and everything else moves into a "More languages (translator coming later)" submenu where the greyed rows live without crowding the main menu. If the user's current pin is one of the unsupported ones, it stays visible at the top so the ✓ reads at a glance, not two levels deep. Translation didn't follow a language change reliably: - A page with no `<html lang>` left pageLang empty, which the auto- translate hook took as "no translation needed" and skipped the entire page. Now an empty source is still translated (the backend auto-detects the real language), and the hook only skips when pageLang is known AND matches the user's target. - Changing the pin via Settings or the chip reloaded the active tab but did not re-translate — the hook needs auto-offer on, and even then a `pending` latch set by setWebsiteLanguage was wiped by the reload's did-start-navigation reset. The `pending` bit now survives that reset, so the did-finish-load hook translates unconditionally for an explicit language switch (the user ASKING for a new language IS the request to translate the current page too). A translated page is reverted before the reload so the fresh HTML lands on original DOM, not a mix of old translated nodes and new content. Verified end-to-end: an es→en auto- translate followed by a pin to French takes the page to French in one shot without the chip being touched. |
||
|---|---|---|
| addon-build/docx-editor | ||
| bundled-addons | ||
| dev | ||
| docs | ||
| engine-icons | ||
| lib | ||
| nsis | ||
| scripts | ||
| snapshots | ||
| addon-inject-preload.js | ||
| addon-tab-preload.js | ||
| addon-update-pubkeys.js | ||
| addon-updater.js | ||
| addons-host.js | ||
| address-picker-preload.js | ||
| address-picker.html | ||
| approval-preload.js | ||
| approval.html | ||
| auth-prompt-preload.js | ||
| auth-prompt.html | ||
| bcnr-origin.js | ||
| bcnr-preload.js | ||
| bns-indexer.js | ||
| BROWSER-PROMPT.md | ||
| chrome.html | ||
| collision-preload.js | ||
| collision.html | ||
| DESIGN-bns-indexer-service.md | ||
| DESIGN-integrated-wallet.md | ||
| DESIGN-password-manager.md | ||
| DESIGN-wallet-multi-account-amendment.md | ||
| downloads-preload.js | ||
| downloads.html | ||
| engine-picker-preload.js | ||
| engine-picker.html | ||
| error-preload.js | ||
| error.html | ||
| GOTCHAS.md | ||
| home-preload.js | ||
| home.html | ||
| js-dialog-preload.js | ||
| js-dialog.html | ||
| LICENSE | ||
| link-status-preload.js | ||
| link-status.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 | ||
| quicklinks-preload.js | ||
| quicklinks.html | ||
| README.md | ||
| RELEASE-HANDOFF.md | ||
| ROADMAP-identity-wallet.md | ||
| SESSION-PROMPT-identity-wallet.md | ||
| settings-preload.js | ||
| settings.html | ||
| sidebar-preload.js | ||
| test-installer.wsb | ||
| THIRD-PARTY-NOTICES.md | ||
| TRADEMARKS.md | ||
| unlock-preload.js | ||
| unlock.html | ||
| webapps.js | ||
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.