Releases: the0807/git-graph-plus
Releases · the0807/git-graph-plus
v0.4.2
New Features
- Fast-Forward Without Checkout - You can now fast-forward a non-current branch up to its upstream without switching to it.
- Wide Graph Horizontal Scrolling - Commit graphs with many concurrent branches now scroll horizontally, with the author, SHA, and date columns pinned to the right.
- Graph Auto-Pan - As you scroll vertically, the graph pans horizontally to keep the start of the commit message in view.
Improvements
- Diff Syntax Highlighting - Highlighting now follows your VS Code light/dark theme and covers many more languages (Svelte, Vue, Ruby, PHP, SCSS, Kotlin, Swift, C#, TOML, XML, and more) instead of falling back to plain text.
- Loading Feedback - Changing filters, refreshing, and pressing Ctrl+R now show a loading state while the graph reloads.
Performance
- Faster Rebase Conflict Preview - The rebase conflict predictor now probes commits in parallel, cutting preview latency on multi-commit branches.
- Large Diffs - Very large diffs are now capped with an opt-in "show full diff" button so opening them no longer freezes the panel.
- Large Repositories - Faster commit graph rendering and initial load.
- On-Demand Syntax Grammars - Diff highlighting grammars load only when a file needs them, keeping the panel light.
Bug Fixes
- Load More Button - Stays in view while the graph is scrolled horizontally.
- Auto-Refresh - The graph now refreshes on working-tree changes, and rapid file selections no longer overwrite each other's diffs.
v0.4.1
Improvements
- Modal Polish - Spaced out the amend modal's option checkboxes, kept the message field scrollable when keeping a long message, centered the checkbox tick, and made the "no conflict" / "staged" status checkmarks a touch bolder.
Bug Fixes
- Large Repository Rendering - The commit graph no longer pushes commit messages off screen or overlaps the SHA and date columns in repositories with many concurrent branches.
- Custom Git Path - The extension now honors the VS Code
git.pathsetting, so it works when Git is not on the systemPATH(e.g. portable or MSYS2 installs). - Compare View Diffs - Clicking a file while comparing two commits (or comparing to the working tree) now shows its diff again.
- Git LFS Warning - Stopped showing a spurious warning when Git LFS is not installed.
v0.4.0
New Features
- Amend from Graph - You can now amend the last commit directly from the graph's context menu or keyboard shortcuts.
- SCM Integration for Uncommitted Changes - Clicking the uncommitted-changes row (or the new tooltip) now automatically opens the VS Code Source Control view.
- Rebase Conflict Prediction Limits - The rebase conflict predictor now surfaces a 20-commit cap when the topic branch has deep history, keeping the UI responsive while providing useful feedback.
Improvements
- Fast-Forward Autostash - Automatic stash popping now works correctly for fast-forward merges, matching standard pull semantics.
- Stash and Checkout Behavior - The 'stash and checkout' flow now correctly sets changes aside instead of carrying them over to the target branch.
- Interactive SCM State - Double-clicking and using the context menu on uncommitted change files is now supported.
- Enhanced i18n - Routed remaining hardcoded English tooltips, modal labels, and CommitDetails labels through the translation system.
Performance
- Unified Graph Layout - Graph layout is now computed once per refresh, significantly reducing CPU usage on large repositories.
- Shared Reachability Index - Hash indices are now shared across graph reachability passes, speeding up branch/tag/stash association by up to 30%.
- Deduplicated Data Fetching - In-flight fetches for branches, tags, remotes, and worktrees are now deduplicated, preventing redundant git calls during rapid UI interaction.
- Optimized Highlighting - Large file diffs are now highlighted in chunks to maintain UI responsiveness during scroll.
Bug Fixes
- Improved Diff Parsing - Diff headers and path resolution are now more robust, correctly handling
+++/---lines and trailing newlines. - Pagination Reliability - Fixed duplication of the UNCOMMITTED and stash rows when navigating paginated log pages.
- Git-Flow Stability - Hardened git-flow inputs and guarded against race conditions during diff generation.
- Worktree Support - Fixed conflict marker probing and gitdir resolution when working inside linked git worktrees.
- Search Robustness - Search handlers are now guarded with sequence counters to prevent stale results from overwriting newer queries.
- Commit Stats Alignment - Commit stats are now binned by the author's local time instead of the host's time.
- Security Hardening - Improved validation for webview-supplied paths and git payloads.
- (Plus over 20 other stability and correctness improvements)
v0.3.12
Improvements
- Stricter Git Input Validation - File paths and search inputs are now validated against git's own rules before being passed to the CLI, preventing malformed names (paths starting with
-, control characters in search queries, file:// remote URLs without scheme allowlist) from being misinterpreted - Branch/Tag Name Checks - Names are now rejected if any slash-separated component is empty, starts with
., or ends with.lock— matchinggit check-ref-formatmore closely
Bug Fixes
- Interactive Rebase: Reword in Squash Groups - A reword target followed by squash/fixup now honors the typed final message instead of git's combined-message default
- Interactive Rebase: Fixup-only Group Message - Edited target message is no longer silently dropped in fixup-only groups
- Interactive Rebase: Order-only Changes - The "Start Rebase" button is now enabled when only commit order has changed
- Rebase Pause No Longer Shows Error Dialog - When
editstep or a conflict pauses the rebase, the redundant error dialog on top of the banner is gone — the banner alone guides next steps - Modals Stay Open After Operation Fails - Failed operations now close the modal that triggered them instead of leaving it sitting open in a stale state
- Tooltip Escape Inside Modals - The Escape key now dismisses tooltips even when focus is trapped inside a modal
- Closing the Panel During a Long Operation - Closing the Git Graph+ panel while a long git operation is in flight no longer triggers errors when the result tries to post back to the (now-gone) webview
- Sidebar Auto-refresh Overlap - Rapid file watcher events can no longer trigger overlapping refreshes that produced inconsistent sidebar state
- LFS Warning Noise - Warnings for known-harmless LFS configurations (file:// remote, missing lock server) are suppressed while real failures are still surfaced
- Windows Repo Paths with Special Characters - Interactive rebase now works correctly when the repository path contains
&,|,%, parentheses, etc. - Conflict Banner Localization - "Merge/Rebase/Revert/Cherry-Pick Conflict" labels and the "Abort" button are now translated in Korean and Chinese
v0.3.11
New Features
- VS Code Credential Prompt on Remote Auth Failure - When fetch/pull/push fails due to missing or invalid HTTP credentials, Git Graph+ now drives VS Code's built-in credential prompt and retries the command once
Performance
- Graph Rendering - Additional speedups in commit graph rendering hot paths
Bug Fixes
- Phantom Rebase State - Status banner no longer falsely reports a rebase as in progress when
REBASE_HEADis left behind afterrebase --continuesucceeds; the rebase state directory is now the canonical marker - Nested Git Repositories - Untracked entries that are nested git repos (not registered as submodules) are now expanded and labeled distinctly instead of showing as an empty diff
v0.3.10
New Features
- Uncommitted Changes Node - Shows pending uncommitted changes as a virtual node at the top of the commit graph; click to view staged and unstaged diffs in the details panel
- Copy Short SHA - New "Copy Short SHA" context menu item on the commit graph
Improvements
- Operation Notifications - Added completion notifications for Delete Remote Branch, Add/Remove Remote, Drop Stash, and Add/Remove Worktree
- Short SHA in Messages - Notification messages for rebase, reset, and detached HEAD checkout now show the short (7-char) SHA
Performance
- Graph Traversal Speed - Replaced O(n²) BFS queue with an O(n) index-pointer approach in hot paths, significantly improving rendering on large repositories
- Diff Syntax Highlighting - Switched to synchronous highlighting after init, capped at 5,000 lines, and guarded against stale renders when the selected diff changes mid-render
- Repo Discovery Timeout - Added 15-second timeout guard to prevent hangs during repository discovery on slow disks
Bug Fixes
- Branch Selection Modal - Fixed missing modal when double-clicking a commit shared by multiple local branches; now shows a dropdown to select the target branch
v0.3.9
v0.3.8
New Features
- Resizable File List Panel - Drag the divider between the file list and diff viewer in the commit details panel to adjust their relative widths (min 120px, max 480px)
Improvements
- Ref Badge Icon Alignment - Fixed vertical alignment of cloud and tag icons in REFS badges in the commit details panel
Bug Fixes
- Filter Preservation on Refresh - Branch and author filters are now correctly preserved across both manual and auto refresh
- Filter Persistence on Reopen - Branch and author filters are now correctly restored when the webview panel is closed and reopened
v0.3.7
New Features
- Commit Preview Hover Card - View commit details by hovering over parent links in the commit details panel
- Synchronized Diff Scrolling - Side-by-side diff panes now scroll together for easier comparison
Improvements
- Refined Commit Details UI - Modernized layout with a dedicated card for the commit message, circular avatars, and cleaner metadata display
- SHA Copy Shortcuts - Added dedicated buttons to copy both full and short (7-char) SHA hashes in the commit details panel
- Enhanced Ref Badges - Consistent badge styling across all reference types for better visual unity
- Relative UI Scaling - Switched to relative units (em) for panel buttons to improve theme and font-size compatibility
Performance
- Lazy Loading Diffs - Improved popup responsiveness by implementing lazy loading for commit diff data
Bug Fixes
- Type Safety - Fixed latent TypeScript errors in the message bus and main panel message routing
- Fullscreen Reset - Fullscreen state now correctly resets when closing the bottom panel via the Escape key
- Tooltip Reliability - Fixed an issue where tooltips could get stuck when a button becomes disabled
- UI Layout Fixes - Widen date column, fixed i18n filter tooltips, and moved status bar for better visibility
v0.3.6
New Features
- Branch Filter Dropdown - Filter the commit graph to show only commits reachable from a selected branch
- Editor Title Bar Icon - "Open Git Graph" icon added to the editor title bar for quick access
- Open File / Open Changes - Right-click any file in the commit diff viewer to open it or view its changes directly in VS Code
Improvements
- Squash Merge - Auto-commits on success; shows conflict resolution UI when conflicts are detected
- Graph Rail Colors - Rail colors assigned by lowest available index (Fork-style) for consistent branch coloring
- VS Code Notifications - Success toasts for git operations use native VS Code notifications
- Toolbar Badge Visibility - Improved contrast for ahead/behind badges and the unpublished branch icon
- CommitDetails Font Sizes - Relative font sizes in the commit details panel for better theme compatibility
- Search Label - "All branches" filter label shortened to "All"
Bug Fixes
- Git Flow Button - Git Flow toolbar button is now disabled during loading/operating state, consistent with other toolbar buttons
- Fast-forward Modal - Skip the fast-forward confirmation when double-clicking the local branch badge on the current branch
- Checkout Modal - Show branch pill only (no commit pill) when checking out a branch with no upstream
- Modal Input Reset - Branch rename and stash save modals now reset their input fields when reopened
- Sidebar JSON Error - Fixed circular structure to JSON error in sidebar; added missing message handlers