Skip to content

docs: correct .env.example's reticulum node id derivation (RE8) - #898

Merged
l5yth merged 1 commit into
l5yth:mainfrom
eknuth:env-example-re8-wording
Aug 28, 2026
Merged

l5yth merged 1 commit into
l5yth:mainfrom
eknuth:env-example-re8-wording

Conversation

@eknuth

@eknuth eknuth commented Aug 28, 2026

Copy link
Copy Markdown
Contributor

.env.example still described the #896 model — the ingestor owning an RNS identity and deriving its !xxxxxxxx from "the transport identity already in RETICULUM_CONFIG_DIR".

#897 shipped the opposite. SPEC RE8 excludes the transport identity from the pick, because RNS generates it as an independent keypair that matches none of the operator's announced destinations — keying on it registered !fbf8e338 for a host whose primary identity was 27716218…. The id is the discovered primary identity, the one announcing the most destinations on the machine.

README.md says this correctly ("It is not the transport identity, and not the hash rnstatus prints as 'Transport Instance'"). .env.example contradicted it in both places it mentions the derivation, and an operator setting the variable reads .env.example, not the README.

Also carries over the strands the old row caveat #897 added to README.md and CHANGELOG.md, since .env.example is where an operator is standing when they set the variable that moves the id.

Docs only — no behavior change.

Tests

Two guards added to TestReticulumDeploymentSurface, both negative-tested against main where they correctly fail:

  • test_docs_do_not_key_the_ingestor_on_the_transport_identity — README and .env.example must not derive the id "from the transport identity", and must name the primary identity.
  • test_docs_warn_that_changing_the_id_strands_the_old_row
$ python -m pytest -q
1443 passed, 1 warning in 35.05s

$ black --check tests/ data/
All done! ✨ 🍰 ✨
91 files would be left unchanged.

https://claude.ai/code/session_01F8MHsE7xT4BhcQxPJf2AUR

.env.example still described the l5yth#896 model: the ingestor owning an RNS
identity and deriving its !xxxxxxxx from "the transport identity already
in RETICULUM_CONFIG_DIR". l5yth#897 shipped the opposite. RE8 excludes the
transport identity from the pick, because RNS generates it as an
independent keypair that matches none of the operator's announced
destinations; the id is the discovered primary identity, the one
announcing the most destinations on the machine. README says this
correctly and .env.example contradicted it, pointing operators at the
hash rnstatus prints as "Transport Instance".

The strands-the-old-row caveat l5yth#897 added to README and CHANGELOG is
carried over too, since .env.example is where an operator is standing
when they set the variable that moves the id.

Two guards in the deployment-surface class, both negative-tested against
main, where they correctly fail.

pytest 1443 passed; black clean.
@codecov

codecov Bot commented Aug 28, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ All tests successful. No failed tests found.

📢 Thoughts on this report? Let us know!

@l5yth
l5yth merged commit 7fdbd94 into l5yth:main Aug 28, 2026
15 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants