Releases: gitkraken/vscode-gitlens
Releases · gitkraken/vscode-gitlens
v17.12.1
Fixed
- Fixes an issue where the Connect Remote Integration, Disconnect Remote Integration, Open Branches on Remote, and Open on Remote actions on remote nodes in the Remotes view (and other tree views) fail with a "command not found" error — regression in v17.12.0 (#5150)
- Fixes an issue where custom AI provider URLs are ignored after updating to v17.12.0 (#5147)
- Fixes an issue where in a multi-repository scenario, clicking the Pull button on a specific branch of one repository will bring up a dialog asking you to select which repository to fetch (#5015)
- Fixes an issue where opening a commit, issue, or pull request on the remote would open an unusable
ssh://URL when the repository's remote used anssh://-scheme URL — regression in v17.12.0 (#5148) - Fixes an issue where the MCP banner on the Home view can't be dismissed and never shows the install variant — regression in v17.12.0 (#5151)
v17.12.0
Added
- Adds the ability to register the GitKraken MCP server with additional agents detected on your machine (e.g. Claude Desktop, Codex, Gemini CLI) — available after MCP installation or via the "Connect More Agents" action in the Home view, Welcome page (#5096)
- Adds an expandable sidebar to the Commit Graph — provides quick access to branches, remotes, stashes, tags, and worktrees with list and tree layouts, real-time status indicators, context menus, and inline actions (#5129)
- Adds a conflict files panel to the Interactive Rebase editor — shows conflicting files with per-file conflict counts, conflict status indicators, and actions to view current or incoming changes (#5040)
- Adds branch activity dates to the Home view recents — sorts by most recent activity and displays the most relevant activity label (#5034)
- Adds a
gitlens.defaultCurrentUserNameStylesetting to control how the current user is displayed in blame annotations, hovers, and other UI elements — choose between "You", the user's name, or "<user-name> (you)" (#5088, #1230, #4136, #4745) - Adds markdown rendering to commit messages hovers and tooltips (#5097, #4228)
- Adds file filtering to the Commit Details view (#5132)
- Adds support for creating worktrees directly from commits in the sidebar and Commit Graph context menus (#5130)
- Adds sort menus to the unified SCM grouped view for Branches, Tags, Remotes, Contributors, Repositories, and Worktrees (#5110)
Changed
- Improves inline blame performance and editing experience — serves blame from an in-memory snapshot instead of spawning git processes on every save, with drift-based invalidation to prevent auto-save thrashing and accurate blame attribution in dirty documents (#5098)
- Improves blame annotation responsiveness with progressive streaming — annotations now render incrementally as results arrive from Git, with viewport-aware updates and parallelized avatar loading (#5089)
- Improves the Commit Graph search auto-complete experience (#4890)
- Improves Commit Graph hover behavior to prevent flickering during row-to-row transitions and clipping issues (#5134)
- Improves support for comparing merge conflicts with a working files picker and improved rename detection
- Improves worktree icons on the Branches view to indicate it has working changes (#5072)
- Improves error handling, logging and telemetry for CLI and MCP integration issues (#5057)
- Improves non-UTF-8 encoding support in Git operations — ensures raw buffers are decoded correctly and forces UTF-8 output in blame commands for consistent parsing
- Improves the revision file picker with resource URI-based file icons and fixes an issue where "back" navigation was incorrectly filtered during search
- Improves merge base retrieval for paused cherry-pick and revert operations to provide better context during conflict resolution
Fixed
- Fixes an issue where the
sortBranchesByandsortTagsBysettings were not honored by the Branches, Remotes, and Tags views — sort always used the defaultdate:desc(#5109) - Fixes an issue where the File History view would show stale history after closing all editors instead of clearing (#4853) — thanks to PR #4854 by wolfsilver (@wolfsilver)
- Fixes an issue where the terminal integration was not detected until relaunched (#4977)
- Fixes an issue where VS Code would switch to the Source Control sidebar and reveal the GitLens view on every restart or project change (#5082)
- Fixes the Worktrees view showing a misleading 'upgrade your Git' message when opening a virtual GitHub repository (#5056)
- Fixes provider id mismatch for cloud-connected self-hosted integrations (#5031)
- Fixes an issue where the Launchpad in the Home view, status bar indicator, MCP tools, and Start Review would fail to show any pull requests when one integration provider had an authentication failure — now shows partial results with a warning indicator (#5062, #4492)
- Fixes an issue in the Home view where branches checked out in the default worktree showed "Switch to Branch..." instead of "Open Worktree" (#5105)
- Fixes an issue where the Switch command failed to redirect to opening a worktree when the target branch was checked out in the default worktree
- Fixes an issue where stray
.gitdirectories were created in sub-folders when opening a sub-folder of a repository (#5080) - Fixes an issue where an error toast appears when fetching organizations without an active session (#5104)
- Fixes an issue where the Commit Graph header would fail to load in multi-repo workspaces (#5108)
- Fixes an issue where worktrees could silently disappear from the Commits view, sidebar, and repository quick picks depending on repository discovery order (#5133)
- Fixes an issue where cherry-pick would jump directly to confirmation without showing the expected steps (#5087)
- Fixes an issue where duplicate commits could appear in the Interactive Rebase Editor due to stale document states
- Fixes an issue where applying a patch could incorrectly show a "No valid patch" error
- Fixes an issue where the MCP server and patch provider could create invalid files on Windows (#5113)
- Fixes an issue where 100% CPU usage could occur after running Show File History (#5037)
- Fixes an issue where the
gitlens_commit_composerMCP tool would not return error text for non-git directories (#4971) - Fixes scrollbar styling in popover and autocomplete components
Removed
- Removes the Open File action when diffing staged new files — VS Code introduced a duplicate action in 1.106.0 (#5081)
v17.11.1
Added
- Adds bundled MCP registration in Cursor, eliminating the need for a manual
mcp.jsonentry (#4985)
Fixed
- Fixes regression in 17.11.0 that breaks git submodule support in Branches and Remotes views (#5024)
- Fixes Interactive rebase fails:
code.exe: bad option: --wait(#5028) - Fixes an issue where navigating to the line history of a newly added line would incorrectly compare against "missing" instead of the file at the parent commit (#5030)
v17.11.0
Added
- Adds support for Claude Sonnet 4.6, Claude Opus 4.6, Gemini 3.1 Pro Preview, and Gemini 3.1 Flash-Lite Preview AI models (#4991)
- Adds basic support for Git submodules — including repository discovery, tracking, and UI icons and tooltips to distinguish submodules in views and quick picks (#1048, #1803)
Changed
- Improves tracking for connecting flow actions by adding ide attributes to gk.dev links (#4905)
- Refactors the Welcome view to be a standalone view separate from the Home view, improving modularity and allowing the Welcome walkthrough to be displayed independently without requiring the Welcome Overlay (#4970)
- Improves the quality of output when recomposing branches in the Commit Composer by including commit messages of the previous commits as context (#4874)
- Changes logging to use VS Code's native LogOutputChannel — the custom output level setting has been deprecated in favor of native VS Code log level controls
- Switches out deprecated Bitbucket provider API method (#4967)
- Improves performance of the file system provider by adding an LRU cache to the search tree
- Improves Git shell operations by converting synchronous file system calls to async
Fixed
- Fixes an issue in the Start Review command where it opens the wrong branch with GitLab repos (#4975)
- Fixes an issue where authentication errors were not properly displayed in Launchpad when GitLab integration credentials were revoked (#4944)
- Fixes an issue where stashing only unstaged changes could incorrectly stash everything (#4503)
- Fixes an issue where Jira and Linear issues were not shown on the Commit Graph unless a Git hosting integration (e.g. GitHub) was also connected (#4640)
- Fixes highlighting delays that can occur in Commit Composer when selecting large commits (#4872)
- Fixes repeated warnings about large token usage in the same session in Commit Composer (#4800)
- Fixes an issue where MCP registration can stop working if CLI binary goes missing after the CLI was successfully installed
- Fixes an issue where continuing a paused revert operation would incorrectly abort instead of continuing
- Fixes an issue with rebase todo parsing when using newer Git versions that use
#prefixes in commit messages - Fixes an issue with incorrect ref resolution for merge conflict nodes
- Fixes an issue where nested repositories could fail to be removed when workspaces change
v17.10.2
v17.10.1
Fixed
- Fixes an issue where unsigned commits could incorrectly show a signature badge in tree view tooltips (#4984)
- Fixes CLI version checking and updating
- Fixes an issue where the GitLens panel view container flickers during startup when an integration connects before repository discovery completes (#4990)
v17.10.0
Added
- Adds support for GitKraken MCP tools powered by GitLens including Start Work, Commit Composer, Launchpad, and the all new Start Review (#4797, #4908, #4909, #4910, #4912)
- Adds support for AI ignore files (
.aiignore,.cursorignore,.aiexclude) andgitlens.ai.exclude.filessetting to filter sensitive data from AI prompts, and smart diff truncation that prioritizes dropping low-value files when prompts exceed token limits (#4916) - Adds conversation threading to Commit Composer auto-compose for improved outcomes (PR #4900)
- Adds an option to filter tree views to exclude worktrees, allowing users to show all repositories except worktrees whose main repository is also open (#4952)
- Adds commit signature verification with support for GPG, SSH, and X.509 formats (#4552, #2363)
- Adds verification badges and detailed tooltips to the Commit Details and Graph Details views
- Adds signature indicator icon to inline blame hovers
- Adds
${signature}token to default commit and status tooltip formats in views and the Commit Graph
- Adds a "Filter Repositories..." command to the Branches, Commits, Contributors, Remotes, Stashes, Tags, and Worktrees views to filter to all repos, all repos excluding worktrees, or specific repos
- Adds a refresh button to the Interactive Rebase Editor toolbar to manually refresh the rebase state
Changed
- Significantly improves performance and reduces overhead, especially with worktrees
- Improves performance when opening repositories with worktrees by sharing cached Git data across them (#4929)
- Improves responsiveness by adding priority-based Git process scheduling and smarter repository discovery (#4930)
- Adds a
gitlens.advanced.git.maxConcurrentProcessessetting to specify the maximum number of background Git processes that can run concurrently
- Adds a
- Improves file system event handling performance by optimizing Git ignore rule processing (#4919)
- Improves view update performance by skipping refreshes for hidden views and preventing unnecessary auto-expand with multiple repositories (#4928)
- Moves GitLens-specific metadata (merge targets, issues, activity) to a dedicated
.git/gk/configfile to avoid modifying.git/config(#4968)- Eliminates unnecessary Git repository change events previously triggered by metadata updates
- Improves stash loading performance by deferring file detail loading (requires the
gitlens.advanced.commits.delayLoadingFileDetailssetting to be enabled)
- Improves commit message instructions in Commit Composer auto-compose for better consistency (PR #4888)
- Overhauls Git Command Palette quick wizards with scope-based progress tracking and modular sub-commands for branch, stash, remote, tag, and worktree operations (#4927)
- Improves worktree naming for detached states by including the folder name for better context
- Excludes worktrees from repository pickers in commands where selecting a worktree would be inappropriate (#4931)
- Prevents repositories from automatically opening when an opened file is git-ignored
- Stops creating new GitHub sessions via VS Code built-in authentication; new connections now always use the GKDev flow, while existing built-in sessions are still used if available (#4881)
Fixed
- Fixes potential deadlocks during node loading in views (#4928)
- Fixes an issue where the GitKraken MCP installation could fail or conflict across remote environments like WSL, SSH, or containers (#4918)
- Fixes an issue where diffing untracked files in the Commit Composer could trigger unwanted file system events (#4917)
- Fixes an issue where a single-selected commit in the Commit Composer would not get proper highlighting (#4899)
- Fixes an issue where the collapsed state of diffs in the Commit Composer would get reset when scrolling (#4898)
- Fixes an issue where commit messages become invisible during interactive rebase in some themes (#4886)
- Fixes issue in the Commit Graph minimap where it only shows a spinner when the repo has no commits (#4741)
- Fixes an inline markdown rendering issue in the Interactive Rebase Editor (#4914)
- Fixes an issue where opening a deep link to create a PR worktree would incorrectly prompt to add a remote that already exists (#4926)
- Fixes an issue where a repository might not be discovered when opening files in parent directories of the repository (#4932)
- Fixes an issue where popovers would appear in drag images when dragging commits in the Interactive Rebase Editor (#4933)
- Fixes issues with the "Reauthenticate" flow not taking effect (#4881)
- Fixes an issue where clicking on the repository filter header in the Branches, Worktrees, Tags, Remotes, Stashes, and Contributors views would do nothing when only 1 grouped repository exists (#4947)
- Fixes issue in webview file trees where same named folders are highlighted when one is selected #4801
- Fixes potential quick pick hung state when cancelling wizards in quick commands
- Fixes an issue where the Interactive Rebase Editor could open in the wrong window for workspace files
- Fixes issues where the GitLens grouped views would not refresh, tree items could not be resolved, or loading state would get stuck when switching views
v17.9.0
Added
- Adds a welcome page webview for first-time installs to highlight Pro benefits for users in IDEs that do not support the standard VS Code walkthrough (#4769
Changed
- Improves the Interactive Rebase Editor to fully support
--rebase-mergeson linear history while preventing unsafe reordering when merge commits are present (#1238) - Improves cherry-pick apply order to use topological sort for correct commit sequence (#4863)
- Changes AI features to require GitLens Pro instead of GitLens Advanced — all AI features now consistently lead to Pro plan checkout (#4843)
- Updates the Welcome walkthrough to streamline onboarding and highlight core GitLens features (#4842)
Fixed
- Fixes issue where the button text on feature gates would blend into the background (#4833)
- Fixes issue where codicon would render as text in comparison picker title (#4866)
- Fixes issue where Interactive Rebase elements overlap when using keyboard and mouse navigation simultaneously (#4816)
- Fixes issue where Home view could crash when state fails to load (#4766)
- Fixes #4776 Azure DevOps Work Item autolinks pointing to wrong project when the Work Item belongs to a different project in the same organization — thanks to PR #4777 by Daniel Asher (@danielasher115)
- Fixes issue where Load more in the Commits view would not correctly load if the last item was a stash (#4865)
v17.8.1
Added
- Adds a Recompose Commits from Here command to commits in views and for commits belonging to a single branch in the Commit Graph. This will recompose from the chosen commit to the tip of its branch (#4827)
- Adds Gemini 3 Flash model support for AI features (#4828)
Changed
- When recomposing a specific range of commits, the Commit Composer will now automtically scroll the chosen commits into view when it loads (#4825)
- When using Recompose Selected Commits, the Commit Composer will now use the parent of the last commit to form a commit list if a merge target cannot be determined (#4826)
- Changes the
gitlens.rebaseEditor.revealBehaviorsetting default toonDoubleClickand removes theneverandonOpenoptions
Fixed
v17.8.0
Added
- Enhances the Commit Graph experience with several new features
- Improves rendering, scrolling, keyboard navigation, and first load performance
- Eliminates flickering of branch metadata (upstream status, PRs, and issues) when the repository changes
- Adds real-time streaming of search results with pause, resume, and cancel support (#4782, #4526, #3963)
- Changes the default of the
gitlens.graph.searchItemLimitsetting to0(no limit)
- Changes the default of the
- Adds autocomplete suggestions and interactive filter pickers (for authors, references, and files/folders) to Commit Graph search (#4780)
- Adds quick pick menus for picking authors, branches or tags, comparison ranges, and files or folders
- Adds Compose Commits..., Generate Commit Message..., and Stash All Changes... inline actions to the "work in progress" (WIP) row in the Commit Graph (#4790)
- Adds support for recomposing selected commits in graph and composer (#4600)
- Adds sticky timeline support to the Commit Graph (#4781)
- Adds Select for Compare and Compare with Selected commands to the Commit Graph context menu for commits, stashes, branches, and tags (#4779)
- Enhances multiselect behavior with improved keyboard and mouse support
- Keyboard navigation
- Arrow[Up|Down] — Moves focus/selection to previous/next row
- Ctrl+Arrow[Up|Down] (Cmd+Arrow[Up|Down] on macOS) — Moves focus/selection topologically
- Alt+Arrow[Up|Down] — Jumps to previous/next branching point (merge/fork)
- Alt+Page[Up|Down] — Jumps to previous/next commit with refs
- Home, End — Jumps to first/last (loaded) commit
- Page[Up|Down] — Jumps by a page (viewport)
- Mouse selection
- Click — Selects a single commit (clears previous selection)
- Ctrl+Click (Cmd+Click on macOS) — Toggles commit in/out of selection
- When in topological selection mode, will only select the commit if it is topologically connected to the existing selection
- Shift+Click — Selects a range of commits from the anchor to clicked commit
- When in topological selection mode, will select all commits that follows parent-child graph path
- When in non-topological mode, will select all rows in visual range
- Keyboard selection
- Shift+[Up|Down] — Extends the selection, based on selection mode
- Ctrl+Shift+[Up|Down] (Cmd+Shift+[Up|Down] on macOS) — Topologically extends the selection, and sticks to current branch if possible
- Shift+Home, Shift+End — Extends the selection to first or last commit
- Shift+Page[Up|Down] — Extends the selection by one page
- Keyboard navigation
- Adds an all-new, highly performant, Interactive Rebase Editor with support for
update-refother rebase operations (#4813, #4405, #4383, #4160, #4148, #4032, #3897, #3866, #3815, #3393, #3337, #3310)- Optimizes performance with virtualization for large rebase operations and lazy-loading of commit metadata
- Adds ability to recompose commits using AI (#4796, #4775)
- Adds potential conflict detection with visual indicators for commits that will conflict during rebase
- Adds ability to apply bulk actions (pick, squash, fixup, etc.) to multiple selected commits simultaneously
- Improves drag-and-drop experience with multiselect support
- Improves accessibility with keyboard navigation and multiselect support
- Mouse: Click to select single, Ctrl+Click (Cmd+Click on macOS) to toggle, Shift+Click for range selection
- Keyboard: Shift+Arrow[Up|Down] for range selection, Ctrl+A (Cmd+A on macOS) to select all entries
- Adds a
gitlens.rebaseEditor.openOnPausedRebasesetting to control whether the Interactive Rebase Editor opens automatically when a rebase is paused
- Adds a new Rebase & Update Branches and Interactive Rebase & Update Branches confirmation option to the Git Command Palette's rebase command — closes #4818
- Adds Claude Opus 4.5, Gemini 3 Pro, and GPT-5.1 and GPT-5.2 model support for AI features (#4785)
- Adds multi-repository support to repository filtering in GitLens views (#4815)
- Adds new Set Upstream... and Change Upstream... context menu items to branch status (Up to date, Outgoing, Incoming) in GitLens views
- Adds new advanced date formatting tokens (
agoAndDate,agoAndDateShort,agoAndDateBothSources) and updates default tooltip and status bar formats (#4783) - Adds an experimental
gitlens.advanced.resolveSymlinkssetting to resolve symbolic links when determining file paths for Git operations (#1328) - Adds a
gitlens.advanced.skipOnboardingsetting to prevent onboarding prompts (#4751) - Adds a
gitlens.advanced.git.timeoutsetting to configure the Git command timeout
Changed
- Improves Commit Composer user experience with maximize command, improved commit message editing, and sticky positioning for commit messages (#4759)
- Changes rebase, merge, revert, and branch delete commands to no longer use/open a terminal (#3527, #3530, #3532, #3534)
- Improves ignored file checking performance (#4814)
- Enhances paused operation status UI with clickable references that jump to commits/branches in the Commit Graph (#4786)
- Improves reference selection in views with a unified comparison picker dialog (#4778)
- Simplifies remote provider connection flow by directly using the remote name and repository path (#4411)
- Improves tracking for hover actions by adding source and detail attributes to events from editor hovers (#4764)
Removed
- Removes the
gitlens.advanced.caching.enabledsetting
Fixed
- Fixes issue where the Commit Details file tree rendering would fail intermittently (#4784)
- Fixes issue where the Commit Graph would load data twice on initial load
- Fixes issue where paused operations would not show on the Commit Graph without working changes
- Fixes issue where onboarding would interrupt error popovers in the Commit Composer
- Fixes repository grouping for main repositories and worktrees in certain cases
- Fixes WIP detection for untracked files only
- Fixes issue where commit/graph details panel titles would not collapse at smaller sizes
- Fixes navigation button wrapping in the Inspect view
- Fixes incorrect handling of an empty rebase HEAD
- Fixes missing cancel option in the rebase quick wizard confirmation
- Fixes issue where the Interactive Rebase Editor would not close automatically when the associated file is deleted