hephaestus/index.html inlines its own nav CSS instead of loading shared.css,
so the injected logo SVG had no size rule and rendered at 300x150, pushing
the brand onto its own row. Added the three .logo rules to its inline style.
tools/ and releases/ were parked during the 0.3.18 ship; now carry the same
inline logo and Open Graph tags as the rest of the site.
- inline chain-link logo in every top nav and the two chain-emoji hero marks
(index, sirius/register); shared.css sizes/colours it via .l1/.l2
- homepage hero figure: Theseus opening hello.bch (BCDN badge, no DNS)
- Open Graph + Twitter card meta on all 13 silentmode.st pages, image
brand/og.png (1200x630, rendered from the brand kit)
- contrast: --dim 5e6678 -> 7a8496 (3.4:1 -> 5.1:1); default .btn no longer
off-palette blue with 3.9:1 white text, now panel2/ink; nav links 9px pad
- figure.shot styles for screenshots; tools/img/ holds the Theseus and
Ariadne-Android shots for the download cards (wired in a follow-up, the
tools page is mid-ship in another session)
- scripts/serve-site.mjs: zero-dep static server for previewing site/
Bulk-inserts <link rel="icon" type="image/svg+xml" href="/favicon.svg"> before
the </head> tag on every silentmode.st page that was missing it. All 36 site
HTML pages now advertise the chain-links favicon; browsers show it in tabs
and bookmarks across the whole umbrella site.
Pages touched (29): apps/, choose/*, deviant/* (7 pages under the parent
house), hephaestus/, hephaestus.x/* (9 chain-published mirror pages),
nav/ (redirect stub), register.html (redirect stub), sirius/,
sirius/register.html, store/ (redirect stub), tlds/.
Already had favicon from earlier passes (7): index.html, brand/,
tools/, prometheus/, helios/, hermes/, releases/.
Line-ending preservation: choose/index.html and sirius/register.html were
originally stored with CRLF endings; the plain Python read/write path
normalized them to LF and produced a noisy diff. Both files re-serialized as
CRLF before the favicon insert to keep the diff to +1 line each.
Deploy: rsync-equivalent tar-pipe to /opt/silent-mode/site/, plus per-file scp
for the two CRLF-corrected files. Verified live: 7 spot-checked URLs each
report exactly one <link rel="icon"> in served HTML.
The section content was already about running the sign-in without a real
browser — the "AI" framing was a leftover from how the misdiagnoses first
surfaced. Rename to be tool-neutral: any CLI, CI job, curl-with-cookies,
Playwright, Puppeteer, or scripted client hits the same trap and benefits
from the same URL routing table and smoke-test snippets.
Also, hephaestus.x BCNR record updated (via Argus CLI) to point at the docs
landing page instead of straight-to-forge — users typing the name now get
docs + a "Sign in with wallet" button, not the login screen cold.
TXID 2359f99b4a5c4cc2b56594ce5b7c47df4a98cb361843bc7139f3550bab43d436.
Site:
- Rename the "Tools" nav label to "Theseus" on every subpage. URL slug
/tools/ is kept intact so bookmarks and cross-links survive; the page's
own title + h1 rename to Theseus; homepage product card retitled.
- Remove the /tlds/ self-nav entry so its 7-item header matches every
other subpage (was 8 items, causing the same "header rearranges" glitch
Hephaestus had before).
Auth-proxy (fixes reported by a concurrent session working with a chipnet
wallet):
- verify.ts now auto-detects the CashAddr prefix (bitcoincash, bchtest,
bchreg) instead of hardcoding "bitcoincash". Chipnet wallets sign the
same message with the same key but display bchtest: addresses; the old
code compared their claim against a re-encoded bitcoincash: version and
always rejected. Same key material, different envelope.
- /challenge accepts any of the three known prefixes at the input gate.
- /verify accepts an optional `state` param in the request body — used as
a fallback if the challenge record didn't carry one (which happens when
a scripted caller runs the /verify step without passing state through
/challenge). Ensures RFC 6749 §4.1.2 compliance: the OAuth callback URL
always echoes state when the client provided one.
Every silentmode.st subpage was missing Hephaestus in its topnav, so clicking
Hephaestus from the homepage led to a page whose nav had a different item set —
looked like the header "rearranged and dropped tabs" mid-navigation.
- Add <a href="../hephaestus/">Hephaestus</a> between Sirius and Helios on:
tools, prometheus, sirius, helios, hermes, releases, tlds
- Normalize hephaestus/index.html to use relative paths (../foo/) matching the
convention used by every other subpage — was absolute (/foo/)
- Result: every page has 7 identical nav items in the same order, with
class="here" on whichever section you're viewing. /hephaestus/ keeps its
"Open forge →" CTA appended (an addition, not a reorder).
The docs page had a truncated & reordered nav (Tools, Sirius, Hermes) that
dropped Prometheus + Helios and put Hephaestus in the wrong slot. Clicking
"Hephaestus" from the homepage nav appeared to "rearrange" the header because
the destination page's nav was a different set.
Match the homepage nav 1:1 — Tools, Prometheus, Sirius, Hephaestus, Helios,
Hermes — with the "here" highlight on Hephaestus and the "Open forge" CTA
appended at the far right. Same items in the same order = stable header
across navigations.
Chipnet mint via existing Argus CLI (node src/register.js hephaestus.x <url>).
TXID f9d0f72b5884996b8d55505a19ba2bde68fce556de20f98bdece2dbf57c77170.
Resolves via https://navigate.st/bns/hephaestus.x/ (302 → code.silentmode.st)
and natively at hephaestus.x in any BCNR-aware browser.
Someone hitting the deployed instance recently reported the wallet-auth
front-end as broken based on two mistakes:
(a) mistook the 510-byte login shell for a stub (it's an SPA bootstrap
that renders the UI via a JS module client-side), and
(b) tried /static/wallet.js instead of /auth/static/wallet.js, missing
the Caddy path-prefix routing.
Add an explicit section with:
- URL table showing exactly which service serves each path
- curl snippets for smoke-testing the flow without a browser
- Note that /api/v1/user requires an API token (not a session cookie),
so a 401 there does not mean "not signed in"
- Guidance for headless / AI-driven browser sessions
Aims to head off the same misdiagnosis pattern from future sessions.
- Nav link between Sirius (live) and Helios (designed) — keeps live things adjacent
- Product card with p-live pill (Hephaestus is running at code.silentmode.st today)
- Meta description updated to include Hephaestus in the catalog
- New site/hephaestus/index.html — full docs (user quickstart, git push, architecture,
wallet-auth protocol, operator self-host guide with the gotchas we hit)
Both silentmode.st and silentmode.bch serve from the same bucket path so this one
edit updates both. Files also copied into /opt/silent-mode/site/ on the silentmode VPS.