Issues 213 and 223 resolved #347

Merged
mesh-admin merged 1 commits from issues/213-223-resolved into main 2026-10-04 00:19:22 +00:00
2 changed files with 32 additions and 3 deletions
Showing only changes of commit db71b83711 - Show all commits
@@ -1,10 +1,14 @@
---
status: open
status: resolved
opened: 2026-10-03
located-in:
- mesh-controller
- mesh-catalog
- mesh-host
fixed-by:
- mesh-host#86
- mesh-controller#252
- mesh-controller#253
- mesh-host#88
amended-design:
---
@@ -61,3 +65,16 @@ until the first lets go, and all plan work holds one advisory lock. mesh-control
controller's manifest as a Go bundle and a process. It waits on
[issue 223](../223-a-new-mesh-installs-its-controller-as-a-container/00-report.md), because with it a
new mesh cannot be installed.
## Resolved
Proven 2026-10-04 on the control machine: after the manifest change was merged and pushed, the host
created the controller's account, ran its preparation step, started the controller as a process,
found it up across both checks and removed the container. The controller now runs as its own account
from its bundle, no controller container remains, its seat answered throughout, and the merge's own
plan finished all three tiers under the new process.
One fault on the way, fixed before it could leave two controllers or none: the host read the account
not existing yet as a user database that did not answer — it matched the exit as text in a wording
its own runner did not use — so the first apply stopped at the account and the container kept serving,
which is the handover's safe failure (mesh-host#88).
@@ -1,9 +1,10 @@
---
status: located
status: resolved
opened: 2026-10-04
located-in:
- mesh-host
fixed-by:
- mesh-host#87
amended-design:
---
@@ -46,3 +47,14 @@ is the process form, and the controller answers its seat's verbs at the end.
Option 2, [ADR 0200](../../02-DECISIONS/0200-genesis-pivots-to-the-controller-as-a-container-and-the-first-push-hands-it-to-a-process.md):
genesis pivots to the controller as a container recorded under the name the process `replaces`, and
the first push hands it over.
## Resolved
Built as [ADR 0200](../../02-DECISIONS/0200-genesis-pivots-to-the-controller-as-a-container-and-the-first-push-hands-it-to-a-process.md)
decided: genesis reads only the controller's process from the manifest, builds the controller's image
from its repository, and pivots to a container of its own shape recorded under the id the process
`replaces`; an older controller in the image form still builds as before. **How it is checked:** the
installer's tests build the genesis form from the controller's real manifest, and apply the
controller's first process declaration over the recorded container with the host's own apply — the
process starts, the container is removed, one controller remains. A real install from nothing has not
been run since; the handover it ends in was proven live on the running mesh (issue 213).