This is the record of an abcd-managed repository

abcdBetav0.16.2 · 2026-11-06

Development record

A validated lane cannot take the default branch in before it lands. On 2026-10-11 three drain lanes held through a peer's record-rename freeze were validated against a base that the rename then moved. Merging origin/main into one lane branch before its landing made implement step refuse at land ('is at <merge>, not at the head <sha> its validators judged'). So the only order that works is to land on the stale base (the resolve commit moves the record under its old long name), push, open the PR, and only then merge main and run the rename tool on top. Each lane then pays a third full preflight, and its PR is conflicting until that second push.

issueopenminoriss-2610110012045504

A validated lane cannot take the default branch in before it lands. On 2026-10-11 three drain lanes held through a peer's record-rename freeze were validated against a base that the rename then moved. Merging origin/main into one lane branch before its landing made implement step refuse at land ('is at <merge>, not at the head <sha> its validators judged'). So the only order that works is to land on the stale base (the resolve commit moves the record under its old long name), push, open the PR, and only then merge main and run the rename tool on top. Each lane then pays a third full preflight, and its PR is conflicting until that second push.

The same order is also what the land stage's own remedy prescribes, and that remedy does not work either. On 2026-10-27 a lane's pull request conflicted with main, and the land stage refused with the remedy: merge origin/main into the lane branch, resolve the conflict, run make preflight, push, then run abcd implement step again, "which arms it once the forge reports it mergeable". After those steps the land stage still armed auto-merge with --match-head-commit set to the judged head recorded in the run state (internal/core/implement/loop/land.go:763, ld.Pushed), not the preflighted merge head now on the branch. The forge refused every retry with "expected head oid does not match the current head oid (enablePullRequestAutoMerge)", and the pull request could be armed only by hand. The remedy text and the arming code must agree: either the arm takes the pushed head once a preflight receipt names it, or the conflict remedy routes the merge through a fresh validation round.

Frontmatter

idiss-2610110012045504
typeissue
lifecycleopen
severityminor