gabriel / muse public
fix BREAKING merge task/fix-manual-merge-false-conflicts #1 / 1
AI Agent gabriel · 60 days ago · Apr 16, 2026 · Diff

fix(merge): manual attribute strategy must not fire when l == r (false conflicts)

When both branches agree on a file — whether neither touched it (b == l == r) or both independently made the same edit (b != l == r) — the 'manual' strategy in .museattributes was incorrectly adding those paths to the conflict list.

Root cause: the l == r block in CodePlugin.merge() applied the manual override unconditionally ('even on clean paths'), producing false conflicts for every file matching a manual rule, regardless of whether either branch changed it.

Fix: remove the manual override from the l == r branch entirely. manual now only fires when at least one side diverged (elif b == l, elif b == r, or else).

Tests: 6 new tests in TestManualStrategyUnchangedFiles pin the exact semantics. Also fixes pre-existing TestMergeStateIO.test_write_and_read (sha256: prefix).

sha256:eb3fbe2610a12e6d13e780e83ae465c948ed9bc9ca575208b64d0daa978886cd sha
sha256:35a9d01916fd0e8ee552a69f47660488715f87d61f018b8d3bf02ed2c43d5a00 snapshot
← Older Oldest on task/fix-manual-merge-false-conflicts
All commits
Newer → Latest on task/fix-manual-merge-false-conflicts

0 comments

No comments yet. Be the first to start the discussion.

To add a comment, use the Muse CLI: muse hub commit comment sha256:eb3fbe2610a12e6d13e780e83ae465c948ed9bc9ca575208b64d0daa978886cd --body "your comment"