What's New
Commit Graph Visualisation
- New experimental commit graph feature with visual lane representation
- Shows commit ancestry relationships with coloured lanes and connecting lines
- Includes commit node markers and parent relationship connectors
- Graph can be toggled on/off with toolbar button (experimental feature behind setting)
- Properly handles merge commits with multiple parents
- Smart lane allocation to keep main parent on primary lane
Commit Reference Decorations
- Displays branch names (local and remote) and tags directly on commit rows
- Shows HEAD and upstream markers inline with commit metadata
- Compact display with ellipsis for long ref names and a "+N more" indicator
- Different styling for local branches (green), remote branches (accent), and tags (yellow)
Commit Navigation
- Arrow key support for moving between commits in the log
- Arrow Up/Down keys select adjacent commits with automatic scroll reveal
- Focus management for keyboard-only navigation
- Keyboard-accessible commit selection
Pagination and Performance
- Explicit "Load more commits" button instead of automatic end-reached loading
- Better error handling for failed page loads with retry capability
- Shows loading state and error messages for pagination
- Auto-reveals newly loaded commit when appending next page
- Reduced verification batch size to 20 commits for better UX
Commit Verification Improvements
- GPG keyserver verification (experimental): automatically fetch missing GPG keys from configured keyservers
- SSH signature priority: SSH signatures verify before GPG signatures that may need keyserver lookup
- Better verification state tracking with request IDs to handle out-of-order responses
- Verification retries on failure with one automatic retry per batch
- Only retries within visible range, background verification for loaded commits
- Settings for enabling/disabling GPG keyserver verification
File Tree and Staging
- Collapsible folder structure in staged/unstaged file lists
- Folder selection toggles all descendant files
- Indeterminate checkbox state for partially selected folders
- Independent folder expansion state for staged versus unstaged sections
- Cumulative statistics (additions/deletions) for folders
UI Improvements
- Better left sidebar collapse/expand UI with improved hover state and accessibility
- Enhanced titlebar layout with better text truncation for long branch names and repo paths
- Improved upstream dialog with branch filtering and scrollable list
- Fixed branch selection UI with keyboard support
- Better visibility of branch pill with title attribute
Focus Management
- Window focus detection to defer expensive operations when unfocused
- Automatic refresh when window regains focus with pending changes
- Reduces unnecessary git operations when app is backgrounded
Settings
- New "Experimental" settings section
- Commit graph button toggle (off by default)
- GPG keyserver verification toggle (off by default) in Git section
- Signature settings change event for coordinated verification updates
Localisation
- New translations for commit graph UI
- Translations for folder selection and staging operations
- Translations for load more button and pagination states
- Upstream dialog filtering and branch list translations
Fixes
- Panel layout toggle width corrected to 24px
- Better handling of concurrent refresh and load more operations
- Improved error messages with more context in pagination failures
- Fixed verification result ordering issues with concurrent requests
- Proper deduplication of commits when pagination overlaps
- Settings sync events for signature verification changes
- Window focus event listeners with proper cleanup
Full Changelog: https://github.com/cst8t/gitmun/compare/v0.7.1...v0.8.0