To-be 47: a change is built once, at its check (ADR 0350, issue 649)
mesh/merge-gate head 18ce19b85d71 merged into trunk 3a0b33501dfe — pass: the change touches no module of the mesh's graph
mesh/repo-check head 18ce19b85d71 merged into trunk 3a0b33501dfe — pass: its merge-check.sh passed
mesh/delivery delivered

The design the decision lands in did not name it, so the knowledge base could
not accept the record's insight with nothing citing it.
This commit is contained in:
2026-10-13 23:18:20 +02:00
parent 3a0b33501d
commit 18ce19b85d
@@ -4,6 +4,7 @@ status: in-progress
code: [mesh-controller, mesh-catalog modules/mesh-delivery]
updated: 2026-10-13
decisions:
- "ADR 0350"
- "ADR 0323"
- "ADR 0313"
- "ADR 0306"
@@ -57,7 +58,12 @@ commit's journey and in what order the steps are allowed.
group, the state table and their state, and nothing else.
- **The forge's holder** sets a commit's statuses, keeps the delivery's view as one comment on the pull
request, and appends to the commit's note under `refs/notes/mesh-plan`.
- **The build seat** builds and checks, asked by the controller as before.
- **The build seat** builds and checks, asked by the controller as before. **A change is built once** (ADR 0350):
a check that passes also builds what its merge would move into the artifact store's scratch namespace, under a
reuse key (the source fingerprint and the builder's version), and the walk of the merge commit copies a build
of the same key, which the check's verdict names, by digest instead of building. Otherwise the walk builds and
says why, per module, in its record. Check builds go when the walk answering the merge ends, when the pull
request closes unmerged, and after seven days.
## A delivery