Reconcile: adopt initialization's consolidated HQ as canonical, re-home this session's new work #24

Merged
jschoubben merged 177 commits from reconcile-init-into-main into main 2026-09-05 10:27:11 +00:00
Showing only changes of commit fbf5b1d04b - Show all commits
+27 -5
View File
@@ -115,6 +115,33 @@ states for an agent's config directory, with the root standing in for it.
a licence is observed and its binding changed; the binding is then declared as usual. Nothing here
grows a conditional in the declaration language.
## What it remembers, and where
**A session's memory lives in its context root**, beside its engram and its tools. That is the
same rule as everything else here rather than a new one: the root is the whole of what makes one
session a different agent from another, and memory is part of what makes it *that* agent.
**The mesh session's memory is its own.** It is not assembled from the node sessions on demand,
and it is not a view over theirs. What the mesh has been asked, and what it worked out, is held
in the mesh's root — not in the root of the node that happens to host it.
**That distinction is the point of putting it there.** The control-plane node runs two sessions
on one machine. If memory belonged to the machine rather than to the root, they would share it,
and the mesh's recollection of a fortnight of questions would be indistinguishable from that
node's own — which is the collision ADR 0026 exists to avoid, arriving through the back door.
**The root holds two kinds of thing, and confusing them destroys the memory.** The engram and the
tools are **declared**: the mesh says what they are and the host writes them, so editing one on
the machine survives until the next heartbeat and no longer
([ADR 0011](../../02-DECISIONS/0011-managed-files-are-generated-never-edited.md)). The memory is
**written by the session itself** and is declared by nobody — the mesh does not get to say what a
session remembers, and a mechanism that regenerates the root wholesale would erase a fortnight of
it on the next pass, silently, while reporting success.
So the root is not uniformly managed, and **which parts are must be explicit rather than
inferred**. A session's memory is its own output, kept across restarts, backed up as data rather
than reproduced from a declaration — because there is nothing to reproduce it from.
## What the mesh session knows
**It holds the design record by reading it**
@@ -182,11 +209,6 @@ stopped telling the truth.
## Deliberately not decided
**Whether the mesh session's memory is its own or assembled from the node sessions each time.**
It remembers what it has been asked, which is settled. Whether *what the mesh knows* is a thing it
holds or a thing it gathers on demand is a real question with a cost either way, and nothing here
depends on the answer yet.
**How a person's identity reaches a session.** Callers are distinguished, but who a caller *is*,
and whether a session should act differently for different people, is the human-agent question
ADR 0001 leaves open and this does not close.