Commit graph

6 commits

Author SHA1 Message Date
Local Dev
f4a6c85c3e feat(hephaestus.x): landing 'Sign in' becomes a Bitcoin Cash wallet dropdown
- site/hephaestus.x/index.html: replace single 'Sign in with wallet' CTA with
  a <details> dropdown labelled 'Bitcoin Cash wallet'. Menu items:
    Sign in       -> /user/oauth2/hephaestus-wallet#import
    Sign up       -> /user/oauth2/hephaestus-wallet#create   (pill: easiest)
    WizardConnect -> /user/oauth2/hephaestus-wallet#connect  (pill: most private)
  Same emoji + copy scheme as the wallet accordion, so the landing previews
  the choices the user will see after clicking through.

- Hephaestus/auth-proxy/public/wallet.js: renderTabs() now reads location.hash
  and auto-opens the matching <details> option on load (create/import/connect).
  Fragments survive Forgejo's OAuth redirect chain, so a click on 'Sign up'
  from the landing lands the user directly on the Create accordion.
2026-09-02 22:13:55 +02:00
Local Dev
58712e77da site: add favicon link to every silentmode.st HTML page
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.
2026-08-31 21:43:25 +02:00
Local Dev
2ea68d14e7 fix(hephaestus.x): refresh stale references in the "where it lives" spec
Fresh-browser test surfaced two staleness bugs on the standalone landing:

- Source link pointed at silentmode/silentmode — that repo was deleted last
  turn when we split into per-project repos. Point at silentmode/hephaestus
  now (which actually holds this landing page's home + the docker-compose /
  auth-proxy / Caddyfile that serves it).
- "Let's Encrypt TLS" was true for code.silentmode.st but not for hephaestus.x
  itself, which now uses a Silent Mode CA cert from Argonautica. Reword to
  reflect the dual-hostname primary/mirror architecture and the two cert
  stories.

Also mention the DR-backup relationship — the Sia bucket now mirrors the VPS
static content nightly, not the other way around.
2026-08-31 15:59:03 +02:00
Local Dev
941851ea0e feat(hephaestus.x): per-repo detail pages under /silentmode/*
Adds live pages for each repo without leaving hephaestus.x:

  hephaestus.x/silentmode/            → index of all silentmode/* repos
  hephaestus.x/silentmode/theseus/    → README + recent commits + clone URLs
  hephaestus.x/silentmode/sirius/     → same
  hephaestus.x/silentmode/ariadne/    → same, gated ("private, sign in to browse")
  hephaestus.x/silentmode/hephaestus/ → same, gated

Single _template.html hardcoded per repo via sed; each detail page pulls
metadata + README + last 8 commits from code.silentmode.st via the
CORS-enabled Forgejo API on load, renders README with a minimal
markdown-to-HTML pass, and gracefully falls back to a "sign in to browse"
note when the API returns 401/404 (private repo).

The URL stays on hephaestus.x while browsing — user only leaves when they
click "Browse full source →" or a specific commit link.
2026-08-31 15:29:49 +02:00
Local Dev
aea58e4cfd feat(hephaestus.x): /forge lists real repos instead of auto-redirecting
Previous version was a 100ms bounce to code.silentmode.st — user never saw
hephaestus.x/forge/ content, just a flash. New version is a real catalog page:

- Fetches public repo list live from Forgejo's API on page load
- Renders each repo as a card with name, owner, description, updated date,
  clickable to code.silentmode.st/<owner>/<repo> when the user chooses
- Falls back to a "browse directly at code.silentmode.st" hint on API error
- Includes the git clone URL patterns (HTTPS-with-PAT and SSH-2222) inline

Enabled CORS on Forgejo so hephaestus.x (served from a different origin)
can hit /api/v1/repos/search — Access-Control-Allow-Origin: *, methods
GET+HEAD only, no credentials. That's the minimum for public listings and
matches how the API is meant to be used.

/forgejo/ is a byte-identical alias.
2026-08-31 12:44:03 +02:00
Local Dev
96a9ac835d feat(site): standalone hephaestus.x landing + /forge /forgejo shortcuts
hephaestus.x is its own thing — not a subpage of silentmode.st. Previously
the BCNR record redirected straight to code.silentmode.st (dropping visitors
at the login screen cold) or to /hephaestus/ on silentmode.st (which
inherited the full silentmode nav bar of unrelated products).

- New standalone landing at site/hephaestus.x/index.html — its own compact
  page, no silentmode.st chrome, just a mark + tagline + three key facts +
  "where it lives" spec table, one small "A tool from Silent Mode" footer.
- /forge/index.html and /forgejo/index.html — instant redirects to
  code.silentmode.st for users who type hephaestus.x/forge in the bar.
- BCNR record updated to {"s3":"bns/hephaestus.x/"} — navigate.st gateway
  serves the content directly from the Sia bucket (same pattern deviant.x
  uses). TXID 69686a03c66cc1f661c84c50107a8660055c629f0393c9bb6802773d3c0a7108.

Docs page at silentmode.st/hephaestus/ stays put — that one lives in the
silentmode.st family with its full nav, targeting Silent Mode visitors
exploring the whole stack. hephaestus.x/ is for direct hephaestus visitors.
2026-08-31 12:29:17 +02:00