Release notes

Gitmun builds

Release notes are generated from GitHub Releases and shown in reverse chronological order.

Latest release notes
v0.9.1 11 July 2026 Permalink GitHub release

v0.9.1

What's New

Improved Linux terminal selection

  • Linux terminal preferences now use stable terminal IDs such as auto, custom, ghostty, and gnome-terminal.
  • The Settings window shows friendly terminal names while storing normalised IDs in config.
  • Custom Linux terminal commands are now wired through the same terminal registry path as known terminals.
  • Legacy config values such as Auto and GnomeTerminal are normalised when loaded. Empty values fall back
    to auto; unknown IDs are preserved.

Improved commit graph rendering

  • Reworked the experimental commit graph gutter with smoother SVG curves, clearer lane continuity, and
    improved node/connector contrast.
  • Lane-changing curves now blend colours between source and destination lanes.
  • Commit graph rows are hidden cleanly when the graph is turned off.
  • When the commit graph is visible, commit history is fetched in topo order so graph rendering better
    matches repository topology.

Commit history topo-order support

  • Commit history requests now support topo ordering.
  • The Git CLI backend passes --topo-order when requested.
  • The gix backend falls back to the CLI path for topo-ordered history to keep behaviour consistent.

Titlebar UX

  • Fixed truncated repository titles in the titlebar hover popup.
  • When the title is clipped, the popup now shows the full project display name and repository path while
    preserving click-to-copy behaviour.

Fixes

  • Linux terminal labels and launchers now use the terminal registry consistently.
  • Linux custom terminal commands are plumbed correctly through settings and repository “Open in terminal”
    actions.
  • Commit graph connectors now render smoother joins and caps, with gradient strokes for blended curves.
  • Commit graph DOM is no longer rendered when the graph is hidden.
  • Repository title hover detection now checks both the label and its clipping button container.

Developer Notes

  • LinuxTerminalEmulator has been replaced with flexible string IDs: LinuxTerminalId.
  • New constants: LINUX_TERMINAL_AUTO_ID and LINUX_TERMINAL_CUSTOM_ID.
  • get_linux_terminal_options / getLinuxTerminalOptions now return { id, label }.
  • set_linux_terminal_emulator / setLinuxTerminalEmulator now accept a terminal ID.
  • Commit history requests now include Rust topo_order / TypeScript topoOrder.
  • linux-terminal-launch was updated in Cargo.lock.

Full Changelog: https://github.com/cst8t/gitmun/compare/v0.9.0...v0.9.1

v0.9.0 5 July 2026 Permalink GitHub release

v0.9.0

What's New

Commit patch export

  • New backend and command export_commit_patch_file to export patches built from one or more commits
  • Export supports selecting multiple commits and writes an aggregated patch (oldest → newest)
  • Root (initial) commits are handled correctly and produce new-file hunks
  • Exports include full index object IDs (--full-index) and binary diffs for accurate round-trip application
  • CLI and gix backends return the same patch output

Commit message recovery

  • New API get_commit_message_recovery and TypeScript type CommitMessageRecovery
  • Reads the repository COMMIT_EDITMSG file and returns a cleaned message and timestamp when a draft exists
  • UI now offers a “Restore previous message” action when no draft is present and a recoverable edit message exists
  • Commit box will clear saved drafts after a successful commit and preserve them after failures

SSH signing / allowed signers support

  • New SSH allowed-signers status API get_ssh_allowed_signer_status and operation add_ssh_signing_key_to_allowed_signers
  • CLI and gix backends inspect user.signingkey, user.email, and gpg.ssh.allowedSignersFile to determine:
    • whether setup is needed
    • whether the allowed signers file is configured / exists
    • whether the signing key is present and trusted
  • New types SshAllowedSignerStatus and SshAllowedSignerReason
  • UI repair flows:
    • Log/signature popover can show instructions and add the configured SSH signing key to the allowed signers file
    • Identity panel surfaces allowed-signers state and lets users add the configured signing key
  • Tests for status, adding keys, and edge cases (inline key, private key paired pub file, missing email, configured-but-missing-file)

Patch import: safer 3-way apply and conflict handling

  • Import now supports three-way apply via ImportPatchRequest.three_way
  • Three-way apply is used as a retry path when normal git apply --binary fails
  • Three-way apply blocks when tracked files are dirty and will return a clear error code when blocked
  • Conflict results from 3-way apply are returned as an operation result (so the UI can route to conflict resolution)
  • Tests covering three-way conflicts, blocked conditions, and partial/no-blob patches

