Resolve a group's order rules by precedence, not as a cycle (hq issue 309)
mesh/merge-gate pass: builds build-agent, mesh-controller, route-proxy → ace, g14, novox, shanks; no bus step; every machine composes with the change as it…
mesh/repo-check pass: its merge-check.sh passed
mesh/delivery delivered

The group feat/a-machine-joins-through-the-tunnel was refused: the
controller's member moved the build agent, which builds the node-engine
(built by: controller first), and the node-engine goes before the
controller (engine before controller: engine first). Both rules applied
to one pair in opposite directions, and every two-way pair was a cycle.

Rules now have a precedence (hq ADR 0249): a declared after: line, then
what the graph and the change say (built by, version skew), then the
rollout default engine-before-controller. The higher rule decides the
pair, which says what it won over. Rules of one rank both ways are still
refused, as a contradiction naming both rules and how to declare the
order. TestReplay309 replays the group with only what orderOf had before.
This commit is contained in:
jochen
2026-10-08 10:43:42 +02:00
parent df653e9af0
commit c5a2edf04a
4 changed files with 256 additions and 16 deletions
+2 -1
View File
@@ -145,7 +145,8 @@ var ControllerVerbs = []Verb{
"removed": "the files among paths it deletes, comma-separated"}, []string{"repository", "paths"})},
{Name: "delivery-order", Description: "A delivery group's order (novox/hq ADR 0239): its members in the order " +
"they are delivered, every pair and why — declared, built by, version skew, engine before controller — and " +
"the cycle when the pairs contradict each other.",
"the rules each pair won over by precedence (ADR 0249); the cycle, and each contradiction no precedence " +
"resolves with how to declare the order, when the pairs contradict each other.",
Input: schema(map[string]string{"members": "the members, as JSON: [{id, repository, base, head, number, paths, " +
"module_dirs, module_dirs_said, removed, after}]"}, []string{"members"})},
{Name: "delivery-check", Description: "Ask the build seat for a delivery group's composed check (novox/hq ADR " +