argus/test
Silent Mode 9c8b2bfafe feat(gateway): a name's owner decides what its subdomains serve
Until now a subdomain served the folder its labels spelled out, and that was
the only thing it could ever do. There was no way to point one somewhere
else, send one to another site, or stop one answering — the mapping was a
convention with no override.

A verified hosts entry now decides: a different folder, a redirect, or
nothing at all. Block beats redirect beats path, so a host that is both
blocked and redirected stays blocked. The manifest is fetched only when the
request is actually for a subdomain, and the result — including the absence
of one — is cached for a minute, so the apex pays nothing and a name that
never published one pays one lookup per minute rather than one per request.
A manifest that fails to verify is treated exactly like no manifest: the
name keeps serving from its chain records instead of failing shut.

The folder derivation moves next to the picking rule and grows tests,
because getting it wrong does not raise an error — it quietly serves the
wrong bytes. The subtle parts are that labels reverse (DNS reads outward, a
path reads inward) and that a .bch name indexes as <label>.bch even though
normalizeName collapses it to a bare label; matching the bare label would
have served the bucket root for every subdomain of every .bch name.

/api/dns answers for a host too. A host with its own dns block owns its
record set outright, the way classic DNS works; one without inherits the
apex, the way everything else on BNS does.
2026-09-28 01:04:36 +02:00
..
bns-indexer.test.mjs Theseus navigator UI overhaul, BNS-only indexer, site restructure 2026-07-30 08:16:55 +02:00
chipnet-acceptance.mjs Initial commit — Silent Mode baseline (2026-07-29) 2026-07-29 13:54:34 +02:00
chipnet-escrow-refund.mjs Initial commit — Silent Mode baseline (2026-07-29) 2026-07-29 13:54:34 +02:00
chipnet-paybyqr.mjs Initial commit — Silent Mode baseline (2026-07-29) 2026-07-29 13:54:34 +02:00
connect-shape.test.mjs Initial commit — Silent Mode baseline (2026-07-29) 2026-07-29 13:54:34 +02:00
dns-server.test.mjs resolver: echo EDNS OPT record so strict clients stop failing 2026-08-02 01:19:09 +02:00
electrum-pool.test.mjs Initial commit — Silent Mode baseline (2026-07-29) 2026-07-29 13:54:34 +02:00
manifest-hosts.test.mjs feat(gateway): a name's owner decides what its subdomains serve 2026-09-28 01:04:36 +02:00
orders.test.mjs Initial commit — Silent Mode baseline (2026-07-29) 2026-07-29 13:54:34 +02:00
password-vault.test.mjs Snapshot in-progress work: Ariadne mobile, Theseus password manager, Hephaestus 2026-08-14 23:17:18 +02:00
plans.test.mjs Initial commit — Silent Mode baseline (2026-07-29) 2026-07-29 13:54:34 +02:00
portfolio-index.test.mjs Theseus navigator UI overhaul, BNS-only indexer, site restructure 2026-07-30 08:16:55 +02:00
record-picker.test.mjs feat(bns): 'p' reverse-proxy record type — mirror an upstream URL under a BNS name 2026-09-07 00:18:07 +02:00
register-tx.test.mjs Initial commit — Silent Mode baseline (2026-07-29) 2026-07-29 13:54:34 +02:00
registry-lifecycle.test.mjs Theseus navigator UI overhaul, BNS-only indexer, site restructure 2026-07-30 08:16:55 +02:00
tld-enforcement.test.mjs BNS: per-TLD on-chain registry, multi-beacon indexer, enforcement gate 2026-08-29 17:11:02 +02:00
tld-index.test.mjs BNS: per-TLD on-chain registry, multi-beacon indexer, enforcement gate 2026-08-29 17:11:02 +02:00