Skip to content

v18.1.0

Latest

Choose a tag to compare

@github-actions github-actions released this 09 Jun 21:39
· 6 commits to main since this release

Added

  • Adds a gitlens.graph.searchAutocompleteOnFocus setting 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.activityDecay setting (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 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.enabled setting 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.defaultViewSortKey setting 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.enableCommitSigning setting is on (without commit.gpgsign set in Git config) — GitLens-driven commits (e.g. the Commit Composer) now sign in this case
  • Fixes the gitlens.advanced.similarityThreshold setting 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.similarityThreshold setting 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's git.useForcePushWithLease and git.useForcePushIfIncludes settings — the confirmation could offer a plain --force while 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-index flag, 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/foo tracking origin/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.skipOnboarding setting 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)