Theseus Navigator — Silent Mode's Electron browser with the Ariadne resolver built in.
The globe-chip menu was a native Electron menu — square corners, system font, no theming beyond the OS's own context-menu paint. Replaces it with a floating overlay WebContentsView (lang-picker.html + preload), following the same pattern the engine picker and the popover already use: rounded 12px surface, acid-tint accents on the current pin, soft shadow, dark + light scheme, flush under the chip's bottom-right. The content is organised around the user's intent — translate first, pick a language second. The "Translate this page" row sits at the top when it is actionable (web tab + supported source + supported target), with the detected source and the target under the label so the user can tell what the backend will do before they click. Once a page is translated, that row flips to "Show original (<source>)". Below the action strip is Automatic + the six supported languages, each with a two-letter code chip in the left slot and a ✓ on the current pin. Unsupported languages are hidden by default inside a collapsible "More languages (translator coming later)" group — click to expand, click to collapse; a pinned-unsupported auto-expands so its ✓ stays visible. Plumbing matches engine-picker: deferred-load WebContentsView, closeOnClickAway, setBounds anchored under the chip, picker renderer reports its own content height after each render so the overlay contracts and expands with the "More languages" toggle. State pushes come from emitTranslateState (so the Translate / Show-original row updates when a page finishes auto-translating with the picker open) and from broadcastSettings (so a Settings-side language change re-paints the ✓). Verified end-to-end: picker loads, shows Automatic + 6 supported in the default list and 18 greyed in the "More" group, repaints to "⟲ Show original (Spanish)" after an auto-translate completes. |
||
|---|---|---|
| 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 | ||
| lang-picker-preload.js | ||
| lang-picker.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.