Theseus Navigator — Silent Mode's Electron browser with the Ariadne resolver built in.
Auto-detect already worked — the backend returns
detectedLanguage:{language,confidence} and the panel put it in the
status line. But that only appeared after a translation had already
run, in small text, away from the control that raised the question. You
could not tell what "Auto-detect" had decided before committing to it.
The first row of the source select now says "Auto-detect · German", and
it says so while you are still typing. Detection runs on its own via
LibreTranslate's /detect, debounced 700 ms and gated at 12 characters,
because a detector given two words is guessing and firing per keystroke
would pound a public mirror for nothing. It chains the same mirror
fallback as translation, so a dead primary does not make detection look
broken while translating still works.
Confidence below 60 renders as "German?" rather than silently asserting
a coin-flip. The Google backend has no detect-only route, so there
doDetect returns null instead of burning a request, and the label is
filled from the translation response — which every backend returns
anyway, so a skipped or failed detect is never worse than before.
Detection retires when a source is named explicitly, comes back on
returning to Auto-detect, and is wiped by clear. A right-click
selection schedules one too, since that text arrives with no keystroke.
Verified against the real mirror (de/fr/ja at 100/100/90%) and in the
harness: short text fires nothing, long text fires once, four rapid
edits debounce to one call, and every transition above lands.
Also adds the xray removal script used to take the old engine off all
three exits now that they run sing-box.
|
||
|---|---|---|
| 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 | ||
| BROWSER-PROMPT.md | ||
| chrome.html | ||
| collision-preload.js | ||
| collision.html | ||
| 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 | ||
| 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 | ||
| 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 | ||
| 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.