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

Merged
jschoubben merged 2 commits from fix/1726-trunk-catch-up into main 2026-10-24 19:47:47 +00:00
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/check pass 40da368ee34e on ee216e4e63f1 | unit 246 run, 4189 kept | integration 228 run, 4249 kept | over bound: unit, integration (slowest unit …
mesh/delivery delivered
40da368ee3
Author
Member

Delivery novox/mesh-catalog@40da368ee34e — delivered since 2026-10-24T19:52:26Z

Delivery plan — builds mesh-delivery-gate → novox; no bus step

  • tier 0: mesh-delivery-gate
  • novox: receives mesh-delivery-gate

Machines

  • mesh-delivery-gate on every machine running it: sent

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
  • 2026-10-24 19:51 ready → published (merged): on the trunk its modules follow: merged there, and its walk opened — or nothing for a walk to move
  • 2026-10-24 19:51 published → delivering (go): its walk started: let go by this owner in its group's order, by a person, or on the controller's own path — not a failed walk that carried a later commit for it, after which it waits for a walk of its own commit
  • 2026-10-24 19:52 delivering → delivered (done): its walk is done, carrying its own commit: every machine of its deploy plan passed, or was left as its policy says

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` — **delivered** since 2026-10-24T19:52:26Z **Delivery plan** — builds mesh-delivery-gate → novox; no bus step - tier 0: mesh-delivery-gate - novox: receives mesh-delivery-gate **Machines** - mesh-delivery-gate on every machine running it: sent **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 - 2026-10-24 19:51 ready → published (merged): on the trunk its modules follow: merged there, and its walk opened — or nothing for a walk to move - 2026-10-24 19:51 published → delivering (go): its walk started: let go by this owner in its group's order, by a person, or on the controller's own path — not a failed walk that carried a later commit for it, after which it waits for a walk of its own commit - 2026-10-24 19:52 delivering → delivered (done): its walk is done, carrying its own commit: every machine of its deploy plan passed, or was left as its policy says The commit's note under `refs/notes/mesh-plan` keeps every transition: `git log --notes=mesh-plan`.
jschoubben merged commit ee216e4e63 into main 2026-10-24 19:47:47 +00:00
jschoubben deleted branch fix/1726-trunk-catch-up 2026-10-24 19:47:48 +00:00
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