Check a delivery group's member beside its siblings' merges, judged by the group's controller (issue 867, ADR 0382)
mesh/merge-gate head 37fd73f3781e merged into trunk 4446027108fd — pass: builds build-agent, mesh-controller → ace, g14, novox, shanks; no bus step; every …
mesh/repo-check head 37fd73f3781e merged into trunk 4446027108fd — pass: its merge-check.sh passed
mesh/delivery delivered
mesh/delivery-group group fix/867-group-siblings delivered: every member is delivered

A mesh-host change and a mesh-controller change that need each other could not both pass their own checks: each read the other at its base. The check now asks mesh-delivery for the group's open siblings into a base of the same name, reads each at its head merged onto its base, builds the judge from a controller sibling's merge in the isolated judge environment keyed on its inputs, and names the siblings in the verdict. With no answer from mesh-delivery the verdict says it could not learn them; a pull request with no sibling is checked as before. TestReplay867 replays the failure.

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
2026-10-15 23:27:12 +00:00
co-authored by Claude
parent 7543f64911
commit 37fd73f378
12 changed files with 1277 additions and 19 deletions
+7
View File
@@ -301,6 +301,13 @@ type Checked struct {
BesideAt map[string]string `json:"beside-at,omitempty"`
// Validator says which node-engine validator the judge of a release-branch check was built with (ADR 0358 §2).
Validator string `json:"validator,omitempty"`
// Siblings are the other pull requests of the delivery group the check read beside it (novox/hq ADR 0382 §4), each
// with its head and the base commit it was merged onto; SiblingsUnknown is why it could not learn them, set only
// then; JudgeFrom says where the judge came from when the group made it. The forge's holder keeps Siblings per
// open pull request (§5). All omitted for a check that read none.
Siblings []CheckSibling `json:"siblings,omitempty"`
SiblingsUnknown string `json:"siblings_unknown,omitempty"`
JudgeFrom string `json:"judge_from,omitempty"`
// Built are the builds the check made for its merge, each with its reuse key and digests, or why not
// (novox/hq ADR 0350 §1): what the walk of the merge takes instead of building.
Built []CheckBuilt `json:"built,omitempty"`