v0.9.1
Latest August 16, 2026 release full diffChanged
- The comment box now keeps a separate draft for each discussion, pull request, issue, and History commit you're working in, so you can switch between them and pick up where you left off.
- Pull request and issue actions explain why they're unavailable while the one you picked is still loading — Review…, merge, approve, request changes, close, reopen, the draft toggle, sub-issues and the metadata pickers all say so — and a missing write or triage permission is named ahead of the loading note. Reaction and upvote buttons hold the same way — in discussions too — until the one you picked is on screen.
Fixed
- When a cherry-pick onto another branch can't complete, the automatic rollback returns the target branch to its prior tip and puts you back on the branch you started from; if that rollback itself can't complete, the error names the target's pre-run tip and the exact commands to recover.
- Dropdowns read the same collapsed as they do open — the session composer's agent, model, and effort pickers, the research intent picker, the pull request review provider picker, and the selects across Settings and repository settings all show their full labels.
- Error toasts name the failure you actually hit: a push, checkout, or fetch error stays on screen as itself even when a commit message or file name mentions conflicts, and a paused cherry-pick reads as a cherry-pick however the commit it stopped on is titled.
- Dialog text stays put while a dialog closes — confirms keep the branch, tag, commit, file, task, pull request, or repository they were about, and the error and AI result viewers keep their contents, all the way through the closing animation.
- Switching between light and dark re-colors highlighted code instantly: diffs and webhook delivery payloads pick up the new theme's syntax colors in place.
- Reconnecting a GitHub account picks up the token scopes it just granted right away, so scope-gated actions become available immediately.
- Local PR branch fields now accept only real branch names — a Git revision expression such as
feature~1ormain^(possible via the MCP server'screate_local_pr) previously passed validation and could merge a different commit than the branch it named. - The model picker now tells you why the live model list couldn't load — the provider's own message for a rejected key, or the blocked-host hint for a custom server — and refreshes as soon as you save or clear the API key.
- Picking a folder in Open repository… that isn't a git repository says so plainly and stops there; the Locate… and Remove fixes stay with the recent-repository list, where they have a row to act on.
- AI-generated release notes follow the repo's own
.gitdesktop/instructions.md, the same as every other generation. - Release actions always act on the tag you selected: publishing, editing, deleting a release and adding, downloading or removing its assets wait — saying so — until that tag's release has loaded.
- Edits and deletions of a pending review comment report a failure even when you move to another pull request while the write is in flight.
- When an interactive-rebase rewrite can't complete, the error now tells the truth about the rollback: it confirms your branch was restored, and when the rollback itself fails it names the tip your branch had before the run and the exact commands to recover.
- The repository visibility and Dependabot check for updates pickers read the same closed as they do open — the selected value is capitalized to match the entry you chose.
- Shortcut hints name the keys your Mac actually uses: the markdown toolbar's Bold, Italic, and Link buttons show Cmd, and Settings → Keyboard names Cmd and Option while you record a binding.
- Stashing is now refused while a merge, rebase or cherry-pick is in progress — including one whose conflicts you have already resolved and staged — so the resolution stays with the operation git is still tracking, and promoting a worktree is blocked while the main workspace is mid-operation, before the point of no return.