theseus/dev
Local Dev 38951f42d5 Resolver 3438d558: ASCII-clean install.ps1 + multi-TLD NRPT + VPS-first electrum
Parallel session was right — the previously-shipped f94834b5 pre-dated:
  1. the ASCII em-dash sweep in setup/install.ps1 (Inno's [Run] uses
     powershell.exe / PS 5.1; em-dashes in the file crashed the parser
     under UAC, so the installer copied files but never registered the
     scheduled task or NRPT rule)
  2. the multi-TLD NRPT expansion (added .p2p .bit .nav alongside .bch)
  3. the VPS-primary electrum server list — resolver-web.js now dials
     wss://coinspectrum.duckdns.org:50011 first (Silent Mode's own
     BCHN-backed BNS-only indexer), public servers as fallback

Result: a real user installing 3438d558 on a fresh Windows box now gets
a working system-wide resolver with no manual steps.

Deployed to dl.silentmode.st and mirrored to Sia bns/silentmode/.
2026-07-31 23:09:23 +02:00
..
probe-site.mjs Initial commit — Silent Mode baseline (2026-07-29) 2026-07-29 13:54:34 +02:00
README.md Initial commit — Silent Mode baseline (2026-07-29) 2026-07-29 13:54:34 +02:00
registry-decide.mjs Initial commit — Silent Mode baseline (2026-07-29) 2026-07-29 13:54:34 +02:00
rescheck.mjs Initial commit — Silent Mode baseline (2026-07-29) 2026-07-29 13:54:34 +02:00
selftest.js Initial commit — Silent Mode baseline (2026-07-29) 2026-07-29 13:54:34 +02:00
test-directip.mjs Initial commit — Silent Mode baseline (2026-07-29) 2026-07-29 13:54:34 +02:00
test-our-indexer.mjs Resolver 3438d558: ASCII-clean install.ps1 + multi-TLD NRPT + VPS-first electrum 2026-07-31 23:09:23 +02:00

Theseus dev/test harness

Two ways to drive Theseus's resolution + content path headlessly, for testing and debugging without clicking through the GUI. Both use the real resolver (Argus/src/lib/resolver-web.js) and gateway path the shipped app uses.

selftest.js — full render (Electron)

Runs the actual serveBns protocol handler (imported from main.js) in a hidden offscreen Electron window, loads a bns:// name, lets its JavaScript execute, then reports what really rendered and writes a screenshot.

npx electron dev/selftest.js hello.bch
npx electron dev/selftest.js coinspectrum.deviant.bch     # JS-driven Sia site
THESEUS_SETTLE=8000 npx electron dev/selftest.js <name>   # wait longer for data

Output: a JSON report (title, badge, stylesheet/script counts, local vs external broken-image counts, visible-text length, failed loads, verdict) plus dev-out/render.png and dev-out/render.html. Exit 0 = PASS. The verdict counts only the site's own bns:// assets — external CDN images are informational.

This is the faithful version of manual tests #2 (Sia-via-gateway rendering) and #3 (multi-TLD badge). main.js exports its handler and skips auto-launch when THESEUS_NO_AUTOSTART=1, which the harness sets.

probe-site.mjs — content path only (Node, no Electron)

Fast check with no display or Electron: resolves a name, fetches the index through the gateway exactly as serveBns does (with the <base> strip), and fetches each static same-origin asset, reporting status/content-type.

node dev/probe-site.mjs coinspectrum.deviant.bch

Limitation: static-HTML only. It cannot see assets a page builds at runtime in JavaScript — use selftest.js for JS-driven sites.

dev-out/

Generated render artifacts (screenshot + HTML dump). Safe to delete; regenerated on each selftest.js run.