diff --git a/03-DESIGN/01-to-be/47-delivery-from-commit-to-delivered.md b/03-DESIGN/01-to-be/47-delivery-from-commit-to-delivered.md index c08118e2..abd25c87 100644 --- a/03-DESIGN/01-to-be/47-delivery-from-commit-to-delivered.md +++ b/03-DESIGN/01-to-be/47-delivery-from-commit-to-delivered.md @@ -631,14 +631,15 @@ pull request, and it owes the forge nothing. composition answer, the try ends as error, never as pass, naming what it could not validate. A check passes such a node with a warning (ADR 0593 §9); a try cannot, because it would then not say whether the check will pass. A try that ended as error keeps no verdict (ADR 0637 §3). -- **The indexer makes a try's candidate, on the checker's events.** The checker emits the checker's try events: one - when a whole try starts, carrying its members at their commits, and one when it ends. The indexer, the holder of - the seat `mesh-catalog`, consumes them and writes `candidates.` with one pull per member, its modules and - fingerprints from the previews, validated with the seat definitions the members carry, and deletes it at the - try's end. It reads no state of the checker's; at its start it recovers the tries still open through the - checker's tool that reads a try (ADR 0596 §1, §2, which a record changing ADR 0637 §4 is to carry). The - indexer's tools read and drop a try's candidate. The candidate is the try's alone: the check, the gate and the - forge bridge leave it alone, and the forge is owed no status and no Approve (ADR 0637 §4). +- **The indexer makes a try's candidate, on the checker's events.** For a whole try only, the checker emits + `try.started`, carrying the try's id and its members at their commits, and `try.ended`, carrying its id and its + state, on its stream `checks`. The indexer, the holder of the seat `mesh-catalog`, consumes them: on + `try.started` it writes `candidates.` with one pull per member, its modules and fingerprints from the + previews, validated with the seat definitions the members carry, and on `try.ended` it deletes it. It reads no + state of the checker's; at its start it recovers the tries still open through the checker's tool + `checker_tries` (ADR 0596 §1, §2; the record changing ADR 0637 §4). The indexer's tools read and drop a try's + candidate. The candidate is the try's alone: the check, the gate and the forge bridge leave it alone, and the + forge is owed no status and no Approve (ADR 0637 §4). - **A try and a check share kept verdicts.** The try computes each package's digest as the check does and keeps the verdict of each package it passed under that digest (ADR 0548 §5, ADR 0536 §1). The pull-request check of a tried head runs only the packages with no kept verdict for their digest, those a moved trunk or a new head