ADR 0162: a merge produces a tiered plan the mesh keeps; dependencies are one relation; design 30; issues 184, 186

This commit is contained in:
2026-10-01 17:45:48 +02:00
parent 6a5f68d11f
commit b0a74b23fd
5 changed files with 124 additions and 3 deletions
@@ -1,7 +1,7 @@
---
status: open
status: located
opened: 2026-10-01
located-in: [mesh-controller internal/link/serve.go (act handles one message at a time; sourceMoved waits for every build the merge asks)]
located-in: [mesh-controller cmd/mesh-controller/upgrades.go (the merge handler builds inside the receive loop)]
fixed-by:
amended-design: []
---
@@ -50,3 +50,9 @@ busy should say so where `status` is read.
and a build outcome for another module arrive together, and the outcome is recorded before the
build finishes; live, the controller's log during the next catalogue merge shows registrations
interleaved with the merge's own.
## Decided, 2026-10-01
[ADR 0162](../../02-DECISIONS/0162-a-merge-produces-a-tiered-plan-the-mesh-keeps.md): a merge
produces a tiered plan the store keeps; the handler asks the first tier and returns; outcomes advance
the plan; a controller replaced mid-plan resumes it. The loop is never held by a build again.
@@ -65,3 +65,10 @@ this report asks for.
*How this would be checked:* a builder restarted between an ask and its build still builds it; a
merge of a dependent repository before its prerequisite is held and named; `builds` lists asked,
running and built.
## Decided, 2026-10-01
The third fault is answered by [ADR 0162](../../02-DECISIONS/0162-a-merge-produces-a-tiered-plan-the-mesh-keeps.md):
a release across repositories is a plan whose dependency edges cross repositories, sorted into
tiers and deployed tier by tier, read in `status`. The order a person kept is the order the tiers
give.