ADR 0100 accepted; the node host, connectivity, the node lifecycle and raising a mesh amended for a node adopted before it is converged

This commit is contained in:
2026-09-22 16:20:27 +02:00
parent 5fc3cbde4c
commit 111456abb5
7 changed files with 70 additions and 10 deletions
+15 -1
View File
@@ -2,8 +2,9 @@
layer: to-be
status: in-progress
code: [mesh-host]
updated: 2026-09-21
updated: 2026-09-22
decisions:
- 02-DECISIONS/0100-a-node-in-use-is-adopted-before-it-is-converged.md
- 02-DECISIONS/0019-how-this-repository-works.md
- 02-DECISIONS/0004-a-node-and-how-it-joins.md
- 02-DECISIONS/0005-the-node-host.md
@@ -130,6 +131,19 @@ the link; never asked downward.
[`09-the-node-lifecycle.md`](09-the-node-lifecycle.md)**, in full and in one place. This document
is the component; that one is what happens to it.
## What it finds, on an adopted node
*2026-09-22, [ADR 0100](../../02-DECISIONS/0100-a-node-in-use-is-adopted-before-it-is-converged.md).* A declaration says whether the node is adopted. On an adopted node
the host does not replace a file it finds at a declared path: it records what was there — its
content, so the original is kept before anything is written — and holds the file as found. A
module's files are converged when that module is assigned, because assigning a module is
migrating it; the rest when the node is converged. The host's report says which files it is
holding rather than converging, so an adopted node never reads as converged. This is the
companion the host's ownership rule needed: *never touch what you did not create, unless adoption
made it yours — and while the node is adopted, keep it as you found it.* *How it is checked:*
unit tests hold the host to keeping a found file on an adopted node and replacing it on a
converged one, and the adoption bed asserts a found file byte for byte unchanged.
## Where a declaration comes from
One behaviour, two sources