Design 47: a move of the trunk asks every active check again, one at a time per pull request (ADR 0395, issue 888)
mesh/delivery superseded: a newer head of the same pull request
mesh/merge-gate error: the check could not run: killed by hand
mesh/repo-check error: the check could not run: killed by hand

This commit is contained in:
2026-10-16 11:40:14 +02:00
parent b9af4e373d
commit 09ec150bd6
@@ -4,6 +4,7 @@ status: in-progress
code: [mesh-controller, mesh-catalog modules/mesh-delivery]
updated: 2026-10-16
decisions:
- "ADR 0395"
- "ADR 0382"
- "ADR 0350"
- "ADR 0335"
@@ -389,6 +390,17 @@ only once it is built.
A group's state is derived from its members and its composed check, and is shown, never stored apart from
them.
## A move of the trunk asks every check again
*ADR 0395, changing ADR 0323 §4.* When the forge's holder hears a repository's trunk move, mesh-delivery asks the
check of every active open pull request into that trunk against its new head at once, so a verdict is current by
the time anyone looks. A pull request has at most one check at a time: a check against an older trunk commit,
waiting or running, is dropped or ended when a newer one is asked for it, as a new head already ends its old head's
check (issue 726). The build queue keeps delivery builds first; then checks of pull requests marked ready, then the
rest, the most recently pushed first. A pull request with no push and no ready mark for 7 days is left out until a
push, a ready mark or a recheck wakes it. A recheck also takes a delivery that is still proposed (issue 888).
## What every transition does
In this order, each by its owner: