diff --git a/00-META/process/07-feature-branches.md b/00-META/process/07-feature-branches.md index b0d12c06..e820c3aa 100644 --- a/00-META/process/07-feature-branches.md +++ b/00-META/process/07-feature-branches.md @@ -225,6 +225,10 @@ never into the running one, unless it blocks the running one. `Reviewed-by: at ` (the issue 1022 note gives its form). mesh-delivery reads it at every new head and puts it in the Approve's ask; a missing line, or one naming another commit, is said first in the ask. It is never a gate. + **A catalogue pull request that removes a module, or a subject a module names, is also tried against the + controller** (`mesh-controller.try` with mesh-controller's main), because the controller's own tests read the + catalogue: on 2026-10-20 mesh-catalog #381 removed the old delivery module, and every controller check failed + afterwards on a test of the catalogue's subjects until issue 1406 removed the name mesh-issues still listened to. 2. **The forge's merge checks run the integration tests again, as the gate** (`mesh/merge-gate`, `mesh/repo-check`). No second review: step 2 reviewed this tree. 3. **A check that fails** goes back to the same reviewer, continued by its id, with the failure, for **one more cycle** of step 2 with @@ -277,6 +281,12 @@ delivery: no machine receives it (issue 889 while it still starts one). The lead naming its pull requests, and removes what is left: no `feat/` branch and no `.work/` worktree survive. +**A failed plan's Retry is asked of the operator alone, never beside an Approve.** An Approve's merge starts a +plan, and the controller refuses a Retry while another plan runs; on 2026-10-20 the operator chose both at once, +the merge's plan started first, the chosen Retry was refused and nobody asked it again (issue 1408). So the lead +never tells the operator to answer a Retry while an Approve is open, and reads the failed plan again after the +answer: a Retry refused is asked again once the other plan ends. + ## Models | Who | Model | Why | @@ -300,7 +310,7 @@ on, with when it started and its bound. |---|---|---| | a fixing agent's issue | 30 minutes | ask it where it stands; split or take over | | the review | 15 minutes a round | ask the reviewer; stop at round 3 | -| a merge check | 15 minutes | read the build queue (`mesh-controller.queue`) and the check's log | +| a merge check | 15 minutes | read `mesh-delivery.show` (its state and verdict), then the check's log; the build queue (`mesh-controller.queue`) never lists a running check | | the Approve's ask | 5 minutes after both checks pass | read `mesh-delivery.show`: an ask not raised is a fault, said to the operator | | a merge after the Approve | 5 minutes | read `mesh-delivery.show` for the delivery | | a delivery plan | its class's budget (`mesh-delivery.times`), at most 30 minutes | read `mesh-controller.plans`, then `mesh-delivery.stalled` | @@ -319,6 +329,10 @@ the lead, when the state changes or the wait passes its bound. The lead never sl 2026-10-19 one watcher sent on to three pull requests in turn missed that the third's checks had passed at 04:58, and the lead told the operator for 15 minutes that they were still running. The next wait gets a fresh watcher, and before a report the watcher reads the owning verb once more and says only what it says now. +**An ask is said to exist only after it is read on the router.** Before the lead tells the operator that an +Approve, a Retry or a Release waits for them, it reads `operator-channel.asks` and finds that ask open by its key; +on 2026-10-20 an ask was named to the operator that the router did not hold. A merge the gate passed but whose +ask is not on the router is the fault of the Approve's wait in the table above. **Every ten minutes (the operator, 2026-10-17), every two minutes while a delivery plan runs, and at once when something lands, stops or needs the operator,** the lead reports, in one of the two layouts below (the operator, 2026-10-16: an overview 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 c4539db9..ff5655c8 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 @@ -4,6 +4,8 @@ status: in-progress code: [mesh-controller, mesh-catalog modules/mesh-delivery, mesh-delivery, mesh-host, mesh-sdk] updated: 2026-10-20 decisions: + - "ADR 0463" + - "ADR 0457" - "ADR 0453" - "ADR 0452" - "ADR 0450"