Skip to main content
Your pull request was opened against main at some commit, and main has moved since. The reviewer is reading code that will not be what ships, and the author has to stop, rebase, resolve conflicts, and force-push, which throws out everyone’s in-progress review. On a busy repository this happens constantly.

What Assert does

When the base branch moves ahead, Assert builds a merge candidate: the pull request already merged with the current tip of its base branch. If that merge conflicts, an agent resolves the conflicts in an isolated sandbox. The candidate’s state shows in the review header. The Clean candidate ready pill in the review header
The Merge commit dropdown beside the pill sets how the pull request itself lands on the base branch once it is approved — merge, squash, or rebase.

Reviewing the candidate

Opening the candidate gives you a file tree and diff for the merged result. The merge candidate dialog showing the merged result as a diff The author’s own work stays distinct from the code the merge brought in, so you can read the resolution before accepting it.

Promoting

Update branch with merge commit adds a merge commit to the pull request’s branch, bringing in the latest base branch. The branch you reviewed becomes the branch that merges, and nobody rebases locally. This is a merge commit, so history is never rewritten and nothing is force-pushed — if you have the branch checked out, git pull is enough. Once promoted, Re-review separates the author’s new work from the code the merge brought in.