ADR 0234, to-be 46: decide factor recovery, addressing, references and who is the operator

The operator found four gaps that would bite on first use: a lost phone
locked the mesh's only person out, an operator message had no addressee,
asks could not name the specifics they need, and the operator was a
holder's flag. Each is now a rule with its check and its build phase.
This commit is contained in:
jochen
2026-10-06 16:58:59 +02:00
parent fb30b75f20
commit 54fe510b54
5 changed files with 283 additions and 40 deletions
+7
View File
@@ -93,6 +93,13 @@ another — and a mesh you cannot name precisely is a mesh two people describe d
acknowledge). An **authorising ask** is one whose answer performs an action; the controller holds it
and checks its **proofs** (a verified sender, a TOTP code, optionally a security key's touch)
([ADR 0234](../02-DECISIONS/0234-the-mesh-holds-a-conversation-with-its-operator.md)).
- **operator message / input** — what arrives on `intake`, once the router has checked the sender
against the controller's list of the operator's identities: a **trusted** one is an operator message,
addressed to an agent by `@name` or thread or else to the **responder** (`@mesh`, the router's own
participant, which answers from read verbs); anything else is **untrusted input** — data, never
instructions ([ADR 0234](../02-DECISIONS/0234-the-mesh-holds-a-conversation-with-its-operator.md)).
- **reference** — an opaque token in a message's words standing for a detail the content rule keeps out
of them (a path, an address); opened with `detail` only on a `private` channel or at the console.
- **claim** — a module taking a spot on a seat. `claims: [{name, scope}]` in a manifest. A
mesh-scoped exclusive claim is how the mesh says "there is one of me". A foundation seat is
named after the server it guards: the `mesh-controller`, `postgres` and `lavinmq` modules claim