File tree, unversioned items and staging improvements

  • New unversioned “items” representation with file vs directory kinds (shows directories like assets/)
  • Untracked directory rows can be selected and staged as a unit
  • File tree compaction and default expand/collapse heuristics for large sections:
    • Avoid expanding huge folders by default; allow manual expansion
    • Selecting a compacted folder selects its descendants
  • Large root-level lists are virtualized to keep UI responsive and allow scrolling to later rows
  • Folder rows show "new" badge for directories introduced by the patch/untracked content
  • Better handling of submodules in status and unversioned item filtering

Staging and operation feedback

  • Introduced delayed operation feedback:
    • Inline small banner after 500ms for quick operations
    • Popup status overlay after 2500ms for long-running operations
  • Staging operations (stage/unstage/all) are tracked with an operation lock so bulk actions are disabled while busy
  • Visual inline feedback for staging operations in both staging view and centre panel
  • Staging UI: selection, bulk actions, and virtualized lists handle large selections and files with spaces robustly

Commit box and draft UX

  • Commit message drafts are saved per-repository while typing and restored on revisit
  • Merge messages and amend interplay handled correctly (merge messages not overwritten by drafts)
  • Offer to restore COMMIT_EDITMSG content when no local draft exists (and it's different from the latest commit message)
  • Commit API updated to allow async result (commit handler can return false to indicate failure and keep draft)
  • Clear drafts only on confirmed successful commit

Log and refs UI improvements

  • Commit ref chips layout refined:
    • Prominent ref line for selected/checkout commits, inline meta refs for others
    • Priority ordering of refs (HEAD, local branches, upstream, remotes, tags)
    • Overflow handling with descriptive “N more refs” tooltips
  • Signature popover:
    • Copy actions for signer and fingerprint
    • Repair flow button for SSH signing (adds configured key to allowed signers if available)
    • Explanatory text for SSH allowed-signers status
  • Context menu additions: export commit patch(s) from a single commit or a multi-selection

API, TypeScript and wiring

  • New API endpoints and TypeScript functions:
    • exportCommitPatchFile / exportCommitPatchFile TS binding
    • getCommitMessageRecovery TS binding
    • getSshAllowedSignerStatus and addSshSigningKeyToAllowedSigners TS bindings
    • openMicrosoftStoreUpdatePage replaces older request method for MS Store flow
  • Backend: many repo command functions made async / moved to background threads to avoid blocking the Tauri main thread (e.g., commit_changes, stage_files, unstage_*, stage_all)
  • New internal CLI handler helpers for:
    • resolving SSH signing keys (supports inline key:: prefix, file, or key.pub suffix)
    • default and resolved allowed signers paths
    • robust commit-hash validation and building commit-based patches
    • safer three-way patch apply with status inspection
    • full-index patch generation for single-commit export

Configuration & migration

  • Removed or ignored legacy enableUpdateWithMSStoreFlow manual config keys during migration; config persists but the old key is ignored in the new config shape
  • New settings types and defaults updated to reflect store flow changes

Microsoft Store / update flow

  • Microsoft Store update flow simplified:
    • New action opens the Microsoft Store update page (open_microsoft_store_update_page) instead of attempting a direct in-process Store install
    • Local test harness simplified to three modes (available / mandatory / none)
    • Update dialog copy and state reflect “Store opened” and the new open-flow states

Tests and quality

  • Large suite updates and new tests:
    • CLI and gix handler behaviour (export/import/ssh allowed signers, commit recovery)
    • Staging view virtualization, large-list behaviour, compact folder selection, inline feedback timing
    • Commit box draft saving, recovery, and commit-clear behaviour
    • Identity panel allowed-signers repair flow and prompts
    • Log view: ref layout, signature repair flow, export commit patches

Fixes

  • Patch export now includes full-index object IDs for accurate patches suitable for three-way application
  • Fixed multiple UI race conditions and long-running work on the UI thread by moving heavy operations to background threads
  • Fixed unversioned paths handling to show directory entries and avoid losing folder selections
  • Improved detection and filtering of submodule entries from unversioned lists and repo status
  • Fixed staging selection and bulk operations to disable during active staging operations
  • Fixed commit draft lifecycle and ensured drafts are preserved after failed commits and cleared on success
  • Fixed signature popover copying and improved repair UX for SSH signing keys
  • Fixed Microsoft Store update flow to avoid unsupported in-process flows and present the Store page cleanly
  • Fixed a number of edge-case patch import and three-way-apply failure modes with clearer error codes
  • Various test fixes and added coverage for new features and regression scenarios

Full Changelog: https://github.com/cst8t/gitmun/compare/v0.8.1...v0.9.0

v0.8.1 1 July 2026 Permalink GitHub release

v0.8.1

What's New

Repository Display Names

  • New command get_repo_display_name to read repository description as display name
  • Displays custom project names in the titlebar when configured
  • Falls back to repository folder name when no custom description is set
  • Automatically fetches display names for recently used repositories
  • Supports Git submodule .git file format with gitdir: references

Titlebar Enhancements

  • New disclosure tooltips for truncated repository and branch names
  • Interactive tooltips showing full details when labels overflow
  • Branch name tooltip displays full branch name when truncated
  • Repository tooltip displays both custom display name and full path when truncated
  • Better visual feedback for copy affordance with "Click to copy path" hint
  • Improved layout with cleaner repository name display

Commit Message Processing

  • New commit_message.rs module for parsing and processing commit bodies
  • Separates commit prose body from metadata trailers
  • Trailers are properly identified as contiguous Key: value pairs at message end
  • Empty lines between prose and trailers are handled correctly
  • Message body is now returned in CommitDetails for display in the UI
  • Both CLI and gix backends return identical body and trailer parsing

File Tree Compaction

  • Uninterrupted single-directory chains are now compacted in the file tree
  • Reduces visual depth for deeply nested single-folder paths
  • Shows full compacted path in folder labels (e.g., game/assets/graphics/100/en/symbols)
  • Only compacts when a directory contains only one subdirectory
  • Maintains proper layout and selection semantics

Repository State Monitoring Improvements

  • Better handling of Git lock files (.lock) - now ignored in file watch events
  • .git/objects/ directory writes are filtered out from state refreshes
  • Uses GIT_OPTIONAL_LOCKS=0 environment variable for status and numstat operations
  • More precise path filtering logic for relevant Git state changes
  • Reduces unnecessary refreshes during fetch operations

UI Improvements

  • File striping calculations now account for visible rows only
  • Striping restarts independently for staged and unstaged sections
  • Folder rows are no longer striped to maintain visual hierarchy
  • Commit details popover properly scrolls when content exceeds viewport height
  • Better handling of popover positioning near screen edges
  • Popover stays within viewport bounds with minimum 8px margin

Build and Dependencies

  • Updated esbuild from 0.28.0 to 0.28.1
  • Updated Vite from 8.0.8 to 8.1.0
  • Updated Rolldown from 1.0.0-rc.15 to 1.1.3
  • Updated postcss from 8.5.13 to 8.5.16
  • Updated nanoid from 3.3.11 to 3.3.15
  • Updated undici from 7.24.6 to 7.28.0
  • Updated tinyglobby from 0.2.15 to 0.2.17
  • Updated @napi-rs/wasm-runtime from 1.1.3 to 1.1.6
  • Updated @oxc-project/types from 0.124.0 to 0.137.0

Permissions and API Updates

  • Updated Tauri permissions schema to include new Opener plugin capabilities
  • New App permission allow-supports-multiple-windows
  • New Window permissions allow-activity-name and allow-scene-identifier
  • New Tray permission allow-set-icon-with-as-template
  • Dialog deprecated permissions allow-ask and allow-confirm marked as deprecated
  • Full Opener plugin scope support with URL and path configurations

TypeScript and API Additions

  • Added CommitDetails.body field to represent prose message content
  • New TypeScript utils for repository display name handling
  • Enhanced titlebar component tests for disclosure functionality
  • New diff panel tests for commit details display

Package Configuration

  • Added allowScripts configuration for esbuild

Fixes

  • Fixed commit trailers parsing to properly separate prose from metadata
  • Fixed file striping to not apply to folder rows
  • Fixed popover positioning to avoid going off-screen
  • Fixed file tree rendering to preserve striping consistency across sections
  • Improved Git lock file filtering for more reliable state monitoring
  • Better handling of concurrent Git operations with optional lock control

Full Changelog: https://github.com/cst8t/gitmun/compare/v0.8.0...v0.8.1

v0.8.0 18 June 2026 Permalink GitHub release

v0.8.0

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

v0.7.1 7 June 2026 Permalink GitHub release

v0.7.1

What’s New

Panel Layout Refactoring

  • Renamed the pane layout system to panel layout for consistency with the app’s terminology
  • Improved left panel minimum width handling, now set to 260px, with better visibility constraints
  • Enhanced the panel resizing algorithm to maintain usable minimum sizes for all panels
  • Fixed panel drag constraints to prevent the left panel from being dragged below its minimum width
  • Corrected persisted layouts that become too narrow during window resize operations

Testing and Quality

  • Expanded panel layout test coverage with new test cases for minimum width constraints
  • Added tests for left panel drag correction and usable centre panel constraints
  • Improved test assertions for edge cases in panel resizing

Dependencies

  • Updated the linux-terminal-launch dependency to the latest commit

Other Improvements

  • Git initialisation now targets the main branch by default in test configurations
  • Code consistency improvements across layout management utilities

Fixes

  • Simplified and corrected panel layout clamping logic
  • Improved handling of extreme window sizes and panel width constraints
  • Improved minimum panel width enforcement during manual splitter drags

Full Changelog: https://github.com/cst8t/gitmun/compare/v0.7.0...v0.7.1

v0.7.0 7 June 2026 Permalink GitHub release

v0.7.0

What's New

CLI Enhancements

  • Modern command-line interface with intuitive subcommands
    • gitmun open <path> - Open repositories
    • gitmun clone - Clone with flexible options
    • gitmun init - Initialize new repositories
  • Shell completions for bash, zsh, fish, and PowerShell
  • Window routing with --reuse-window and --new-window options

Linux Terminal Support

  • Choose your preferred terminal emulator (Konsole, GNOME Terminal, Alacritty, WezTerm, and more)
  • Custom terminal command support with configurable launch options
  • Auto-detection of installed terminals

Commit Message Improvements

  • Split subject/body interface with improved editing experience
  • Resizable commit box with saved height preferences
  • Keyboard shortcuts (Cmd/Ctrl+Enter) for quick commits
  • Better support for multi-line messages and trailers

Error Handling

  • Persistent error toasts with dismiss button
  • Configurable error message auto-close delay
  • Improved error messages with actionable suggestions
  • Better detection of unmerged branch deletion attempts

Reset Operations

  • Hard reset support to discard tracked changes

Dependencies

  • Updated Vitest 4.1.0, Esbuild 0.28.0, Chai 6.2.2
  • Loading skeletons for settings pages
  • Improved test coverage

Fixes

  • Commit message preservation for special characters and formatting
  • Multi-line commit message handling with proper whitespace
  • Unmerged branch deletion error messages
  • Configuration persistence across sessions
  • Various UI/UX improvements and stability fixes

Full Changelog: https://github.com/cst8t/gitmun/compare/v0.6.4...v0.7.0

v0.6.4 28 May 2026 Permalink GitHub release

v0.6.4

What's Changed

Patch File Management

  • Import and export patch files with flexible scope options (staged, unstaged, all, or selected)
  • Selective file export with checkboxes for staged and unstaged changes
  • Full support for untracked files in patches

Git Mailmap Support

  • Commit author and committer identities now respect .mailmap files

UI/UX Improvements

  • "More" dropdown menu in titlebar for advanced operations
  • Recent repositories quick access in empty state (up to 5 repos)
  • Improved search bar styling and accessibility
  • Better keyboard navigation and focus handling

Backend Improvements

  • Added save dialog capability
  • Enhanced path validation for patch operations
  • Binary patch support

Full Changelog: https://github.com/cst8t/gitmun/compare/v0.6.2...v0.6.4

v0.6.2 24 May 2026 Permalink GitHub release

v0.6.2

What's Changed

Microsoft Store Update Progress Tracking (experimental, disabled by default)

  • Real-time download and install progress display for Microsoft Store updates
  • Queue status monitoring with detailed extended state information
  • Distinction between download and install phases
  • Better error reporting for Microsoft Store issues
  • Application restart registration for MSIX installations

Commit Log Enhancements

  • Multi-select commits with Ctrl+Click (or Cmd+Click on macOS) and Shift+Click
  • Copy commit hash, short hash, subject, or full details from context menu
  • Support for bulk copy operations on selected commits
  • Context menu changes based on single vs. multiple selection

Pane Layout Improvements

  • Refactored pane layout calculation into reusable utilities
  • Improved ratio-based resizing to preserve splitter positions across window resizes
  • Consistent pane layout clamping logic

UI/UX Improvements

  • Copy repository path button in titlebar with "Copied" feedback
  • Better Linux WebKit text input handling in sub-windows
  • Improved AppImage rendering fallback for X11 with hardware renderer
  • Settings help text improvements for diff/merge tool configuration

Linux & Platform Improvements

  • AppImage force software renderer detection for X11 environments

Internal Changes

  • Updated Windows API bindings for better recovery and UI handling
  • Improved Microsoft Store queue item status tracking
  • Better test coverage for update flow and pane layout

Full Changelog: https://github.com/cst8t/gitmun/compare/v0.6.0...v0.6.2

v0.6.0 22 May 2026 Permalink GitHub release

v0.6.0

What's Changed

Open in File Manager, Terminal, or Git Bash

  • New "Open in..." button to launch repository in File Explorer, Finder, Terminal, or Git Bash directly

Improved Error Interpretation & Guidance

  • Git errors now categorized with clear summaries and suggested actions
  • Network, authentication, merge conflicts, and upstream issues display helpful guidance
  • Localized action labels in Result Log

Enhanced Push Failure Handling

  • Network errors and authentication failures display in toasts with actionable advice
  • Force-with-lease support for rebased branches

Linux & Package Improvements

  • AppImage builds now available through OBS alongside DEB and RPM packages
  • Improved Flatpak environment variable handling

UI/UX Improvements

  • Responsive titlebar that hides labels on narrow windows
  • Warning icon for push rejection dialogs
  • Result Log shows expandable details for Git errors
  • Updated About window website link (gitmun.org now live)

Dependencies

  • Updated to gix 0.83.0 with improved diff and merge handling
  • Git output locked to machine locale for consistency

Full Changelog: https://github.com/cst8t/gitmun/compare/v0.5.4...v0.6.0

v0.5.3 17 May 2026 Permalink GitHub release

v0.5.3

What’s New

Settings and usability

  • UI text size control is now available, with a cleaner slider control.
  • Settings window has been reorganised for easier navigation.
  • Row striping is now configurable to improve list scanning:
    • Off
    • Subtle
    • Strong

Theme improvements

  • Theme files are now editable, with expanded theme token support.
  • Font configuration has been improved, including bundled UI fonts.
  • Better light mode polish and improved list readability.
  • Improved dark mode file path contrast.

Updates

  • Added an experimental Microsoft Store update flow for MSIX installs.
  • This flow is disabled by default and intended for staged rollout/testing.

Stability and platform fixes

  • Linux rendering fallback logic has been tightened for improved runtime behaviour.
  • Potential fix for Windows window-drag handling.
  • OBS packaging fixes for protobuf-c dependency resolution on Fedora Rawhide.

Full Changelog: https://github.com/cst8t/gitmun/compare/v0.4.5...v0.5.3

v0.4.2 6 May 2026 Permalink GitHub release

v0.4.2

What's Changed

  • Fixed GPG verification/signing on Microsoft Store installs by detecting GPG from Git for Windows and
    common GnuPG install locations when it is not available on PATH.
  • Added Git settings for manually choosing the Git executable and GPG executable, with native file pickers.
  • Added Git version detection in Settings so the active Git binary is visible.
  • Added reset support for the Git executable override to return to automatic Git detection.
  • Avoided rewriting global Git config values when Settings is saved and nothing has changed.
  • Fixed the config file path shown in Settings for Microsoft Store installs, including an open-folder button
    for the real redirected config location.
  • Fixed commit history ordering when using gix so merge histories match git log ordering.
  • Fixed Microsoft Store/MSIX attributions packaging so the attributions window opens the generated
    attributions page.
  • Updated Microsoft Store/MSIX package icons with the new square icon assets.

Full Changelog: https://github.com/cst8t/gitmun/compare/v0.4.1...v0.4.2

v0.4.0 2 May 2026 Permalink GitHub release

v0.4.0

What's Changed

  • feat: add multi-window support (finally) by @cst8t in https://github.com/cst8t/gitmun/pull/22
    This means you can finally have as many instances of Gitmun open for as many projects as you want (as long as your computer can handle it)

  • feat: add i18next localisation by @cst8t in https://github.com/cst8t/gitmun/pull/23
    This should set things up nicely for when a Weblate instance is setup for crowd sourced translations.

Full Changelog: https://github.com/cst8t/gitmun/compare/v0.3.3...v0.4.0