Commit graph

57 commits

Author SHA1 Message Date
Local Dev
adeeae4cd4 sirius.x portal: /api/holdings endpoint + favicon paths + roadmap link
gateway/public-gateway.mjs:
  * GET /api/holdings/<scripthash> and POST /api/holdings {scripthashes:[…]}
    — server-side wallet-holdings lookup for the portal. Bns-indexer is
    beacon-only so it can't answer listunspent for arbitrary addresses; the
    gateway does the electrum roundtrip and cross-joins with the cached BCNR
    index. Client posts scripthashes (no libauth needed on the server) and
    gets back the names owned.
  * elConnect now falls through to whole-buffer JSON.parse when a Fulcrum
    response lacks a trailing newline — chipnet.bch.ninja does this and
    otherwise every elCall to it times out. Same tolerance pattern as
    bns-indexer.test.mjs's tiny electrum client.
  * verifyElectrum picks a full electrum with a 3s server.version probe so a
    hung server fails over to the next in seconds instead of stalling 20.
  * Skips silentmode.st/electrum and coinspectrum.duckdns.org:50011 for
    /api/holdings — both are bns-indexer routes that don't do listunspent.

web/register-entry.js: export addressToScripthash so the portal can derive
the scripthash for each of its wallet's watched addresses before POSTing.
Browser bundle rebuilt.

site-sirius-x pages:
  * favicon + logo hrefs made relative (./assets/… on index/portal,
    ../assets/… on docs/theseus). Absolute /sirius-x/… broke on the sirius.x
    BCNR route where the site is served from root instead of under /sirius-x/.
  * Roadmap nav link added back to portal, docs, theseus — the landing has an
    anchor to a section on itself, so subpages now link to it explicitly.
  * portal.html: loadNames rewritten to POST scripthashes to /api/holdings
    instead of doing client-side electrum. Works on browsers whose networks
    block chipnet electrum ports; same-origin HTTPS on 443.
  * portal.html: bundle import ?v= bumped so Chrome's in-memory ES module
    map picks up the new bundle instead of a stale cached copy.
2026-08-31 05:40:47 +02:00
Local Dev
32fdaac1ed sirius.x: branding — SVG favicon, wordmark logo, OpenGraph + Twitter Card
assets/favicon.svg — 4-point sparkle star in acid green on a rounded dark
square. Scales cleanly at any size (16px tab icon through Retina). Uses the
Silent Mode palette so it recognisably reads as Silent Mode family.
assets/logo.svg — the same star + "sirius.x" wordmark with the .x accented in
acid green. Used as the og:image; can also be inlined as a brand mark.

Every page (landing / docs / portal / theseus) gets:
  * <link rel="icon"> + <link rel="mask-icon"> pointing at favicon.svg
  * og:type, og:site_name, og:title, og:description, og:url, og:image
  * twitter:card + twitter:title/description on the landing (summary card)

Absolute paths (/sirius-x/assets/…) so subpages get the same brand mark
without per-page path juggling.
2026-08-31 04:30:53 +02:00
Local Dev
7889755b66 electrum: wire wss://silentmode.st/electrum as first-choice (port 443 reachable)
Bns-indexer on VPS was only exposed on port 50011 via nginx, which corporate
firewalls, mobile carriers, and many VPNs block. Added an nginx location on
443 that proxies to the same 127.0.0.1:50010, giving us a browser-friendly
WSS endpoint on the standard HTTPS port.

  * lib/electrum.js CHIPNET_ELECTRUM: wss://silentmode.st/electrum listed
    first (used by registrar.connect() + everything that depends on it).
  * lib/resolver-web.js CHIPNET_ELECTRUM: same, kept in lockstep per the
    "change both together" comment.
  * bns-register.js bundle rebuilt to bake the new list.
  * portal.html imports the bundle with ?v= so Chrome's in-memory ES-module
    map doesn't serve a stale copy across tabs.

Portal now connects successfully; next remaining issue is that
bns-indexer only supports (server.version, get_history, transaction.get) —
`blockchain.scripthash.listunspent` for wallet address queries is not
implemented, so the "list your names" step fails there. Follow-up: add a
GET /api/holdings/<address> to public-gateway.mjs backed by the existing
BCHN electrum access, so the portal can pull holdings over plain HTTP.
2026-08-31 03:35:39 +02:00
Local Dev
c2784abe5b Sweep: mobile Ariadne updates, Deviant brand + sites, Hephaestus bootstrap, snappymail
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.
2026-08-30 10:38:49 +02:00
Local Dev
1f331a298b sirius.x: pull the sign-in link to the far right of the top nav
Standard header pattern — brand + main nav on the left, the account action on
the right. New .portal class does margin-left:auto plus a subtle acid tint so
it reads as a button, not another nav item. Applied on all four pages
(landing, docs, portal, theseus); the label is '🔑 Sign in' everywhere
(portal.html itself still marks it .here).
2026-08-29 22:22:37 +02:00
Local Dev
bd4b4602e0 sirius.x: extract docs to /docs/, cross-link portal + theseus navs
The landing kept expanding whenever documentation was added inline. Moving it
to its own subdirectory gives docs room to grow and keeps the landing to the
"try it / roadmap / verify" story it's supposed to be.

  * docs/index.html — TOC + eight sections (TLD registry, registration,
    records, resolver, mainnet pricing, tracker, verification, runbook).
    Reads on its own; no dependency on the landing.
  * index.html — #docs section shrunk to a one-paragraph call-to-action with a
    prominent "Open the docs →" button; nav Docs link now points at /docs/.
  * portal.html + theseus/index.html — nav Docs links updated to /docs/ (was
    ./#docs / ../#docs) so every subpage points at the standalone docs.
2026-08-29 22:00:37 +02:00
Local Dev
016095a604 sirius.x: portal (sign-in + names), Theseus subpage, drop .com public mention
* portal.html — sign in with a seed phrase (in-memory only, wiped on sign
    out), fetch owned NFT categories across all watched addresses, cross-join
    against BCNR buildIndex to show the wallet's names + records. Read-only
    for now; record edit (UPD) will piggyback on the register bundle's signing
    path. WizardConnect button stubbed with a "soon" pill — the adapter
    already exists in register.html and will be wired in the next pass.
  * theseus/index.html — download page for Theseus Navigator (v0.0.4) and
    Ariadne Resolver (Windows setup + Android APK). Same design system as the
    landing. Links to dl.silentmode.st for the actual binaries and to
    silentmode.st/releases for the manifest.
  * index.html — nav now has 🧭 Theseus and 🔑 Portal chips; "Try it" section
    adds cards for the portal and Theseus.
  * site/tlds/ — .com row removed from the public table; count updated to 14;
    supersedes the "held by operator" language per operator direction.
  * site-sirius-x/index.html — softened ICANN-adjacent note.

All routes verified live: silentmode.st/{tlds,sirius-x,sirius-x/portal.html,
sirius-x/theseus,bns/sirius.x} return 200. Sia mirror updated for all three
new/changed sirius.x pages.
2026-08-29 21:57:33 +02:00