Stacked Pull Requests
One ordered review journey for stacked changes, on every provider.
A stack is a chain of small, independently reviewable changes: each one builds on the one below it, from your trunk branch up to the newest work. Every provider models this a little differently, and none of them help once you are reviewing across two of them.
PR Flow shows a stack as one ordered journey, the same way on GitHub, GitLab, Gerrit, and Azure DevOps — while keeping every layer a review in its own right.
Seeing a stack
Wherever a pull request appears, it carries its position: a small 2/4 marker next to the branch in Feed and Board. Layers of the same stack that sit next to each other are grouped visually.
Grouping never hides work. Each layer keeps its own place in Needs you, its own reason for being there, and its own unread state — a stack is not a second inbox, and a completed lower layer never drags an unrelated review out of your queue.
If a filter or search hides part of a stack, the visible layer says so ("2 more in stack") instead of quietly presenting itself as the whole chain.
Focusing on one stack
Filters gains a Stacks section. Show only stacked pull requests when you want to work through your chains, hide stacked ones when you want everything else, or pick a stack by name — each is named after the change everything else builds on — to narrow the board to that chain. Pick several to compare them.
Hiding stacks clears any chain you had selected, since the two together would match nothing.
The section only appears when something on your board is actually stacked — if you don't work in stacks, your filters look exactly as they always have.
Understanding where you are
Open any layer and PR Details shows the full map, trunk at the bottom:
- each layer's title, number, review state, and checks
- which layer you are on, and which one PR Flow suggests next
- where the membership came from — a native provider stack, the provider's branch or ancestry model, or a chain inferred from branches
Any layer PR Flow already tracks opens in place. One it doesn't track offers Open here, which starts tracking it, alongside a link to the provider.
Reviewing one layer at a time
Start a review and the stack stays with you:
- a Layer 2/3 pager in the review header, with [ and ] to move down and up the stack
- a caption naming exactly which changes you are reading, so a small review never feels like the whole stack again
- a warning when a lower layer has changed since this one, in case it needs a rebase before your review is current
Submitting applies to the layer you are on, and the confirmation says so. When there is a useful layer above, PR Flow offers to continue — it never opens the next review on its own.
Where membership comes from
PR Flow only calls something a stack when your provider says it is one:
| Provider | What forms the stack |
|---|---|
| GitHub | A native stack, with the order GitHub reports |
| GitLab | Open merge requests chained by source and target branch, the same rule GitLab uses |
| Gerrit | The relation chain — commit ancestry. Same-topic changes are not ancestry, so they are not layers |
| Azure DevOps | Azure exposes no stack information, so PR Flow infers a chain from branches only when it is unambiguous, and always labels it as inferred |
A sentence in a description is not a dependency. Text like blocked by #123, part of, or a pasted link now appears under Related changes, separately from the stack — useful context, but never presented as a confirmed order.
When PR Flow doesn't know everything
Partial knowledge is shown, not smoothed over:
- a layer you don't have access to keeps its row and says it isn't visible to you
- a stack longer than PR Flow can show reads "of at least 6" rather than claiming a total
- if the provider can't be reached, the last confirmed map stays on screen, marked as possibly stale, with a Retry — it is never replaced with a guess
- a server too old to expose stack information simply shows no stack, with nothing else affected
Turning it off
Stack features follow the PR stack switch in Settings → Features. With it off, position markers, the map, and layer navigation all disappear, and Related changes keeps working as before. On a Team or Enterprise license, an administrator can set this for the whole organization.