Documentation Index
Fetch the complete documentation index at: https://ade-app.dev/docs/llms.txt
Use this file to discover all available pages before exploring further.
What is a Stack?
A stack is a chain of lanes where each lane’s branch is based on another lane’s branch instead of directly onmain. This mirrors the stacked PR workflow used in many engineering teams — break a large feature into small, reviewable chunks that build on each other.
Creating a Stack
There are two ways to add a lane to a stack.- New Child Lane (recommended)
- Set base branch manually
Create a child lane
Click New Child Lane from the lane’s context menu or toolbar. ADE pre-fills the base branch to the parent lane’s branch and sets the parent-child relationship in the stack topology.
Viewing the Stack
ADE surfaces stack relationships in multiple places:| Location | What you see |
|---|---|
| Lanes panel | Indented tree showing parent-child relationships with depth indicators |
| Workspace Graph | Connected chain of nodes with edges showing base-branch dependencies |
| PR panel | Stack context in PR descriptions — which PR this builds on, full chain visualization |
| Lane detail | Parent lane reference and stack depth in the lane header |
Stack Chain Resolution
ADE resolves the full stack chain using a recursive query that walks parent-child relationships from any lane in the stack. The chain includes every lane from the root (the lane based onmain) down to the deepest leaf.
Each item in the chain tracks:
- Lane identity — name, branch, and worktree path
- Depth — how many levels from the root
- Status — dirty state, ahead/behind counts relative to the parent, rebase state
- Parent reference — which lane this one depends on
Rebasing a Stack
When a parent lane receives new commits, its children are now out of date. ADE handles this through rebase suggestions and rebase runs.Rebase Suggestions
ADE monitors the relationship between each lane and its parent. When the parent’s HEAD moves ahead, ADE proactively surfaces a rebase suggestion on each affected child with:- The number of commits the child is behind
- A preview of what the rebase will touch
- Whether the rebase is likely to conflict (based on merge simulation)
Rebase Scope
When you start a rebase, ADE offers two scopes:| Scope | Behavior |
|---|---|
Lane only (lane_only) | Rebases just the selected lane onto its updated parent. Child lanes below it are not touched. |
Lane and descendants (lane_and_descendants) | Rebases the selected lane, then propagates through every descendant in dependency order. This is the “rebase the whole stack” action. |
How Stack Rebase Works
For alane_and_descendants rebase, ADE creates a Rebase Run — a tracked operation that processes each lane in the chain sequentially:
Start from the target lane
ADE rebases the selected lane onto its parent’s current HEAD using
git rebase.Walk the descendants
For each child lane in dependency order, ADE rebases it onto its parent’s updated HEAD. The order is deterministic — children are processed in creation order within each level.
Handle conflicts
If a conflict is detected during any lane’s rebase, that lane enters
conflict status and the run pauses. You resolve the conflict in that lane’s worktree, then resume. Lanes below the conflicting lane are marked blocked until the conflict is resolved.pending, running, succeeded, conflict, blocked, skipped), pre/post HEAD SHAs, and any errors. You can inspect the run in the Rebase tab or the History view.
ADE uses
git rebase (not git rebase --onto) for standard stack rebases. If conflicts occur, ADE aborts the rebase on that lane and enters conflict status rather than leaving the worktree in a partially-rebased state. The previous state is always recoverable.Rollback
If a rebase run produces unexpected results, you can roll it back. ADE records the pre-rebase HEAD SHA for each lane in the run, so rollback restores each lane to its exact state before the rebase started.Drag-to-Reparent
In the Workspace Graph, you can restructure a stack by dragging a lane node onto a different parent.Confirm the reparent
ADE previews the operation and asks for confirmation. The preview shows:
- The old parent and new parent
- Whether a rebase is needed (it usually is)
- Any potential conflicts detected by merge simulation
Stacked PRs
Stacks and stacked PRs are closely related. When you open a PR from a lane in a stack, ADE automatically targets the parent lane’s branch (notmain). When the base PR merges into main, ADE suggests retargeting the next child PR to main and rebasing.
See the Stacked PR Workflows guide for the full end-to-end workflow including landing strategies.
Tips
- Keep stacks shallow. 2-3 levels is the sweet spot. Beyond 4 levels, rebase chains become slow and conflicts multiply.
- Rebase frequently. Accept rebase suggestions promptly — the longer you wait, the more likely conflicts become.
- Use the Graph. The Workspace Graph gives the best overview of stack health. Status badges tell you at a glance which lanes need attention.
- Land from the bottom. Always merge the base PR first, then retarget and merge upward. Landing out of order creates unnecessary conflicts.
Next Steps
Stacked PR Workflows
Full guide for creating, reviewing, and landing stacked PRs using ADE lanes.
Workspace Graph
Visualize stacks, run merge simulations, and drag-reparent lanes in the interactive graph.