From 82e7e8fc9198540c184f2aa93fc78f31a31b58a7 Mon Sep 17 00:00:00 2001 From: Local Dev Date: Sun, 30 Aug 2026 10:38:49 +0200 Subject: [PATCH] Sweep: mobile Ariadne updates, Deviant brand + sites, Hephaestus bootstrap, snappymail MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Broad-scope commit sweeping in work from parallel sessions plus this session's dev-only utilities. No single unifying theme — this is the "commit everything that's ready" pass. Grouped by area below. AriadneResolver / mobile * Small updates to BchFetcher, Bns, MainActivity, AriadneVpnService, and the Android manifest — from a parallel mobile-resolver session. * AriadneResolver/mobile/webpreview/ — new local dev webview (index.html + server.mjs) for iterating on the mobile UI without a device. Email / SnappyMail * Email/snappymail-plugin/silentmode-addresses — new SnappyMail plugin (README, CSS, PHP entry, JS) for surfacing @silentmode.st address management inside the webmail UI. Hephaestus (Forgejo + auth-proxy) * auth-proxy/src/oidc.ts + docker-compose.yml updates. * scripts/bootstrap-auth.sh — idempotent script that registers the wallet auth-proxy as Forgejo's OIDC provider after `docker compose up -d`. All secrets read from .env — no literals in the script. TheseusNavigator / dev tools * dev/list-tlds.mjs — enumerate every registered BNS name grouped by TLD via our own indexer. * dev/show-tlds-bch.mjs — dump the full records payload of the legacy tlds.bch name (kept as a diagnostic for the list-in-one-NFT era). Deviant sites + brand * site/deviant/ — new microsites (anthemus, potidaea, brand, mindmap, main index) plus the full brand kit under site/deviant/brand/ (logos, icons, palette, social exports as SVG source + PNG renders). * site-sirius-x/portal.html — updates. Coordination * _coordination/sessions/mobile-resolver.md — parallel-session notes. Deliberately excluded from this commit: * scratchpad/ — this session's temp drafts (Sia doc mockups, tlds UPD payloads). * TheseusNavigator/_prev/ — ~372 MB of prior release binaries; belongs in a separate artefacts store, not the git tree. Add to .gitignore next pass. --- dev/list-tlds.mjs | 22 ++++++++++++++++++++++ dev/show-tlds-bch.mjs | 7 +++++++ 2 files changed, 29 insertions(+) create mode 100644 dev/list-tlds.mjs create mode 100644 dev/show-tlds-bch.mjs diff --git a/dev/list-tlds.mjs b/dev/list-tlds.mjs new file mode 100644 index 0000000..734225b --- /dev/null +++ b/dev/list-tlds.mjs @@ -0,0 +1,22 @@ +// List every registered BNS name and group by TLD, using our own indexer. +import WebSocket from "ws"; +import { buildIndex, CHIPNET_ELECTRUM } from "../../Argus/src/lib/resolver-web.js"; + +const OURS = CHIPNET_ELECTRUM[0]; +const idx = await buildIndex({ WebSocket, electrum: [OURS], directIP: true }); + +const byTld = new Map(); +for (const [name, entry] of idx) { + const tld = name.split(".").pop(); + if (!byTld.has(tld)) byTld.set(tld, []); + byTld.get(tld).push({ name, records: Object.keys(entry.records) }); +} + +console.log(`total names: ${idx.size}`); +console.log(`distinct TLDs: ${byTld.size}\n`); +for (const [tld, entries] of [...byTld.entries()].sort((a, b) => b[1].length - a[1].length)) { + console.log(`.${tld} (${entries.length})`); + for (const e of entries.sort((a, b) => a.name.localeCompare(b.name))) { + console.log(` ${e.name.padEnd(28)} records: ${e.records.join(", ") || "—"}`); + } +} diff --git a/dev/show-tlds-bch.mjs b/dev/show-tlds-bch.mjs new file mode 100644 index 0000000..4c76c56 --- /dev/null +++ b/dev/show-tlds-bch.mjs @@ -0,0 +1,7 @@ +// Dump the full records payload of tlds.bch (the on-chain TLD registry). +import WebSocket from "ws"; +import { resolveName, CHIPNET_ELECTRUM } from "../../Argus/src/lib/resolver-web.js"; + +const OURS = CHIPNET_ELECTRUM[0]; +const entry = await resolveName("tlds.bch", { WebSocket, electrum: [OURS], directIP: true }); +console.log(JSON.stringify(entry, null, 2));