Fixes issue 888 (note 23): a merge made at the forge, not by the gate, left the gate's source.main at the old trunk (mesh-catalog 89e15c7b, mesh-delivery b714eab), so every later check and try of that repository merged onto a stale trunk, and gate merges were refused.
The gate moves source.main when the forge says a merge it did not make (modules/mesh-delivery-gate merges.go, model.go, ready.go), dating the head it holds so a late or repeated forge message never moves it back (review round 1).
Tests: issue888_test.go (a forge-heard merge moves source.main; an older one never moves it back).
Its try (try-1792757860780856696, 29 min) failed only on main's nats docker test, which feat/fastcheck's #460 fixes (cf071270); the 888 change itself passed its unit (4483) and every other integration test (4522). Merge after the fastcheck group, or with it.
Reviewed-by: review-888b@shanks at 8bc54a3e27 (the merge of main onto the reviewed dfcdf234 changes none of its lines; dfcdf234 reviewed by review-1894-888@shanks)
Pushed-by: lead-47@shanks
Fixes issue 888 (note 23): a merge made at the forge, not by the gate, left the gate's source.main at the old trunk (mesh-catalog 89e15c7b, mesh-delivery b714eab), so every later check and try of that repository merged onto a stale trunk, and gate merges were refused.
- The gate moves source.main when the forge says a merge it did not make (modules/mesh-delivery-gate merges.go, model.go, ready.go), dating the head it holds so a late or repeated forge message never moves it back (review round 1).
- Tests: issue888_test.go (a forge-heard merge moves source.main; an older one never moves it back).
Its try (try-1792757860780856696, 29 min) failed only on main's nats docker test, which feat/fastcheck's #460 fixes (cf071270); the 888 change itself passed its unit (4483) and every other integration test (4522). Merge after the fastcheck group, or with it.
Reviewed-by: review-888b@shanks at 8bc54a3e2764900b4d1bb2a716ae2a6a9e56ebf8 (the merge of main onto the reviewed dfcdf234 changes none of its lines; dfcdf234 reviewed by review-1894-888@shanks)
Pushed-by: lead-47@shanks
The checker reads the trunk only from the gate's source.main, and the gate moved it only in finish, for a merge it handed to
the forge bridge on an Approve. A pull request merged at the forge directly moved every other delivery's trunk (trunkMoved)
and left source.main behind, so the checker kept judging candidates on the trunk before it (catalogue 89e15c7b after
6c0024e4, 2026-10-23).
settleForgeMerges now writes such a merge into source.main by compare-and-set, never a merge replayed as history or older
than one of its repository already heard; an approved delivery merged at the forge before the gate handed it is moved by
finish with its group, once.
A merge the gate handed is known by the bridge's word before the forge's, and finish wrote it already; an older forge-only
merge heard in between overwrote it, since only the forge's word was dated and the write never compared with the head held.
A merge is now dated by either word, and the write leaves a head that is a later merge, or one the gate cannot date while
the merge is older than the records it keeps (a pruned newer merge).
mesh/delivery covered after its failure: a later walk that contains it was delivered: plan-1792763407391518822 (novox/mesh-catalog at 2175b26c into main,…
Deliverynovox/mesh-catalog@8bc54a3e2764 — failed since 2026-10-23T13:51:11Z
Covered: covered after its failure: a later walk that contains it was delivered: plan-1792763407391518822 (novox/mesh-catalog at 2175b26c into main, done, contains its merge 2175b26c)
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-23 13:10 (new) → proposed (announced): novox/mesh-catalog#461's head announced
2026-10-23 13:36 proposed → checked (checked): a verdict names this commit and the trunk's head as its trunk commit
2026-10-23 13:36 checked → rejected (refused): the gate failed or could not run, or the repository's own check failed
2026-10-23 13:49 rejected → held (merged-unchecked): merged without a passing check — a verdict known with it is taken first: only a person decides that it goes on
2026-10-23 13:49 held → delivering (release): the operator merged #461 (issue 888) by hand at the forge (15:49) to deliver the stuck changes; reviewed at 8bc54a3e (review-888b); its check failed only on main's nats docker test, which #460 fixes
2026-10-23 13:51 delivering → failed (failed): its walk failed, carrying its own commit: a gate on a first machine (what it carried put back), a build, a machine
The commit's note under refs/notes/mesh-plan keeps every transition: git log --notes=mesh-plan.
<!-- mesh-delivery:view -->
**Delivery** `novox/mesh-catalog@8bc54a3e2764` — **failed** since 2026-10-23T13:51:11Z
**Covered**: covered after its failure: a later walk that contains it was delivered: plan-1792763407391518822 (novox/mesh-catalog at 2175b26c into main, done, contains its merge 2175b26c)
**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-23 13:10 (new) → proposed (announced): novox/mesh-catalog#461's head announced
- 2026-10-23 13:36 proposed → checked (checked): a verdict names this commit and the trunk's head as its trunk commit
- 2026-10-23 13:36 checked → rejected (refused): the gate failed or could not run, or the repository's own check failed
- 2026-10-23 13:49 rejected → held (merged-unchecked): merged without a passing check — a verdict known with it is taken first: only a person decides that it goes on
- 2026-10-23 13:49 held → delivering (release): the operator merged #461 (issue 888) by hand at the forge (15:49) to deliver the stuck changes; reviewed at 8bc54a3e (review-888b); its check failed only on main's nats docker test, which #460 fixes
- 2026-10-23 13:51 delivering → failed (failed): its walk failed, carrying its own commit: a gate on a first machine (what it carried put back), a build, a machine
The commit's note under `refs/notes/mesh-plan` keeps every transition: `git log --notes=mesh-plan`.
jschoubben
scheduled this pull request to auto merge when all checks succeed 2026-10-23 13:45:28 +00:00
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Fixes issue 888 (note 23): a merge made at the forge, not by the gate, left the gate's source.main at the old trunk (mesh-catalog
89e15c7b, mesh-delivery b714eab), so every later check and try of that repository merged onto a stale trunk, and gate merges were refused.Its try (try-1792757860780856696, 29 min) failed only on main's nats docker test, which feat/fastcheck's #460 fixes (
cf071270); the 888 change itself passed its unit (4483) and every other integration test (4522). Merge after the fastcheck group, or with it.Reviewed-by: review-888b@shanks at
8bc54a3e27(the merge of main onto the revieweddfcdf234changes none of its lines;dfcdf234reviewed by review-1894-888@shanks)Pushed-by: lead-47@shanks
Delivery
novox/mesh-catalog@8bc54a3e2764— failed since 2026-10-23T13:51:11ZCovered: covered after its failure: a later walk that contains it was delivered: plan-1792763407391518822 (novox/mesh-catalog at
2175b26cinto main, done, contains its merge2175b26c)Delivery plan — builds mesh-delivery-gate → novox; no bus step
Machines
Transitions
8bc54a3e(review-888b); its check failed only on main's nats docker test, which #460 fixesThe commit's note under
refs/notes/mesh-plankeeps every transition:git log --notes=mesh-plan.