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.
The Sirius.X / Theseus.X / Ariadne.X / Hephaestus.X links in the family
topnavs and body copy were written as full https URLs — href="https://sirius.x/".
In Theseus's own browser (where the current page is served over the bns://
scheme) that absolute URL triggers the gateway-fallback path on top of the
current host, producing URLs like bns://theseus.x/bns/sirius.x/ that then
accumulate segments as the user clicks around.
Switched 56 cross-family link hrefs to protocol-relative (href="//sirius.x/"
etc.). Protocol-relative URLs inherit the scheme of the current page, so:
- In Theseus on bns://theseus.x/ the link resolves to bns://sirius.x/ —
direct BCNR, no gateway rewrite, no URL accumulation.
- On the silentmode.st ICANN mirror it resolves to https://sirius.x/ —
unchanged from the previous behaviour.
Only the four sibling .X hosts were swapped; silentmode.st, dl.silentmode.st,
code.silentmode.st, navigate.st, and every forge or API URL still carry
their explicit scheme.
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.
A developer / agent landing page on both .X sites so an LLM or a human
porting the resolver has everything in one place and does not need the
public gateway to understand how to talk to BNS.
ariadne.x/dev/ is the canonical page. Covers:
- Why: resolve names directly from the chain, with no operator in the
middle.
- BNS1 in one page: beacons, cash-token certificates, OP_RETURN payloads,
REG/UPD/REL, chipnet network constants, the six indexer rules
(including the 2026-10-04 one-message rule).
- The record-type table — u, h, a, ip, p, s3, tls, c, bl.
- A minimum viable resolver in under 100 lines of Node.js that pulls the
beacon's history, parses the OP_RETURNs, and prints a name's records.
- Pointers to every production implementation (Argus JS, Ariadne Kotlin,
the Windows Thread, the gateway) and every spec document on the forge.
- Public endpoints with a trust note: convenience, not consensus.
- Three paths for embedding Ariadne's Thread in your own app: chain-install
the Windows service, import the resolver library directly, or call the
local HTTP API; platform coverage table; MPL-2.0 licence note.
theseus.x/dev/ is a shorter page that cross-links to ariadne.x/dev/ for
the resolver work and covers Theseus-specific topics inline — the
extension publishing path (register a .x name on sirius.x, PUT signed
tarball to /api/ext, Theseus verifies the signature against the
on-chain owner before anything runs) and the first-party plug-in
surface.
Both pages are wired into the home-page topnav, mobile dropdown, and
footer Product column.
- site/releases: 0.3.77 block above 0.3.76 with the Translator engine
radio, CF Bot Fight error page and Pithos 0.3.13 bundle, SHAs
ab4135a9… (installer) + a01ad6b8… (portable).
- site/theseus and site-theseus-x: bump the download card to 0.3.77 and
the fallback hashes to match. The theseus-x page already fetches the
live manifest; the fallback stays in sync for offline reads and the
Sia mirror.
- site/releases-manifest.json: 0.3.77 entry prepended for the main
manifest; the dl copy was scp'd and dl-latest.sh regenerated the
/latest/ redirects on the VPS.
Setup 9e5c4b6b…b7e9, portable b223eb14…5c49. Pithos opens at
pithos.sia/<user>/<drive>/<folder>, music keeps playing in background
tabs, a widened left panel no longer squeezes the page; bundles Pithos
0.3.10 and Aegis 0.31.0.
A parallel ship pass raced this one on the same version string: the
other session built 0.3.75 from 4bfef3a (Aegis 0.29.0) and scp'd its
binaries over mine. The first reconcile pass accepted the on-disk
hashes under the "both built from the same HEAD" assumption, but they
are different builds — mine includes d2ddee5 (Aegis 0.30.0) and the
master tip, theirs stops at 4bfef3a. The peer stood down, I re-scp'd
my binaries, and this commit pulls the manifest + the releases page +
theseus.x back to those hashes. The release notes already named
Aegis 0.30.0, which matches what the binaries actually bundle now.
Mobile phones were giving the topnav 130 px — three or four wrapped rows —
before the hero even started drawing. On a 375 x 812 viewport that cost
~16% of the first screen to redundant navigation, and the "Get Theseus" /
"Get for Android" CTAs duplicated download buttons that sit in the hero
one scroll away.
The new pattern:
- Desktop (>720 px) is unchanged. Theseus.X drops Brand + Whitepaper from
the topnav (they live in the deep footer), so the row is now brand +
Plug-ins + Extensions + Sirius.X + Get Theseus. Ariadne.X keeps the same
set it had.
- Mobile (<=720 px) collapses to a single ~58 px row: brand on the left,
a native <details><summary> hamburger on the right, nothing else. The
dropdown panel is right-anchored, pure HTML+CSS, no JS, keyboard-usable
via the summary's built-in semantics.
- Theseus dropdown: Plug-ins, Extensions, Sirius.X.
- Ariadne dropdown: Ariadne's Thread, Theseus.X, Sirius.X.
The hero + its primary CTA now fit above the fold on an iPhone 13 class
viewport, which is where this content needs to land first.
Manifest, releases page, download pages and theseus.x fallback text all point at
0.3.61 with the new hashes. Silentmode.st serves static; silentmode.bch mirror
follows via the 5-min Sia sync.
Manifest and download pages point at the new build. Silentmode.st serves
static; silentmode.bch mirror follows via the 5-min Sia sync; theseus.x's
fallback text and hashes match the 0.3.60 binaries so the page reads correctly
before the client-side manifest fetch overwrites them.
The topnav had both the Theseus.X brand mark and a "Home" link that
went to the same place — clicking either landed on the same page. The
brand mark is universally understood as the home affordance, so the
Home tab was just chrome noise between the mark and Plug-ins. Removed
across the home, Plug-ins and Extensions pages so the tab strip reads
as three distinct destinations instead of two-plus-a-repeat.
The IntersectionObserver-based spy only fired when a section entered a
narrow band 40–45% down the viewport. Short sections at the tail of a
page — Operator key and Roadmap on theseus.x/extensions, whatever came
last on the other pages — never made it into that band because the
page runs out of scroll before their top crosses 40%, so their sidebar
links stayed dim no matter how far the reader scrolled.
Rewrote the spy across every page with a sidebar (theseus.x home /
plug-ins / extensions and sirius.x home / tld / theseus / docs / admin
/ brand): it listens to window scroll, picks the last section whose
top has crossed 35% of the viewport, and — when the window is scrolled
to within 4px of the bottom — snaps to the final section regardless of
where its top is. Every link in the rail can now activate.
theseus.x/extensions also had the spy IIFE bundled with the manifest
loader in one <script> block near the middle of the page, so at run
time the parser hadn't yet reached the last three sections and only
Bundled/Community/Build were ever registered. Moved the spy to its own
<script> just before </body> so it sees every section that ships.
The sidebar's body padding-left was pushing the whole page — hero,
cards, footer — to the right of centre, off the axis of the hero
title. Removed the body reserve; the sidebar is now a
pointer-events:none overlay on top of the page. Content wraps back to
the middle of the viewport regardless of sidebar width.
Links float at opacity 0.35 by default so the sidebar reads as chrome
rather than a panel — the section text underneath stays legible. On
hover a link snaps to full opacity, picks up an ink colour and a
subtle blurred backdrop so it doesn't compete with the content. The
active-section link keeps the acid tint at 0.85 and finishes to 1 on
hover. Icon rail and mobile bar unchanged.
Sirius.X: the Theseus tab link in the topnav now reads Theseus.X with
the .X in acid green, matching the naming everywhere else in the
ecosystem.
Sidebar redesign:
- Wide (>1180px): labels only, no icons, no border-left outline, no
background tint on active — just the label going acid green when
the section is in view. Sidebar moved down (+34px top padding) so
the first link doesn't crowd the topnav.
- Medium (720-1180px): icon rail only.
- Mobile (<720px): bottom bar with icons only.
- Background dropped from rgba(.82) to rgba(.42) — the backdrop-blur
already carries the separation, less panel-heavy against the hero.
- "On this page" section header dropped: the sidebar is close enough
to the topnav that the label reads as chrome rather than nav.
- Active state is now colour only (acid on the label); the left
border stripe and highlight background are gone.
Nav path fix (broken link on the silentmode.st mirror):
Root-absolute nav paths like /plug-ins/ resolved to
silentmode.st/plug-ins/ (404) instead of silentmode.st/theseus/plug-ins/
when a reader browsed the fallback mirror. Rewrote every topnav link,
cross-page prose link and favicon href to relative form
(plug-ins/, ../plug-ins/, assets/favicon.svg, …). Works on both the
BCNR name and the silentmode.st/theseus/ mount.
theseus.x, sirius.x and hephaestus.x had a 1px border-bottom under the
sticky/fixed topnav that read as a visible separator between the
navigation and the page. The topnav's own translucent-blur backdrop is
enough of a distinction already — the line is redundant and, on the
theseus.x sidebar layout, made the top of the sidebar look like it was
overhanging the header.
theseus.x tabs also had a "Sirius .X" gap because the topnav <a> is a
flex container and the icon + "Sirius" text + ".X" span were three
flex items with a 6px gap between each. Wrapping the label in one
<span> collapses the gap to a single space between icon and label.
Sidebar border-right and mobile bottom-bar border-top also dropped —
the panel tint carries the boundary; a hard line was too heavy.
Sidebar was drawing above the topnav border line — the sticky topnav
only spanned the content column, so where the sidebar met it a T-shape
break was visible. Topnav is now position:fixed spanning the full page
width, and the sidebar is anchored to var(--tn-h)=52px so it sits
cleanly below the topnav border on all breakpoints.
Also: the sirius.x tab is now capitalised Sirius.X and carries its own
brand mark (the 4-point sparkle from sirius.x's own favicon) so the
tabs read as three named things — Home, Plug-ins, Extensions, Sirius.X
— not one lowercase outlier. A shared .topnav a .g rule paints the .X
suffix acid green.