You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
shadow --check: call a merge whose commit carried new work 'unclear', not 'fail' #4134
From the full #1141 shadow check (run for #3946). Six of its seven fails weren't merge bugs. The merge commit that landed also carried new work, and shadow --check's tree can't hold together around that.
How.writeMerge builds the tree under check from git's clean merge of the two parents, codeSplitter's text for the files it resolved, and what landed for the other conflicted files. When the person merging also wrote code in the merge commit, the landed files depend on it, but the tree doesn't have it:
a retuned mythic-masters/src/balance.json (git merged it cleanly; the merge rewrote 128 lines)
the Jackalope 30-70% balance test
Each one is quick to spot by hand: diff git merge-tree --write-tree <main> <branch> against the landed commit on the files git did not conflict on, or look for lines in the landed conflict files that neither parent has.
Ask. In check(), when a test fails on ours and passes as landed, and the landed commit has edits outside its conflicts (or lines in neither parent), report unclear (merge commit carried new work), not fail. The next full run then needs no hand triage for these. A unit case in test/shadow.test.ts beside the writeMerge one: a landed commit that edits a file git merged cleanly.
One more of the same from the rerun of the older PRs: #2159d46594c (skate-tech-park). The merge commit wrote a step-aside loop (for (const side of [0, 6, -6, 12, -12])) into earthworks.ts's spawn search, which neither parent has, and the landed earthworks.test.ts relies on it ("every park has a hillside cut within 60 m of a spawn").
Activity
QuinnsCode commentedon Nov 9, 2026
One more of the same from the rerun of the older PRs: #2159 d46594c (skate-tech-park). The merge commit wrote a step-aside loop (
for (const side of [0, 6, -6, 12, -12])) intoearthworks.ts's spawn search, which neither parent has, and the landedearthworks.test.tsrelies on it ("every park has a hillside cut within 60 m of a spawn").