-
Morphit v1.16.6
StableAll checks were successfulmorphit-ci / Supply-chain audit gate (fail on new high/critical) (push) Successful in 17smorphit-ci / TypeScript typecheck (sweep all workspaces) (push) Successful in 35smorphit-ci / apps/web svelte-check (svelte-kit sync + svelte-aware tsc) (push) Successful in 29smorphit-ci / Integration tests (real Postgres 16) (push) Successful in 40smorphit-ci / ansible-lint (playbook quality gate) (push) Successful in 11smorphit-ci / Smoke suite (run-smokes.sh, triple-pulse) (push) Successful in 22m31smorphit-release / Build + publish release tarball (push) Successful in 32m51sreleased this
2026-09-06 03:37:18 +00:00 | 31 commits to main since this releaseMorphit v1.16.6
A privacy-critical fix. A hidden-only, zero-clearnet instance was fetching its
own software upgrade over clearnet (git.agorise.net, with a Codeberg probe) instead
of over Tor/I2P. This release makes a hidden-only node resolve its upgrade entirely
over hidden services — or refuse — and say exactly which hidden gateways it used.
Ship this immediately if you run any hidden-only node.Fixed
- Hidden-only upgrades no longer touch clearnet. The upgrade's hidden-only
detection had two faults, each enough to send a zero-clearnet node down the
clearnet path:- It read
morphit.config.env, but the RPC pool that signals hidden-only
(MORPHIT_INDEXER_RPC_ENDPOINTS) lives inindexer.env— so it never found
the key and defaulted to clearnet. - Even against the right file, the value-matching regex used
\s*, which
matches newlines, so an emptyMORPHIT_INDEXER_RPC_ENDPOINTS=captured the
next config line and read as non-empty.
The result: on a hidden-only box the release was downloaded from git.agorise.net
over HTTPS. Both are fixed, and the detection is now authoritative: it asks
the local indexer's/v1/instanceforclearnet_eliminated— the same
seven-leg gate that earns the directory badge — and only falls back to the
(now correctly-read) config file if the indexer is unreachable. A hidden-only
node fetches the release over Tor/I2P from a federation peer's IPFS gateway,
verified against the on-chain SHA-256, and fails closed — it never falls
back to a clearnet mirror.
- It read
Changed
- The upgrade now names the hidden services it used. On a hidden-only node it
reports the IPNS target, the hidden gateways it is fetching over (host + Tor/I2P
tag), and the gateway that served the verified tarball — and states plainly that
no clearnet host was touched. No more guessing where the bytes came from.
Notes
- No behaviour change for clearnet instances; no protocol change; no migration.
- New
hidden-upgrade-detection-smoke(13 checks) pins both faults closed: the
file heuristic keys off the right variable and can't be fooled by an empty
value, the detector prefersclearnet_eliminated, the caller reads
indexer.env, and the resolver reports the hidden gateway and states
"zero clearnet." - If you already upgraded a hidden-only node to v1.16.5 (which fetched over
clearnet), upgrading to v1.16.6 restores the hidden-only path for all future
upgrades.
Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
- Hidden-only upgrades no longer touch clearnet. The upgrade's hidden-only