Added
- Adds a new home for GitLens — the Commit Graph now leads the GitLens side bar as its main view (only the default location changes, so a graph you moved yourself stays put, and a one-time prompt offers the bottom panel), adapting to the side bar's width with compact list-style rows and the details panel below the graph; widen or move the view for the columnar table layout (#5545)
- Adds empty states — with no repository open, offers Open a Folder, Clone a Repository, and Start a New Project actions (an Open Remote Repository action in web/virtual environments), and in a workspace running in Restricted Mode offers Manage Workspace Trust, refreshing to your history as soon as trust is granted (#5408)
- Adds a sign-in experience — signed-out users see a Get Started with GitLens screen with a rotating spotlight of what GitLens unlocks, completing sign-in lands on a welcome that introduces the graph and its walkthrough, and arriving via a specific task (composing, an AI review, comparing, or resolving conflicts) shows messaging for that task and returns you to it once access is restored (#5534)
- Adds an account pill to the header — ringed in a color tracking your entitlement, opening a rollup with your account, walkthrough progress, and AI, Agents, and Integrations setup status, each deep-linking into GitLens Settings; the Show Account command (renamed Show Account in Settings) now opens there too (#5522)
- Adds contextual how-tos (coach marks) — the first time you reach a feature (commit details, Compose, Review, conflicts, Resolve, Compare, the agents list, the overview bar, and more) a short tip opens right where you are; dismiss it for good, or park it on a lightbulb to reopen any time, with "new" dots on the features you haven't tried yet (#5516)
- Adds What's New, Help Center, Report Issue (GitHub), and Share Feedback (GitHub) to the graph's "..." menu and the Welcome view toolbar
- Adds an all-new high-performance rendering engine on the Commit Graph, rewritten from the ground up — loading, rendering, updating, and scrolling are significantly faster, it uses substantially less memory, and it is far more keyboard and screen reader accessible
- Adds column grouping for the Graph and Branches / Tags columns (enabled by default) for a more compact layout, and lane folding to collapse commit histories that aren't relevant right now
- Adds new perceptually-uniform lane colors for dark and high-contrast themes (existing
gitlens.graphLane1Color–gitlens.graphLane10Colorcustomizations are honored), and branch highlighting that follows a branch's own lane and stops at its merge base - Adds row markers for HEAD, its upstream, and its merge target — role-colored reference pills (HEAD in a clearer green, its upstream the deeper green of the same hue) with matching markers on the scroll bar — plus row decorations for commits waiting to be pulled (red) or pushed (green)
- Adds a context menu to the scroll marker rail to toggle marker types in place, and clicking a marker now selects and focuses its row instead of just scrolling near it; the optional additional marker types are now off by default to reduce clutter
- Adds previews of what a pull or push would do to the Pull and Push buttons — hovering offers a jump to the commits involved (Alt+click jumps without acting), and the pull preview warns when uncommitted changes would block the pull or how many files would conflict, simulated the way your
pull.rebasesetting will actually integrate (conflict detection requires GitLens Pro and Git 2.33+) - Adds a "quick-access" overview bar for showing and quickly jumping to recent worktrees — use the new
gitlens.graph.overviewBar.visibilitysetting to control when it appears - Adds an indicator dot to working changes (WIP) rows with uncommitted changes, and a "jump pill" on the main WIP row when it isn't directly attached to HEAD, for easy jumps to HEAD, the upstream, and the merge target
- Adds Apply / Pop Stash... and Apply Copied Changes (Patch) options to working tree (WIP) rows — invoked from another worktree's WIP row, the changes are applied into that worktree
- Adds a type-ahead reference finder — press
/(or use the search icon in the references column header) and type to jump to a branch, tag, or worktree; ↑/↓ step through matches, and references that aren't loaded yet are offered too, fetched only when you press Enter - Adds a Show Remote Branches toggle to the side bar's Branches panel — lists the default remote's branches alongside local ones (falling back to
originwhen no default remote is set), shared with the Branches view viagitlens.views.branches.showRemoteBranches; remote branches also become pickable in the Focus Branch scope picker - Adds visualization modes for the Changes column — numbers, squares, bar, or a two-sided bar, with compact versions as the column narrows — behind a one-time opt-in overlay to avoid impacting performance by default
- Adds a sticky timeline that names the time period you're scrolled to, with a new
gitlens.graph.timelineSeparatorssetting to draw dividers between date groups - Adds comprehensive keyboard shortcuts — jump to HEAD, upstream, merge target, or working changes with
h/u/t/w, fold lanes with ←/→, toggle the minimap, side bar, and details withAlt+M/S/D, holdCtrlto highlight the focused branch's lane, peek the focused commit's rich hover withi, and press?for the full reference;Escnow closes one thing per press
- Adds an automatic rebase that resolves conflicts end-to-end with AI — choose Automatic Rebase in the rebase quick menu to resolve, stage, and continue each conflicted step, narrated live in the Commit Graph's Resolve panel with each file's strategy, confidence, and reasoning, and a Cancel Rebase action that restores the branch's pre-rebase state. It pauses for review when confidence falls below
gitlens.ai.autoRebase.confidenceThreshold, and finishes with a per-step summary and a validated Undo (#5450) - Adds repository consultation to AI-powered conflict resolution (Preview) — when a conflict hunk is ambiguous on its own, AI can now read the file, blame or log the lines in question, search for other uses of the symbols involved, and diff the two sides before choosing a resolution. Consultation is read-only and bounded, reported as it happens in the Commit Graph's Resolve panel and the automatic rebase, and each resolution's reasoning cites what was consulted; your AI file-exclusion rules (
gitlens.ai.exclude.filesand.aiignore/.cursorignore/.aiexclude) now apply to everything AI reads (#5581) - Adds a
gitlens.ai.resolveConflicts.customInstructionssetting — standing guidance for AI conflict resolution (e.g. "prefer the incoming side for lock files"), applied to every conflict AI resolves; guidance typed for a single run still applies on top - Adds rich pull request support to the Commit Graph — browse, focus, review, and merge pull requests without leaving the graph
- Adds a Pull Requests panel to the side bar — the repository's open pull requests, most-recently-updated first, with Launchpad-style status indicators and rich hovers; rows offer switch and worktree actions, Open Pull Request on Remote, and Focus, which scopes the graph to the pull request's branch — offering to fetch it first (even from a fork) when it isn't local yet
- Adds a pull request details sheet — selecting a pull request anywhere in the graph opens its details, description, and stack map, with switch and worktree actions, Compare Changes, Review Changes (an in-place AI review), Review with Agent..., and a split merge button (merge, squash, or rebase) that confirms in place
- When the repository's remote has no integration connected, the panel offers to connect one and fills in without a reload
- Adds support for GitHub's stacked pull requests
- Badges each layer with its position on ref pills and hovers, and groups a stack's layers in the new Pull Requests panel
- Focus Pull Request on any layer scopes the graph to the whole stack, and the pull request sheet's stack map lets you step between layers
- Merging routes through GitHub's stack-aware merge, with a confirmation naming how many pull requests will land
- Adds stack context to Launchpad — stacked pull requests show their layer position, and merging one becomes Merge Stack..., running under cancellable progress with failures reported
- Improves the Commit Graph's details panel — smarter placement and new full-height sheets
- Docks to whichever side of the graph has the room, gains a maximize control (automatic when entering compose, review, resolve, or compare, via
gitlens.graph.details.maximizeOnMode), and double-clicking a splitter resets it - Adds a branch and tag details sheet — selecting a branch or tag reference opens its issue and pull request, upstream and merge-target relationship cards with sync, rebase, and merge actions (rooted at the ref's own worktree), Focus and Hide toggles, Open on Remote, and AI-powered Explain and Generate Changelog actions — for tags, the changelog covers what shipped since the previous tag
- Adds keyboard support to file trees —
Spacetoggles a row's checkbox (e.g. staging),Alt+Spaceunchecks a mixed one (matchingAlt+click), andCtrl/Cmd+Fopens and focuses the tree's search/filter box
- Docks to whichever side of the graph has the room, gains a maximize control (automatic when entering compose, review, resolve, or compare, via
- Adds AI agent session enhancements to the Commit Graph and Home — a Resume Agent Session... option on working tree (WIP) rows to open live sessions or resume past ones, sessions listed in the working-changes and branch details, and completed sessions from the last 30 days available behind a filter toggle in the Agents panel, each with Resume Session and Archive Session actions
- Adds support for locked worktrees — new Unlock Worktree commands, and deleting a locked worktree now surfaces the lock's reason with an offer to force-delete instead of failing with a raw Git error
- Improves the GitLens Settings page with new sections and a reorganized category rail (#5392)
- Adds an Account section leading the rail — your account, plan, and subscription actions, with your avatar on its rail item when signed in
- Adds a Get Started section, where a first open now lands — a four-step setup launchpad (sign in, connect integrations, choose an AI model, set up agents) with a completion ring tracking what's left
- Adds an Agents section — every detected coding agent grouped by kind, each with a Default picker and, for CLI agents, install controls for GitKraken MCP and Claude Hooks
- Adds a Custom Remotes section — configures the
gitlens.remotessetting in the UI instead of hand-editing JSON - Adds per-feature AI model controls to the AI section — the model for Composing Commits, Reviewing Changes, and Resolving Conflicts can each be set independently of the default, with each row naming the model it will actually use and a Use Default action to drop an override
- Reorganizes the category rail into Setup, Integrations, Views, Editor, and General groups
- Adds an optional
modeparameter to thegraphcommand deep link (e.g.vscode://eamodio.gitlens/link/command/graph?mode=compose) — opens the Commit Graph directly into Compose or Review (#5226) - Adds an Edit SSH Allowed Signers editor — discovers signers from this repository's SSH-signed commits and from connected GitHub and GitLab signing keys, then writes an
allowed_signersfile (optionally pointinggpg.ssh.allowedSignersFileat it) so Git can verify SSH-signed commits. Open it from the Command Palette, or from Add to allowed signers… on an unverified signature (#5469) - Adds support for Gemini 3.6 Flash and Gemini 3.5 Flash-Lite AI models
Changed
- Changes the Home, Cloud Patches, and Cloud Workspaces views to be hidden by default — applied once on upgrade too (landing you on the Graph in its new home); each remains available from the Command Palette and stays visible once shown (#5545)
- Changes commit composition to happen in the Commit Graph's details panel, now the single place to compose — the standalone Commit Composer editor is gone, and every entry point (the Compose Commits... command, the Source Control view, the GitLens views, Home, the GitKraken MCP tools, and the Interactive Rebase Editor) opens compose in the graph instead. Recompose on a branch, a commit selection, or a single commit works there too, and a new drag handle narrows a compose to staged changes only, commits only, or a range of the two. AI composition also improves — more accurate commit message convention detection, noise hunks filtered out of proposals, and better handling of very large change sets (#5506)
- Changes the rebase quick menu's confirm step — an Update Branches toggle now applies
--update-refsto whichever rebase you choose (Rebase, Automatic Rebase, or Interactive Rebase), replacing the separate & Update Branches variants (#5450) - Changes paused-rebase auto-open (
gitlens.rebaseEditor.openOnPausedRebase) to only open for rebases you're driving from GitLens — a newautovalue, now the default, ignores paused rebases started outside GitLens (terminals, agents, other tools), which previously popped open the Interactive Rebase Editor or Commit Graph uninvited; set it totrueto restore the previous behavior (#5686, #4954) - Changes paused merge, rebase, cherry-pick, and revert conflicts to surface in one place — the Commit Graph's working changes (WIP) details, or the Interactive Rebase Editor for rebases when the graph isn't usable
- Changes the Commit Graph's paused-operation bar into a state-driven strip — a labeled primary action (e.g. Resolve 3 Conflicts), an all-resolved ready state, a "paused at step m/t" link that jumps to the commit being applied, Continue with Empty Commit where Git offers it, and paused reverts can now be continued end-to-end
- Changes the Commit Graph sidebar to be unpinned by default — it floats over the graph and auto-collapses when it loses focus or on Esc; pin it (or set
gitlens.graph.sidebar.pinned) to restore the shared-space layout (#5447) - Changes the Commit Graph header's jump-to-reference button into a Focus Branch control — clicking focuses (scopes) the graph to the current branch (clicking again clears it), and Alt-clicking opens the Focus Branch picker; branch and worktree rows in the side bar gain an inline Focus action too (#5556)
- Improves branch pinning in the Commit Graph — the off-screen HEAD and pinned-branch indicators merge into a single waypoints capsule, the pinned branch gets its own scroll bar marker, unpinning now lives on the reference pill itself, and side bar rows show pin and current-branch indicators (#5409, #5626, #5624)
- Changes the Commit Graph header's Launchpad pill into a compact indicator — a severity dot on the rocket (red when anything is blocked, yellow for other actionable work) with the full breakdown on hover (#5522)
- Changes the Commit Graph minimap to be hidden by default and shown while searching — controlled by a new
gitlens.graph.minimap.defaultVisibilitysetting ("onSearch", the new default,"always", or"hidden");gitlens.graph.minimap.enabledgoes back to a plain boolean for whether the minimap is available at all — setdefaultVisibilityto"always"to keep the previous always-shown behavior (#5598) - Changes where terminal links open — a commit, branch, or tag clicked in the terminal now opens in the Commit Graph by default, configurable via the new
gitlens.terminalLinks.showInsetting (replacinggitlens.terminalLinks.showDetailsView; existing values migrate), and ranges likemain..featurenow open as a comparison - Changes when the Commit Graph side bar's Worktrees panel loads each worktree's working change counts — a fast check settles clean vs. dirty and the
+N ~M -Kbreakdown loads only when you hover a row, instead of agit statusper worktree up front - Changes the Pro feature gate to adapt to constrained spaces — the feature list, messaging, and spacing compact in narrow or short placements without hiding content (#5519)
- Improves switching AI models — with a provider already selected, the picker opens directly to its model list, with a Change AI Provider entry keeping provider switching one pick away (#5584)
- Changes GitLens: Reset Stored Data... — adds AI model, GitKraken CLI install, and Commit Graph cache resets, and a full reset now prompts to reload the window
- Improves Commit Graph and commit details performance — reference metadata loads through a bounded pool and streams in as it lands, background worktree probes no longer compete with the graph's own Git work, holding a navigation key no longer spawns a Git process per row crossed, and commit details open faster and stay interactive during refreshes
- Renames the Home view's GitHub Issues and GitHub Discussions actions to Report Issue (GitHub) (now opening the new-issue template chooser) and Share Feedback (GitHub)
Fixed
- Fixes blame going stale for open files after you commit, pull, or switch branches outside of VS Code — blame annotations, hovers, and CodeLens kept showing an older commit for lines a newer commit had changed, until the file was reopened or the window reloaded; this affected repositories at any path containing an uppercase character — nearly all of them on Windows and macOS (#5523)
- Fixes diffs opened from GitLens views and details landing at the top of the file instead of scrolling to the first change
- Fixes per-file actions (stage, unstage, conflict options) missing from working-changes file rows in the Commit Graph and Inspect views (#5548)
- Fixes GitLens silently pinning your AI provider to Copilot without you ever choosing it — GitKraken AI is now the only provider selected automatically, nothing is written to
gitlens.ai.modelunless you pick a model yourself, and settings written by the old behavior are cleared on upgrade, leaving choices you made yourself untouched (#5612) - Fixes a scoped AI model selection leaking into the global default — resolving a model for Review or Compose could write that operation's preferred model into
gitlens.ai.modelfor every other AI feature - Fixes AI conflict resolution failing outright on models that don't accept a temperature (seen as "upstream AI provider error (OpenAI HTTP 400)" on GPT-5 models via GitKraken AI)
- Fixes AI conflict resolution failing with No active merge, rebase, or cherry-pick conflicts to resolve when conflicts exist without a paused Git operation, such as after a
git stash pop(#5487) - Fixes focusing (scoping) the Commit Graph on a branch sometimes dimming the whole graph instead of re-rooting it, dropping the focused branch's own commits, doing nothing for remote branches, and the focused branch or its working changes row being filtered out from under its own scope
- Fixes the Commit Graph's hidden branches/tags list not identifying which refs are hidden — entries now name their remote, group by type, and refs that no longer exist are no longer listed or counted
- Fixes branches with parentheses in their names (e.g.
feat/(wip)) being treated as a detached HEAD — the working changes row vanished and the toolbar showed a SHA instead of the branch name - Fixes a transient Git or network failure being cached and served as a real answer for the rest of the session — blanked branch/tag lists, an authoritative "no issues" for a branch, or stale commit counts that never recovered
- Fixes a branch deleted or renamed through GitLens leaving its stored base and merge target behind — a new branch reusing the name no longer inherits the dead branch's merge target
- Fixes AI agent sessions being attributed to the wrong worktree, and sessions needing input sometimes showing Allow/Deny actions that could not work — a live permission ask can also no longer be denied by an unrelated event from the same session
- Fixes the Get Started with the Graph walkthrough's Focus the Commit Graph action silently doing nothing on a detached HEAD — GitLens now explains that there is no current branch to focus and offers switching to a branch, focusing the graph on it once switched
- Fixes AI agent sessions from other AI CLIs (Codex, GitHub Copilot CLI, Cursor, OpenCode, Antigravity) appearing as Claude Code sessions on Home and the Commit Graph (#5715)
- Fixes a transient Launchpad failure (e.g. an expired token at startup) sticking the Commit Graph header on an error state for up to 30 minutes with refresh doing nothing
- Fixes the Commit Graph side bar's Worktrees panel running per-worktree Git commands while collapsed and without bound — on repositories with many worktrees this could saturate GitLens's Git queue and hold up other Git work
- Fixes the Commit Graph working changes (WIP) details continuing to show files after they were committed or discarded outside of VS Code
- Fixes working-changes actions invoked from another worktree's row (copy patch, compose, explain, review) acting on the current worktree instead of the row's worktree
- Fixes Copy Changes (Patch) producing an empty or incomplete patch — fully-staged selections reported "No changes found to copy", mixed selections silently dropped their staged changes, and renamed files copied as a bare add of the new path
- Fixes the Commit Graph view's progress indicator repeatedly flashing while nothing appears to change (most noticeable after the window regains focus)
- Fixes the Commit Graph sidebar list hovers repeatedly opening and closing in narrow viewports, and the sidebar restoring at its minimum width after a reload
- Fixes rows in the Commit Graph side bar panels nudging their trailing decorations to the left on hover
- Fixes search results being invisible on the Commit Graph's minimap exactly where you were looking — result markers were drawn underneath the visible-range band
- Fixes working tree (WIP) search results (
type:wip) all being marked at today on the Commit Graph's minimap — each worktree's WIP row is now marked at the commit it's anchored to - Fixes clearing a natural language search in the Commit Graph silently re-populating the search box a moment later
- Fixes the paused-operation bar offering an enabled Continue while Git was still waiting for you to save and close the commit message tab — the bar now holds an in-progress state until the operation actually settles (#5656, #5668)
- Fixes Recompose failing outright when branches or tags point at commits inside the range being recomposed — it now warns that those references won't follow the new history and recomposes if you continue (#5515)
- Fixes the Commit Graph's compose preview misaligning changes for the second and later proposed commits, and dropping earlier hunks of a file renamed with edits — preview only; applying the compose was unaffected (#5596, #5606)
- Fixes excluding an untracked nested repository from a compose having no effect — it was still sent to AI and still committed; its row in Files Changed also now names the directory instead of being blank (#5611, #5629)
- Fixes leaving the Commit Graph's compose or resolve panel discarding your typed AI instructions and Refine state — both are restored when you return
- Fixes a review of your working changes never including untracked files, and failing with No changes found when untracked files were the only unstaged changes (#5586)
- Fixes files you excluded from a review being able to reach AI anyway via a cached pre-exclusion diff (#5630)
- Fixes changing
gitlens.ai.ollama.urlkeeping the previously resolved model and model list — the model is re-resolved against the new server (#5633) - Fixes the compare panel's "commits in between" count reading 0 when the newer commit was picked first (#5547)
- Fixes signing back in after a sign-out interrupted a Commit Graph comparison reopening the comparison on different references (#5671)
- Fixes the Commit Graph header's account/subscription state never updating after the view loads — sign-in/sign-out, organization switches, and plan changes now update live instead of requiring a reload (#5513)
- Fixes the account panel not showing your account when you aren't in an organization — solo accounts now show their avatar, name, and email in Home and the Commit Graph
- Fixes GitLens needing a window reload to notice when you trust a workspace — repositories are now discovered as soon as you grant trust
- Fixes issue and pull request loading failing wholesale when an author's GitHub account has been deleted — one failing item or connection no longer discards the rest
- Fixes self-managed cloud integrations (e.g. GitHub Enterprise, GitLab Self-Hosted) repeatedly issuing a token request the server rejects on every session refresh, and legacy connections stuck reported as connected with no usable token (#5497)
- Fixes a healthy cloud integration being fully disconnected when a backend error lands during an automatic session refresh — only a definitive "no token" response disconnects it now, so transient failures self-heal (#5569)
- Fixes a webview quietly going stale after it reconnects (e.g. moving the Commit Graph between panels) — change notifications stopped flowing and an active search could be silently dropped
- Fixes Alt/Ctrl/Shift-dependent UI staying engaged when focus moves from a GitLens view to an editor or quick pick with the key held
- Fixes commit details showing the autolinks strip when
gitlens.views.commitDetails.autolinks.enabledis off - Fixes file tree search boxes only matching file names — paths with folder separators (e.g.
src/git/) now match - Fixes the Choose Commit... and Search for Commit buttons in the Inspect view's empty state doing nothing when clicked
Removed
- Removes the Pro feature badge from the Commit Graph header — the Start New menu now occupies that area (#5447)
- Removes the AI terms confirmation prompt — AI features no longer interrupt your first use to ask you to accept; the large prompt warning (
gitlens.ai.largePromptWarningThreshold) is unaffected - Removes code suggestions from Launchpad — affected pull requests now group under their provider-assigned category
- Removes the Reset Current Branch to Previous Commit command from the Commit Graph and the views
- Removes the
gitlens.graph.highlightRowsOnRefHoversetting — click a reference to pin it and highlight its lineage instead - Removes the GitLens: Toggle Commit Graph command from the Command Palette — use Show Commit Graph instead; Toggle Maximized Commit Graph now just reveals the Graph and stays available for existing keybindings (#5545)