theseus/dev/README.md
Local Dev 7898e78ff4 Initial commit — Silent Mode baseline (2026-07-29)
Snapshot of the decentralized-web stack at the point of the resolver+Theseus
rebuild deploy. Includes:

- Argus (BNS engine + resolver daemon + Sia gateway)
- AriadneResolver (Windows Inno installer bundle + Android APK sources +
  Firefox extension)
- TheseusNavigator (Electron browser)
- site/ (silentmode.st content, deployed to Sia at bns/silentmode/)
- design docs, roadmap, protocol spec

Secrets excluded via .gitignore: Argus/sia-s3.json, Argus/wallets.json,
Argus/ca/*.key,*.crt. Build outputs, node_modules, and bundled runtimes
also excluded.

Shipped hashes on dl.silentmode.st at this commit:
  AriadneResolver-Setup-0.1.0.exe    5bcb216eef31ea28ed767e4134ab74bd5ac69dfbd365fd249e9e6938e55c986a
  TheseusNavigator-Setup-0.0.1.exe   7c735e88bad2da3347145adba3016c8f626a18b8422289c8c6ba471972e2952b
  TheseusNavigator-0.0.1-portable.exe 008fd84445babeabb401b2bca40ea9466b24b0e6d6c85104da7640c5c5c84521
  ariadne-v0.2.apk                   635c8f04d44ef855a8390b9eeddb8cd2d50622e81cc4e5004e8daffc1bb0425c
2026-07-29 13:54:34 +02:00

44 lines
1.8 KiB
Markdown

# 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.
```bash
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.
```bash
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.