The gate keeps a merge it hears before it holds its seat and catches source.main up when it does, so a missed merge no longer leaves the checker on an old trunk (issue 1726) #474

Open
mesh-tools wants to merge 2 commits from fix/1726-trunk-catch-up into main
Member

Issue 1726, notes 29-32: at 13:11 on 2026-10-24 the gate acknowledged unread the merges of hq#472 and mesh-catalog#471 heard before it held its seat, and its adopt left MergedAt zero, so source.main kept old trunks and every check in those repositories was judged on them; the operator's Approve of mesh-catalog#472 merged nothing. An event heard while the seat is undecided is offered again, not dropped; adopt dates the merge once; SourceCatchUp weighs each repository's newest merge against source.main when the gate comes to hold its seat. Tests 1726c/AC1-AC4 fail on main. Try try-1792842916125019643 passed on trunk 545c72bb.

Reviewed-by: review-1726c@shanks at 40da368ee3
Pushed-by: lead-47@shanks

Issue 1726, notes 29-32: at 13:11 on 2026-10-24 the gate acknowledged unread the merges of hq#472 and mesh-catalog#471 heard before it held its seat, and its adopt left MergedAt zero, so source.main kept old trunks and every check in those repositories was judged on them; the operator's Approve of mesh-catalog#472 merged nothing. An event heard while the seat is undecided is offered again, not dropped; adopt dates the merge once; SourceCatchUp weighs each repository's newest merge against source.main when the gate comes to hold its seat. Tests 1726c/AC1-AC4 fail on main. Try try-1792842916125019643 passed on trunk 545c72bb. Reviewed-by: review-1726c@shanks at 40da368ee34e0828b417473a0bf82139d48388c0 Pushed-by: lead-47@shanks
mesh-tools added 2 commits 2026-10-24 12:06:55 +00:00
The checker takes a repository's trunk head only from the gate's source.main. On 2026-10-24 gitea's
restarted poll announced mesh-catalog #471's merge while the gate was starting and could not yet tell
whether it held the seat; the gate acknowledged the event unread. It then adopted the controller's walk
of the merge commit, which carries no merge time, so every older merge of the repository looked newer
and source.main was never moved: #472 was checked on the trunk before #471 and its merge refused.

- An event heard before the gate can tell whether it holds the seat is offered again, not taken.
- An adopted merge is dated by its walk's creation, so it settles into source.main as a forge merge does.
- Each time the gate comes to hold the seat it weighs the newest merge of each repository against
  source.main once more, so a merge marked there and never written (as #471) is written; never backwards.
Date an adopted merge once, by the walk it was adopted from, so a later walk it follows never makes it look newer than a forge merge heard after it (issue 1726, review)
mesh/delivery ready: it delivers once merged
mesh/check pass 40da368ee34e on 25176e1ccdb3 | unit 31 run, 4404 kept | integration 0 run, 4477 kept | over bound: unit | composition passed in 1ms on…
40da368ee3
Author
Member

Delivery novox/mesh-catalog@40da368ee34e — ready since 2026-10-24T12:09:43Z

Transitions

  • 2026-10-24 12:06 (new) → proposed (announced): novox/mesh-catalog#474's head announced
  • 2026-10-24 12:09 proposed → checked (checked): a verdict names this commit and the trunk's head as its trunk commit
  • 2026-10-24 12:09 checked → ready (accepted): the gate passed or warned, and the repository's own check did not fail

The commit's note under refs/notes/mesh-plan keeps every transition: git log --notes=mesh-plan.

<!-- mesh-delivery:view --> **Delivery** `novox/mesh-catalog@40da368ee34e` — **ready** since 2026-10-24T12:09:43Z **Transitions** - 2026-10-24 12:06 (new) → proposed (announced): novox/mesh-catalog#474's head announced - 2026-10-24 12:09 proposed → checked (checked): a verdict names this commit and the trunk's head as its trunk commit - 2026-10-24 12:09 checked → ready (accepted): the gate passed or warned, and the repository's own check did not fail The commit's note under `refs/notes/mesh-plan` keeps every transition: `git log --notes=mesh-plan`.
All checks were successful
mesh/delivery ready: it delivers once merged
mesh/check pass 40da368ee34e on 25176e1ccdb3 | unit 31 run, 4404 kept | integration 0 run, 4477 kept | over bound: unit | composition passed in 1ms on…
You are not authorized to merge this pull request.
This pull request can be merged automatically.
View command line instructions

Checkout

From your project repository, check out a new branch and test the changes.
git fetch -u origin fix/1726-trunk-catch-up:fix/1726-trunk-catch-up
git checkout fix/1726-trunk-catch-up
Sign in to join this conversation.
No Reviewers
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: novox/mesh-catalog#474