Skip to content

Show and resolve a commit's conflicts in the desktop diff - #15278

Draft
mtsgrd wants to merge 2 commits into
masterfrom
stateless-conflicts-desktop
Draft

Show and resolve a commit's conflicts in the desktop diff#15278
mtsgrd wants to merge 2 commits into
masterfrom
stateless-conflicts-desktop

Conversation

@mtsgrd

@mtsgrd mtsgrd commented Aug 10, 2026

Copy link
Copy Markdown
Contributor

Clicking a conflicted commit now shows a normal diff for every file. The ones
whose conflict the auto-resolution hides get the synthetic base-vs-commit change
to diff against, behind a banner that interleaves the conflicts inline at the
position each one occurs.

Every conflict carries its own resolution — use the current base, use this
commit, edit the merged text, or resolve with AI — and the view follows the
rewritten commit after each apply, so what is left stays in front of you. The
old right-click conflicts modal is removed in favour of the inline view.

mtsgrd added 2 commits August 10, 2026 22:39
The API reached the SDK's generated types but not its generated functions, so
Electron callers could not see it at all: commit_conflicts and
resolve_commit_conflict_hunks now opt into the napi binding. Rebasing onto the
moved CliId and Context APIs is folded in here too.

A conflict with no hunk representation used to fail the whole request, so a
single binary hid every other conflict in the commit — fatal for a caller with
no edit mode to fall back to. Those files are now reported per file, and a
commit counts as resolved only when nothing remains in either list.

In lite, a conflicted commit now shows the base-vs-commit diff its
auto-resolution was hiding, and each conflict is offered where its region
starts: take the left side, the right side, or replace the region with edited
text. Any number can be checked and resolved in a single apply, which is one
rewrite and one undo entry rather than one of each per conflict. The card shows
only the common ancestor as highlighted code, since the two sides are already
the diff either side of it.
Clicking a conflicted commit now shows a normal diff for every file. The ones
whose conflict the auto-resolution hides get the synthetic base-vs-commit change
to diff against, behind a banner that interleaves the conflicts inline at the
position each one occurs.

Every conflict carries its own resolution — use the current base, use this
commit, edit the merged text, or resolve with AI — and the view follows the
rewritten commit after each apply, so what is left stays in front of you. The
old right-click conflicts modal is removed in favour of the inline view.
Base automatically changed from stateless-conflict-resolution to master August 11, 2026 12:15
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant