# Theseus Navigator — packaging session brief Goal of this session: turn Theseus from "runs via `npm start`" into a **downloadable, secret-free Windows installer** hosted at `dl.silentmode.st`, with its SHA-256 published on-chain. Do it in the three phases below, in order. Working dir: `D:\Dev\SilentMode\TheseusNavigator`. Prefix shell commands with `rtk`. Windows + PowerShell primary; Bash tool available. **Read first:** `..\README.md` (hub), `..\BUILD-ROADMAP.md` (this is Stage 5), `..\SECURITY.md` (Rules 0/2/3 govern this session), `..\_coordination\INTERFACES.md` (the resolver contract), and this file. Theseus already works for `.bch`; the engine (`..\Argus\src\lib\resolver-web.js`) is already multi-TLD and zero-dep. --- ## Current state (verified 2026-07-25) - Theseus **runs** (`npm start`): Electron, tabs, back/fwd/reload/home, address bar, DuckDuckGo search box, home page, **Tor toggle** (bundled `tor/tor.exe`, routes web session + resolver WS + content fetch via SOCKS). - Resolution reuses `..\Argus\src\lib\resolver-web.js` (import in `main.js`). - `bns://` custom protocol serves content; provenance strip shows chain/Sia/server. - **NOT** packaged: no `electron-builder`, no installer. - **Two blockers for a public build (must fix):** 1. `main.js` `resolveHost()` is still `.bch`-only (`host.replace(/\.bch$/,"").split(".").pop()`), and `navigate()` / `serveBns()` / `subFolder()` assume `.bch`. The engine is multi-TLD; the browser must catch up. 2. `serveBns()` fetches `s3` content with **your Sia credentials** (`getAws()` reads `..\Argus\sia-s3.json`). **A public build MUST NOT ship credentials** (SECURITY.md Rule 0). Switch `s3` to the public gateway. ## Phase 1 — Multi-TLD + registry badge (browser catches up to engine) - `resolveHost(host)`: stop stripping `.bch`/`.pop()`. Pass the **full host** to `resolveName(host, { WebSocket: currentWS() })` — it already normalizes any `.