User-authored artwork wins. mark.webp is the main icon; two sibling variants
(mark-wings-both.webp, mark-variant.webp) ship alongside for brand uses.
- bundled-addons/hermes/addon.json: version 0.2.2, icon/panels[0].icon are
now data:image/webp;base64,... from the main mark.
- bundled-addons/hermes/assets/mark.webp: served by the host via the panel
page's relative path (seedBundledAddons' fs.cpSync recursive carries it).
- bundled-addons/hermes/panel.html: both top-bar and signin inline SVGs
become <img src="assets/mark.webp"> at 24 and 72 px.
- site/hermes/index.html: hero SVG → <img> at 120 px.
- site/hermes/branding/{index.html,mark.webp,mark-wings-both.webp,mark-variant.webp}:
branding kit now carries the three webp files; the inline hero SVG uses
the main one.
- site-hermes-x/{index,branding,messenger}/index.html: same SVG → <img>
swap with the appropriate assets/ relative path.
- site-hermes-x/assets/mark{,-wings-both,-variant}.webp: sibling of the
existing favicon.svg and mark SVGs (kept for backward refs that still
point at them).
Legacy mark.svg + mark-stroke.svg + favicon.svg stay in place for any
external references; nothing in-repo points at them for the primary icon
slots anymore. favicons still point at the SVG files — safe to leave;
flipping those to webp is a one-liner if you want it.
Hermes handles are not tied to the .bch TLD — the user's names live on .x
today and the planned Hermes TLDs are .erm/.tel — so the hermes.x site,
the silentmode.st Hermes page and the add-on's description and panel now
say "on-chain registered name" and use alice.x / bob.x as examples.
Add-on wording ships on its own OTA; no version bump here.
hermes.x's on-chain record was only a `u` redirect to silentmode.st/hermes/,
so the gateway bounced visitors into the silentmode.st subdirectory and the
standalone site in site-hermes-x/ was unreachable. The site now lives on
Sia at bns/hermes/ (record updated: s3 + u fallback to the ICANN mirror,
txid 3c0d65b6…), mirrored at silentmode.st/hermes-x/, and the Hermes
subpage carries the same sovereign-site note as Sirius and Theseus.
The Angie vhost's foreign-mirror list gains hermes-x, prometheus-x and
press-x so those keep their directory URLs; serve-site.mjs matches.
The sidebar panel used to be a launcher that opened the standalone Messages
window; now it IS the messenger — signin screen with "Open with Theseus ID"
(derives the Nostr key from the unlocked vault seed) or "Open an existing
account" (12/24-word mnemonic fallback), then a contacts + thread view with
a narrow-width single-column fallback. The ⧉ button still pops the standalone
window out, so the Ctrl+Shift+E flow keeps working.
- main.js: expose a global._hermesAPI with status/canUseVault/init/inbox/
send/markThreadRead/contacts* so the addon can proxy panel calls without
granting it ipcRenderer or crossing the HERMES_ONLY sender gate.
hermesEmit also fans out on an in-process __hermes_bus so the panel gets
live inbox/status pushes decoupled from hermesWin's lifetime.
- bundled-addons/hermes/index.js: proxies each allow-listed method onto
global._hermesAPI, forwards bus events to api.emit for the panel.
- panel.html: signin + app screens, mobile-style single column under 540px.
- Mark updated to the spread-wings variant: envelope sized up (34×22),
three tapered trails extending outside the viewBox so the wings don't
bunch at the back of the envelope at any size. Applied to the addon
icon (manifest base64), the panel header, both /hermes sites, and
site-hermes-x's favicon + mark SVGs.
Earlier iterations left the nested site/hermes/* on the superseded winged-
helmet design and the Theseus addon on acid-green despite the branding
tokens moving to sky-mid. This brings every surface to the same mark + colour:
- TheseusNavigator/bundled-addons/hermes/addon.json: both icon fields
(toolbar + panel declared) swap from acid-green helmet to sky-mid
(#38BDF8) tapered-trails envelope. Picks up on next addon re-copy.
- TheseusNavigator/bundled-addons/hermes/panel.html: inline SVG swapped
from helmet dome paths to the tilted-envelope + 3 tapered trails. Uses
currentColor so the panel's own colour token drives it.
- site/hermes/branding/mark.svg + mark-stroke.svg: standard (3 trails) +
simplified 16-20px (1 trail) variants match site-hermes-x/assets/.
- site/hermes/branding/index.html: six inline mark cells (hero + 5 size
cells) swapped in bulk.
- site/hermes/index.html: hero mark SVG swapped.
Grep confirms all seven surfaces now carry 'rotate(-22 32 32)' — the
tapered-trails signature. Nothing left on the old helmet.
Removes the 'Not Hermès' warning box, the 'collision check' callout, the
horsey-mascot don't-row, and the orange-luggage footer line. Orange moves
from an alternate / cautioned colour into the regular palette grid alongside
sky — three swatches (orange, orange-light, orange-deep).
Both the standalone hermes.x branding page and the silentmode.st/hermes
nested branding page updated in parallel so they stay consistent.
New site-hermes-x/ — standalone .x site (own nav, own assets, own OG tags),
sibling to site-theseus-x and site-sirius-x. Internal nav stays on hermes.x:
Overview, Messenger (preview + UI mockup), Branding (brand kit). The only
cross-link is 'Get Theseus' pointing at theseus.x where appropriate.
Mark redesigned: tilted winged envelope with three tapered speed-trails on
the back-left (top longest, bottom shortest). Default colour sky #38BDF8 —
swappable via --sky in site-hermes-x/assets/shared.css. Alternate orange
palette documented but not applied by default. Mark propagated to:
- site-hermes-x/assets/mark.svg + mark-stroke.svg (16-20px variant)
- site/hermes/{index.html, branding/{index.html, mark.svg, mark-stroke.svg}}
- TheseusNavigator/bundled-addons/hermes/{addon.json, panel.html}
Theseus addon moves out of the top-right extensions dock and into the
left-strip sidebar: panels[].side = 'left' + registerSidebarPanel({side:'left'}).
Appears alongside Mail/Pithos/Telegram, excluded from rightPanels() so the
extensions dock no longer lists it. Verified via sidebarState() CDP query —
hermes:main is no longer in the right-panels list.
site/hermes/ (the nested silentmode.st/hermes page) also updated to the new
mark for consistency; both the sovereign hermes.x and the silentmode-nested
page now show the same winged envelope.
<object data='mark.svg'> renders the SVG inside its own document — currentColor
there resolves against that document's own body, not the parent page's. The
hero mark was coming out black on dark and the on-acid/amber cells couldn't
re-colour the glyph.
Inlining the SVG puts the <svg> in the same document as .mark-xl / .mark-neg
/ .mark-amber, so each container's color tokens drive the stroke. Also added
an amber (unread-badge) swatch to the mark grid so the Hermes accent colour
has a visible example alongside the Silent Mode acid green.
Link downloads to mark.svg / mark-stroke.svg are unchanged — the files still
ship as standalone assets for third-party reuse.
Shortcut: Ctrl+Shift+M -> Ctrl+Shift+E. Chrome owns Ctrl+Shift+M as
'switch profile' and E matches the Greek spelling (Ermis).
Sidebar discoverability: new bundled add-on at bundled-addons/hermes/
registers a left-strip icon + launcher panel. The panel is a thin chrome
(mark + 'Open Messages' + shortcut hint) that forwards clicks through
api.onMessage -> ipcMain.emit('hermes-open-request') -> openHermesWindow.
All real messaging code stays in main.js — add-on is purely for discovery.
Address book: opt-in vCard (.vcf) import. Dialog in the Add Contact modal
lets the user pick a file; main.js parses BEGIN:VCARD blocks for X-BNS-NAME
/ X-NOSTR-NPUB / X-NOSTR-PUBKEY plus .bch names and npubs mentioned in
NOTE fields. Candidates are previewed per-contact with checkboxes; nothing
is added until the user confirms. Non-matching vCards are returned too (so
the user can still add manually) rather than silently dropped. Nothing is
uploaded; parsing is local.
site/hermes: status badge flipped from 'designed - not yet built' to
'MVP - desktop'. New 'What ships today' grid covers threaded chat, send by
name, address book, local history (all live) and mobile + Tor (next /
planned). Hero carries the new Ctrl+Shift+E shortcut and a link to
/hermes/branding.
site/hermes/branding: new page. Mark SVG (winged envelope, two variants
for 16-20px and 24-160px display sizes), palette (reuses Silent Mode
tokens + an amber accent that's distinctly warm-yellow, not Hermes-orange
— so it never collides with Hermès the fashion house), name explanation
(English Hermes / Greek Ermis), voice notes, do/don't table, MPL-2.0
attribution.
Hermes/MOBILE-RECOMMENDATION.md: analysis of three mobile paths (inside
Ariadne / standalone / hybrid). Recommendation is Option 1: ship as a
screen inside Ariadne. Reuses the wallet seed, aligns with the design
doc's 'one seed many purposes' architecture, lowest total cost.
- site/releases: 0.3.90 block above 0.3.89 with the desktop-home write-up
and the shipped SHA-256s (8c7bdea…, 6952b9c…).
- site/theseus + site-theseus-x: bump the download card to 0.3.90 and
update the fallback hashes to match. The theseus-x page continues to
fetch the live manifest; the fallback kept in sync for offline reads.
- site/releases-manifest.json: 0.3.90 entry prepended. The dl copy was
scp'd and dl-latest.sh regenerated the /latest/ redirects on the VPS.
Tabs go back into another window, and the sidebar gets Proton Mail, its
own order and real icons; the download pages and the update manifest
point at it.
A covenant-held name's certificate is at the covenant's address, so the
gateway's holdings - which looked for certificates among a wallet's coins -
never listed it under anyone. It is now listed under the key its verified
state names, with its expiry and where it is in its life.
covenant-registrar.js is one function per thing an owner does with the
built-in wallet: move a name into the covenant, renew, publish records,
transfer, release. Each announces the new state, and refuses a stale view
of the name rather than guess where the certificate went. Tested against a
simulated chain: every transaction is run through the VM, applied, and
read back through the resolver.
The name index fetched its transactions one at a time, which had grown to
most of half a minute before a registration could be quoted; it now
fetches eight at a time.
The addendum gains a section stating the rule that was implemented and
why the contest window and the commit's lifetime differ from the first
specification. The run records a front-runner registering a name first
and losing it to the older commit.
Flipping Prometheus from "designed, not yet built" scaffold to a live
catalogue. The APS1 open-publish protocol still lives in the design doc,
but holding Prometheus back from launch until arbitrary publishers can
mint listings turned out to be a story problem rather than a technical
one: the Silent Mode / affiliate projects that already ship ARE the
first catalogue, and shipping twelve real listings today gives
Prometheus a reason to exist while the open-publish layer lands.
What changed:
- Category counters stop showing 0 — the five categories we have listings
for show real numbers, the five we don't still read 0 (so the page
stays honest).
- A new #catalogue section after the category grid: 12 app cards grouped
by category, each with icon, name, publisher, blurb and status pills
(live / beta / bundled). Each links to its project's own site, not a
Prometheus-internal detail page — that's for the APS1 flow when it
ships.
- Hero pill: "designed · not yet built" → "live catalogue".
- Honest-status note at the bottom reframes today's drop as
operator-curated and names what opens next (APS1 record + submission
flow + trust lists).
- Absolute URLs for shared.css, favicon, OG image and every topnav link,
so the page renders identically whether a visitor hits silentmode.st,
the Sia bucket, prometheus.x via a resolver, or navigate.st's mirror.
The relative-URL version broke the Sia-hosted path when the on-chain
record was swapped from the u redirect to the s3 pointer.
The chain record swap and the Sia upload are already done outside this
commit — prometheus.x now serves bns/prometheus/ via BCNR; this file is
the content that landed in both the VPS mirror and the bucket. If/when
the APS1 flow lets anyone publish, the "0 listings" counters just start
counting up and the operator-curated note at the bottom goes away.
The font picker UI was removed back on 2026-09-22, but the toggle plumbing
stayed around — Fraunces + DM Sans in the Google Fonts URL, the Fraunces/
DM Sans CSS variables, the html[data-font-cmp="ubuntu"] override block,
the .font-picker pill styles, and the .topnav .font-picker media-query
rule on mobile. All of that is dead weight when Ubuntu is the only font
that ever renders.
- Google Fonts URL slimmed to Ubuntu + JetBrains Mono (saves two font
families' worth of downloads on first paint).
- --serif variable gone; --sans is now Ubuntu, --mono still JetBrains.
- h1/h2/h3/h4 use --sans (Ubuntu bold reads clean at display sizes; no
need for a serif split).
- Removed the full font-picker CSS block and every html[data-font-cmp=
"ubuntu"] rule from both home and docs — the attribute is a no-op now.
- Footer brand switched from --serif to --sans with a 600 weight so it
still carries editorial weight without the Fraunces load.
- js/theme.js kept as a no-op (both pages still <script src> it); its
attribute setter was dropped. Safe to remove the script tag later;
leaving it means pages that aren't touched this pass stay valid.
Same cleanup Sirius.X got last month, applied to Hephaestus for family
consistency.
Theseus serves bergamot.x from its own Sia bucket (bns/bergamot/), so a
href="/shared.css" on the page resolves to bns://bergamot.x/shared.css —
not to the silentmode.st root. The ICANN mirror hid this because /shared.css
exists at the silentmode.st root; via BNS the stylesheet 404'd and the
page rendered unstyled.
Copying the two root assets into the bucket keeps the one <link rel=
"stylesheet" href="/shared.css"> href working across all three serving
paths (ICANN, gateway, BNS).
The pithos.sia mirror moves from /pithos-sia/ to /pithos/, a name people
can remember; /pithos-sia/ and /pithos.sia/ redirect so old links keep
working.
Updates releases-manifest.json, releases/index.html, theseus/index.html
and site-theseus-x/index.html for the 0.3.78 release — the one with
the Ariadne plug-in toggle fix for 0.2.0 Just-me installs, the
Settings Middle East crash fix, covenant-held name resolution and
Pithos 0.3.16.
The addendum states the claim, the paid-entry rule, why a name inside the
covenant answers only to a verified state, and when a name stops
resolving. The registration bundle is rebuilt so the dashboard and market
index names by the same rules as the gateway.
Second SEO target after Sirius. Pithos positioned honestly as
"decentralized cloud storage you own" — the software is free, the
Sia storage underneath is pay-only-for-use (cents per GB/month).
Overpromising "free cloud storage" would catch Sirius-style backlash
when visitors hit the Sia bill, so the hook is sovereignty + 5–10×
cheaper, not free.
site-pithos-sia/index.html:
* Title / meta / H1 rewritten benefit-first: "Decentralized cloud
storage you own — Pithos". Keyword meta added.
* canonical set to /pithos-sia/ with trailing slash — matches
nginx's own 301 target (opposite of /sirius, which strips it).
* Hero copy leads with no-subscription, no-credit-card, pay-per-GB.
* FAQ expanded from 10 to 14 questions. Five new keyword-phrased
ones at the top ("Is Pithos really free?", "How much does Sia
cost compared to Dropbox?", "Is my data encrypted?", "Is Pithos
a good Dropbox alternative?", "Do I need a credit card?"); the
existing operational FAQ stays verbatim.
* JSON-LD: SoftwareApplication schema (version 0.3.12, price $0,
linked to Sia + s3d upstreams) + FAQPage mirroring all 14 Q&A.
Both parse cleanly.
* Top nav gains Compare link; cost FAQ links to the comparison.
site-pithos-sia/vs.html (new): 7-way comparison across Dropbox,
Google Drive, Mega, iCloud/OneDrive, Backblaze B2, Storj, and
Pithos+Sia. Columns for price per TB, signup, credit-card
requirement, encryption model, key custody, censorship risk,
S3-compat, open source, sync-across-devices, collab editing.
Includes BreadcrumbList + Article JSON-LD and a cost-at-size table
showing the 5–10× advantage at common storage sizes.
site/sitemap.xml: raised pithos to 0.95 priority (same tier as
sirius) and added /pithos-sia/vs. Trailing slashes corrected to
match the server's canonical form.