Baselines and branches
A baseline is the known-good screenshot every new capture is diffed against. It is chosen per branch and updates only when you accept a change.
What is a baseline?
A baseline is the accepted screenshot of a story that the next capture is diffed against. A diff only exists relative to a baseline: without one, a story is new, not changed. Establishing baselines is what your very first build does.
How baselines are chosen
Per branch. A pull request's baseline for each story is the most recent accepted screenshot on its ancestor - usually your main branch. So your feature branch diffs against main, and you see only the changes your branch introduces, not the whole history.
When does a baseline update?
Only when a change is accepted - by you in the dashboard, or by your agent over MCP. Accepting promotes the candidate screenshot to the new baseline for that branch. When the PR merges, its accepted baselines carry forward to main, and every branch that later branches off inherits them.
Why does my PR show a change I didn't make?
Nine times out of ten the branch is simply behind. Someone accepted a change on main after you branched, so your baseline is older than the latest accepted screenshot. Rebase or merge main in and the phantom diff resolves.
A story I didn't touch is showing a diff - is that a bug?
Maybe, and it is worth a look rather than a shrug. If a changed story has nothing to do with your diff, do not dismiss it as flake and do not just re-run. It can mean a baseline moved that should not have - a story carried forward against a screenshot nobody verified. Investigate the unexplained change before you accept it; that habit is the only thing that catches a silently wrong baseline.
Visual testing for agents
UI Verify captures your UI on every pull request and an AI judge tells an intended change from a real regression. See how it works.
Get started