Added
- Adds a
gitlens.graph.searchAutocompleteOnFocussetting to control whether search autocomplete suggestions appear automatically when focusing or clicking the search input in the Commit Graph (#5287) - Adds the ability to copy working changes to other opened worktrees from the Commit Graph (#5288)
- Adds the ability to discard working changes from the working changes (WIP) file list in the Commit Graph and Inspect view — per-file or in bulk, with safe partial discard for files that have both staged and unstaged changes (a first discard drops only the unstaged changes, preserving the staged portion) and a bulk action that switches to discarding staged changes when no unstaged changes remain (#5296)
- Adds an Add Co-authors button to the Commit Graph's working changes (WIP) commit box that opens the contributor picker and appends the selected co-authors to the commit message (#5297)
- Adds a Copy Changes (Patch) button to the working changes (WIP) file list in the Commit Graph and Inspect view that copies a unified diff of the uncommitted changes to the clipboard — copies staged changes by default and unstaged changes on Alt-click when both are present, otherwise copies all changes (#5302)
- Adds the ability to jump from the working changes (WIP) to its commit in the Commit Graph — a down-arrow in the working changes header selects the branch tip commit the changes are based on, complementing the existing action to jump from a commit to its working changes (#5303)
- Adds an Undo Commit row adornment to the Commit Graph — surfaces an inline undo button on a HEAD commit row when hovered, focused, or selected, alongside the existing context-menu action
- Adds support for undoing the HEAD commit of any worktree from the Commit Graph — the adornment and context-menu action now target the correct working tree for secondary worktrees, not just the active one (a distinct Undo Commit on Worktree label makes the target clear) (#5311)
- Adds responsive compaction to the Commit Graph's side bar icon rail in short layouts — hides the count badges and tightens spacing, then folds the overflowing icons into a "…" menu (with their labels and counts) as the rail runs out of room, restoring them as it grows (#5313)
- Adds a keyboard shortcuts reference to the Commit Graph — opened from a new keyboard icon in the graph's sidebar rail — listing all supported navigation, search, open, and commit shortcuts with platform-aware key labels (#5312)
- Adds back/forward navigation to the Commit Graph details panel and Inspect view — Back/Forward buttons in the commit and working changes (WIP) detail headers step back through previously-viewed commits, stashes, and working changes, best-effort re-selecting the row in the Commit Graph (#5316)
- Adds the ability to push up to (and including) a specific commit from the Commit Graph — commits ahead of the branch's upstream show an unpushed indicator that doubles as a one-click Push to Commit action, also available in the commit's context menu (#5314)
- Adds an Open Worktree File action to the commit file menu in the Commit Graph details and Inspect view that opens a committed file from the worktree whose branch contains the commit — useful in multi-worktree repos where the file's working copy lives outside the currently-scoped worktree, with a worktree picker when more than one worktree applies (#5317)
- Adds a working changes bar to the Commit Graph — a horizontal bar above the graph with a pill for each worktree that has uncommitted changes or unpushed commits (primary and secondary worktrees alike), showing its branch and agent status, with an up-arrow (↑) marking unpushed work and a hover breakdown of changed files and commits to push; clicking a pill reveals and selects that worktree's working changes in the graph and opens its details (#5301)
- Adds heat decay, read/edit color blending, and a live pulse to the experimental Agent Activity Treemap — touched files now fade over a configurable window after each tool call instead of switching on and off, reads and edits blend as cyan/amber weighted by recency, and a soft pulse marks the file an agent is reading or editing right now
- Adds a
gitlens.graph.experimental.visualizations.activityDecaysetting (30 seconds to 30 minutes, default 5 minutes) with a matching decay-window picker in the treemap toolbar - Rolls sub-agent file activity up to the parent session so the heatmap reflects what a session's sub-agents are reading and editing
- Adds a
- Adds the ability to squash multiple commits from the Commit Graph — select two or more contiguous commits on the current branch, right-click, and choose Squash Commits to combine them into one, then review and edit the combined commit message (or keep only the oldest commit's message) (#5161)
- Adds the ability to drop multiple commits from the Commit Graph — select commits on the current branch, right-click, and choose Drop Commits to remove them (#5161)
- Adds the ability to reword a commit's message from the Commit Graph — right-click a commit on the current branch and choose Reword Commit (#5161)
- Adds a Modify Commits (Interactive Rebase) action to the Commit Graph that opens the interactive rebase editor scoped from the selected commit(s) for squashing, rewording, reordering, dropping, and editing (#5161)
- Adds a Publish Branch action to the Commit Graph header that appears when the current branch has no upstream — publishes (pushes and sets the upstream of) the current branch in one click, sitting just left of Fetch and collapsing to its icon when the header is too narrow (#5327)
- Adds the ability to multi-select files in the Commit Graph details and Inspect view to act on several at once — Ctrl/Cmd+click to toggle, Shift+click for a range, and Ctrl/Cmd+A to select all — with batch actions from the context menu and toolbar: open files, open selected changes (multi-diff), open on remote, copy paths and relative paths, and (for working changes) stage, unstage, stash, and discard (#5328)
- Adds a
gitlens.advanced.repositorySearch.enabledsetting to control whether GitLens scans workspace folders to discover Git repositories — when disabled, GitLens relies solely on VS Code's built-in Git/SCM integration to report when repositories are opened or closed - Adds the ability to stash only the staged changes from the working changes (WIP) file list in the Commit Graph and Inspect view — when both staged and unstaged changes are present, the Stash action stashes only the staged changes by default (Alt-click to stash all)
Changed
- Improves graph selection reliability and performance
- Honors VS Code's
scm.defaultViewSortKeysetting when sorting working changes (WIP) file lists in the Commit Graph, while keeping unresolved conflicts at the top (#5289) - Changes the Add as Co-author action in the Commit Graph to append the co-author to the graph's working changes (WIP) commit message box instead of writing to the Source Control input and switching to the Source Control view (#5294)
- Improves Commit Graph update performance by skipping redundant re-renders when content is structurally unchanged
- Improves performance in large workspaces by only watching a repository's working tree while its node is expanded in the views
- Improves resilience of GitHub requests by retrying transient gateway and network failures (502, 503, 504) with exponential backoff, restricted to idempotent reads
- Improves commit feedback and error handling when committing working changes (WIP) in the Commit Graph — locks inputs with a spinner during commits and surfaces classified, actionable errors for signing, pre-commit hook, and conflict failures (#5290)
- Improves how partially staged (mixed) files are counted and displayed in the Commit Graph file tree badges (#5291)
- Improves resilience when VS Code updates GitLens in the background — surfaces an actionable Reload Window prompt when a lazily-loaded feature can no longer be found, instead of a cryptic error
- Changes the Apply Stash command labels to Apply / Pop Stash across the command palette, view context menus, Commit Graph, and tooltips to clarify that both apply and pop are available
Fixed
- Fixes opening the Commit Graph in multi root workspace to the correct repo (#5276)
- Fixes commit signing not being detected as enabled when only VS Code's
git.enableCommitSigningsetting is on (withoutcommit.gpgsignset in Git config) — GitLens-driven commits (e.g. the Commit Composer) now sign in this case - Fixes the
gitlens.advanced.similarityThresholdsetting being ignored when computing Git status — rename detection in status, working changes (WIP), and stash file lists used Git's default threshold (50%) instead of the configured value - Fixes the
gitlens.advanced.similarityThresholdsetting being ignored when listing changed files for a diff — rename detection used Git's default threshold (50%) instead of the configured value - Fixes force push from the Push command always using
--force-with-lease(and--force-if-includes) and ignoring VS Code'sgit.useForcePushWithLeaseandgit.useForcePushIfIncludessettings — the confirmation could offer a plain--forcewhile GitLens still pushed with lease; it now honors the configured preference - Fixes Stash Unstaged Changes also stashing staged changes when an untracked file is involved — including untracked files no longer drops the
--keep-indexflag, so staged changes are correctly kept intact (#5281) - Fixes push from the Commit Graph silently pushing to a wrong remote branch when the local branch tracks a differently-named upstream (e.g.,
feature/footrackingorigin/main) — now correctly pushes to the configured upstream branch instead of creating a new remote branch (#5304) - Fixes the working changes (WIP) Generate Commit Message in the Commit Graph losing its result when the selection changes while a message is generating — the generation now continues and the message lands in the originating worktree's commit input (or its saved draft if you've navigated away) (#5295)
- Fixes the commit details metadata bar in the Commit Graph and Inspect view not surfacing a reachable tag when a commit is contained only in tags (and not any branch) — now shows the most relevant tag with a tag icon and color, matching how branches are shown (#5293)
- Fixes incorrect GitLab avatars being shown when multiple GitLab users share the same name (#2205)
- Fixes the repository picker being incorrectly skipped when an action targets a repository that isn't surfaced in VS Code — for example, using the stash action on a secondary worktree's working changes when that worktree isn't open in VS Code (#5292)
- Fixes potential runtime errors when formatting invalid or unparseable dates (#4922)
- Fixes an issue where unchecking Interactive Rebase Editor in the GitLens settings UI would not persist — the checkbox would revert to checked after changing another setting or reopening the settings UI (#5277)
- Fixes an issue where the GitKraken CLI was not auto-installed on hosts where MCP auto-registration is unsupported (older VS Code, Windsurf, JetBrains, Trae, Kiro, Zed, etc.), preventing Claude hooks installation and agent dispatch in Start Work and Start PR Review flows (#5280)
- Fixes the Commit Graph intermittently flashing a "No commits" message during concurrent Git operations
- Fixes styling in rendered markdown (commit message hovers, autolinks, and details) being stripped in webviews by the stricter content-security policy introduced in v18.0.0
- Fixes the
gitlens.advanced.skipOnboardingsetting not being honored, so onboarding surfaces could still appear even when it was enabled - Fixes the Commit Graph details panel showing stale working changes after the view regains visibility (#5322)