Keep recorded accounts by their keys, and name them by place, never by name (ADR 0317 review)
mesh/merge-gate pass: the change touches no module of the mesh's graph
mesh/repo-check pass: its merge-check.sh passed
mesh/delivery delivered

This commit is contained in:
jochen
2026-10-12 12:45:00 +02:00
parent ef452a7219
commit 953038833c
@@ -110,8 +110,9 @@ and per key the account, its identity, its incoming server and its outgoing serv
stays in the profile.
**An account the profile already holds is adopted, not added twice** (ADR 0317, changing ADR 0316 §11 and §12).
At every apply, each declared account is first matched by its address against the default identities of the
profile in use:
At every apply, an account the module recorded on that node, adopted or created, is kept by its recorded keys,
and an account under `mesh_` keys is always the module's creation, so a lost record is rebuilt as it was.
Every other declared account is matched by its address against the default identities of the profile in use:
| the profile holds the address | the module |
|---|---|
@@ -123,7 +124,8 @@ The optional `key` is the one field ADR 0317 adds to an entry of `accounts`: the
node, used only to settle an ambiguous match, and refused unless that key is in the list, has the declared
address and is not Owl's.
An adopted account keeps its mail, its folder, filter and cache preferences, and its kept sign-in: the module
The module's status names each declared account by its place in the setting and its keys, never by an address,
a host or a name. An adopted account keeps its mail, its folder, filter and cache preferences, and its kept sign-in: the module
writes only the fields the setting names. When it leaves the setting, its keys are released: dropped from the
user.js and the record, the account left in the profile as the person's. Only an account the module created is
removed from the list.