Skip to content
All Docs pages

Sessions

Review and merge

Read the diff, leave notes anchored to lines, send them back as one prompt, then merge or open a pull request.


The review panel is the second half of using Fleet. An agent that writes code you never read is a random number generator with a good vocabulary.

Open it with Cmd D.

What the diff shows

A session's diff against its base is everything committed on the branch plus everything not committed yet. Either one alone is still a change worth reading, and splitting them into two views would mean you had to remember to check both.

Alongside it Fleet shows what the state of the branch actually is: files changed, commits ahead of base, and, once a pull request exists, its checks and its review decision from GitHub.

Notes

Select lines in the diff and write a note. Notes collect into a draft for the session, and sending the draft delivers all of them to the agent as one prompt with the code each note is about quoted inline.

This is better than retyping objections into the chat for a reason worth stating: the note carries the line, its surrounding context, and the file it is in, so the agent does not have to guess which of three similar blocks you meant.

A note keeps pointing at its code as the agent works. If the same text moved, the note moves with it and is marked as shifted. If the text is gone entirely, the note is marked orphaned, and it says so rather than silently pointing at whatever now occupies those line numbers.

Quick actions

The row above the diff offers actions only when they apply, which is the entire point of it. An action that is always offered is a menu item you have to evaluate. One that appears only when CI is red is a button that means something.

  • Fix the failing check, when a check is failing.
  • Resolve the conflicts, when the branch is conflicted.
  • Review your own diff, Explain this change and Write tests for this, when there is a diff to work on.
  • Write a PR description and Suggest a branch name, once there is a branch with commits on it.

Each action is a prompt, and a repository can override what any of them means for its own codebase through .fleet/settings.json.

Shipping

Four endings, and they are not interchangeable.

Merge

Merges into the base branch. Because the base is checked out in your main worktree, the merge runs from there, under a per-repository lock so two sessions cannot merge at once. It refuses rather than stashing anything you have in progress. Fleet will not move your own working tree to get a background session's work in.

Push and open a pull request

Pushes the branch, sets upstream, and opens a pull request with gh.

When that pull request is merged, Fleet closes the session and removes its checkout, and then stops. The record, the transcript and the branch all stay, so the conversation is still there to read and the session can be restored with its worktree rebuilt at the same branch.

Archive

Reversible. Reclaims the worktree and marks the session archived, keeping the record, the transcript and the branch. Restoring rebuilds the worktree at the same branch.

Archived is a mark on the session rather than a status, which is why an archived session still remembers whether it ended in success or failure.

Delete

The only unrecoverable ending, and the only one that removes the transcript. A transcript that outlived the record naming it would be a file nothing could ever open again.