Skip to content

Releases: noahbclarkson/rgitui

rgitui v0.1.7

18 Apr 11:53

Choose a tag to compare

Added

  • Dedicated Stashes panel (Alt+8): lists every stash with its message and
    OID, with inline Apply, Pop, and Drop buttons. Dropping a stash prompts a
    confirmation dialog. A stash-count badge appears in the toolbar. The command
    palette also gains Git: Create Branch from Stash, visible when stashes
    exist.
  • Diff line-wrap toggle: new "Wrap Long Lines in Diff" setting in the Diff
    settings card switches between wrapping and horizontal scrolling. Wrapping
    respects the text layouter so lines break correctly in all diff modes.
  • Diff horizontal scrollbar: in no-wrap Unified mode, the whole list
    scrolls horizontally with a draggable scrollbar at the bottom. In Split and
    Three-way modes each column keeps its own horizontal scroll area so long
    lines no longer bleed across the column divider. The line-number gutter
    stays pinned in all modes.
  • Diff vertical scrollbar: a draggable vertical scrollbar now sits next
    to the diff body in every mode.
  • Watch all worktrees (General settings): when enabled, the filesystem
    watcher tracks every linked worktree, so external changes in any worktree
    trigger a refresh.

Changed

  • Wrap-mode diff viewer is virtualized: only the visible rows (plus a
    small overdraw buffer) are rendered per frame, and wrapped-line heights are
    measured once and cached. Large diffs stay responsive while scrolling with
    wrap enabled.
  • Stash detail summary: stash entries in the detail panel now show a
    clean subject line. The WIP on <branch>: <sha> prefix is stripped, with
    graceful fallbacks to the branch name or full message for custom stash
    names.

Fixed

  • Wrap mode no longer overlaps lines: wrapped continuation lines used to
    paint on top of the row below because flex-shrink squeezed rows when total
    content exceeded the viewport. Wrapped text now correctly extends the row
    it belongs to.
  • Word-diff noise on reformatted hunks: word-level highlighting paired
    deletion line i with addition line i regardless of whether the counts
    matched. On a reformat (e.g. inlining a closure body into a multi-line
    match block) the pairing lined up semantically unrelated rows and every
    coincidental token match produced a misleading highlight. Word-diff is now
    skipped when deletion and addition line counts differ, so reformats render
    as clean red/green blocks.
  • Command palette stale after stash operations: after Apply / Pop / Drop,
    the palette's has_stashes, has_changes, and related predicates are
    rebuilt once the active tab finishes refreshing, so the next open reflects
    the actual repo state.
  • Commit graph lane artifacts with worktrees: fixed a ghost lane-0
    column extending above main_tip when the newest commits were on side
    branches, a dangling stub on lane 1 at the main-tip row, and missing
    pass-through strokes across worktree virtual rows for merge-in lanes.
    Worktrees whose HEAD isn't in the visible commit list are now routed to
    orphan slots instead of being silently dropped.
  • Action button clipping in dialogs: the Discard and Unstage buttons in
    the sidebar file list, and the action buttons in the Create PR dialog,
    were clipped against the right edge on Windows. Right padding now matches
    the rest of the dialog surface.

rgitui v0.1.6

11 Apr 07:55

Choose a tag to compare

Full Changelog: v0.1.5...v0.1.6

rgitui v0.1.5

10 Apr 23:41

Choose a tag to compare

What's New

Keyboard Shortcuts for Right Panel Tabs

  • Alt+5 — Toggle Issues panel (auto-fetches on first open)
  • Alt+6 — Toggle Pull Requests panel (auto-fetches on first open)
  • Alt+7 — Toggle Branch Health panel (auto-refreshes)

All three shortcuts are also registered in the command palette (Ctrl+Shift+P) and documented in the shortcuts help overlay (?).

Improvements

  • Push All / Pull All commands for multi-repo workspaces
  • Cleaned up leftover merge artifacts

Full Changelog

v0.1.4...v0.1.5

Full Changelog: v0.1.4...v0.1.5

rgitui v0.1.4

10 Apr 11:34

Choose a tag to compare

Full Changelog: v0.1.3...v0.1.4

rgitui v0.1.3

10 Apr 03:12

Choose a tag to compare

What's Changed

  • macOS text rendering fix (#9) — font-kit feature enabled + Lilex fallback font embedded for macOS
  • GPG signed commit badge — signed commits now show a green ✓ Signed badge in the graph view
  • Working tree graph fixes — correct row lane placement, line gaps, and clipping for worktree head nodes

Previous: v0.1.2

Full Changelog: v0.1.2...v0.1.3

rgitui v0.1.2

09 Apr 09:14

Choose a tag to compare

Added

  • macOS support: Bundle embedded fonts (IBM Plex Sans, Lilex, JetBrains Mono)
    so text and icons render correctly on macOS. Ad-hoc code sign the .app bundle
    to prevent Gatekeeper "damaged" errors. Generate .icns app icon from PNGs
    during the Mac bundle step.
  • macOS CI: Add macos-14 to the CI test matrix alongside Linux and Windows.
  • Configurable commit limit: New commit_limit setting (default 1000) lets
    users control how many commits are loaded per repo.

Changed

  • Startup performance: Repos now load during the splash animation instead of
    after it. Active tab refreshes first; inactive tabs load after it completes.
    Avatar disk cache loads on a background thread.
  • Commit walk uses git subprocess: Replaced libgit2's revwalk with
    git log subprocess, leveraging commit-graph files for ~100x speedup on large
    repos (Linux kernel: 14.7s to 1.2s).
  • Two-phase commit loading: First 100 commits load immediately so the graph
    appears fast, remaining commits load in the background.
  • Deferred commit metadata: GPG signature checking and co-author parsing
    are skipped during the commit walk and computed on-demand when clicking a
    commit, reducing per-commit overhead.
  • Parallel status computation: Working tree status now runs on a separate
    thread in parallel with stash enumeration and the commit walk.
  • Lightweight initial refresh: Initial repo load skips ahead/behind
    computation for all branches; it runs in the background after the UI appears.
  • Diff computation: Removed redundant diff.stats() call (~31% CPU savings)
    and intra-diff thread serialization overhead. Diff cache prewarming fires once
    per tab and only for the active tab initially.
  • Diff cache shared across workspace: The LRU diff cache is now stored in
    ViewCaches and shared between project and graph subscriptions.
  • Selected commit priority: On cache miss, the clicked commit's diff task is
    submitted to the thread pool before neighbor prefetch tasks to ensure it gets
    processed first.

Fixed

  • Resolved clippy warnings in bisect view and workspace events.
  • Fixed unnecessary reference creation in events.rs and items-after-test-module
    ordering in bisect.rs.

rgitui v0.1.1

08 Apr 15:29

Choose a tag to compare

Full Changelog: v0.1.0...v0.1.1

rgitui v0.1.0

08 Apr 09:10

Choose a tag to compare

First public release. rgitui is a GPU-accelerated, multi-repo desktop Git
client built with GPUI. This release
establishes a feature-complete baseline for day-to-day use.

Added

Core git operations

  • Stage, unstage, and discard changes at file, hunk, and line granularity
  • Commit and amend with a message editor, co-author support, and optional
    AI-generated commit messages (Gemini)
  • Branch management: create, checkout, rename, delete, and switch from the
    sidebar or command palette
  • Tag management: create annotated and lightweight tags, delete, and checkout
  • Stash: save (with optional name), pop, apply, drop, and create branch from
    stash
  • Remote operations: fetch, pull, push, and force push with multi-remote
    support and automatic upstream tracking
  • Cherry-pick, revert, and reset (hard / soft / mixed)
  • Merge with conflict detection and inline "accept ours / accept theirs"
    resolution
  • Interactive rebase with pick / squash / reword / fixup / drop actions
  • Bisect with start, good, bad, skip, and reset commands
  • Worktrees: create, list, and switch
  • Submodule initialization, update, and management
  • Clean untracked files
  • Undo stack for recent local git operations
  • Crash recovery: workspace snapshots restored after unclean shutdown

Views

  • Animated commit graph with lane-based coloring and Bezier-curve edges
  • Unified, side-by-side, and three-way conflict diff modes with syntax
    highlighting via syntect
  • Blame view with per-line author avatars
  • File history view
  • Reflog viewer
  • Submodule panel
  • Global search via git grep
  • Commit graph search
  • Detail panel with commit metadata, file list, and diff stats
  • Issues and Pull Requests panels for GitHub repositories

UI

  • Multi-repo tab bar with drag-resizable sidebar, detail, diff, and commit
    panels
  • Toolbar with fetch, pull, push, branch, stash, create PR, refresh, settings,
    search, file explorer, and terminal actions
  • Status bar showing branch, ahead/behind counts, staged/unstaged/stash
    counts, repository path, and active operation status
  • Command palette (Ctrl+P) with context-aware commands
  • Keyboard shortcuts help overlay
  • Animated splash screen with skip-on-input
  • Catppuccin Mocha (default), Catppuccin Latte, and One Dark themes
  • JSON theme loader for user themes
  • Toast notifications and confirmation dialogs for destructive actions

Integrations

  • GitHub device-flow authentication
  • Create pull request flow
  • Issues and PRs fetched via GitHub API with 60-second TTL caching
  • AI commit message generation via Google Gemini (optional)
  • Filesystem watcher for external repo changes

Platform support

  • Windows x86_64 zip archive and Inno Setup installer (adds rgitui to PATH
    optionally, integrates with Add/Remove Programs)
  • Linux x86_64 AppImage and tarball
  • macOS x86_64 and aarch64 (Apple Silicon) DMG

Performance

  • Pre-computed trigonometric tables for commit graph edge rendering
  • Per-frame memoization of Utc::now() for relative timestamps
  • LRU caching for styled diff rows, blame, file history, and avatars
  • Parallelized diff stat batching and stash / worktree enumeration
  • Background git operations via GPUI's background executor to keep the UI
    thread responsive
  • Diff prefetching (±25 commits, 200-entry cache) for instant navigation

Developer experience

  • CI pipeline for Windows and Linux running fmt, clippy, tests, and release
    builds
  • Automated release workflow that builds Windows (zip + installer), Linux
    (AppImage + tarball), macOS (x86_64 + aarch64 DMG), computes SHA256 sums,
    and attaches release notes from this CHANGELOG
  • Background update checker that notifies when a newer release is available;
    can be disabled in Settings

Known limitations

  • Windows and macOS binaries are not yet code-signed, so SmartScreen and
    Gatekeeper will warn on first run. Choose "Run anyway" / right-click → Open
    to launch. Signing is tracked for a future release.
  • Updates are announced in-app but not applied automatically; follow the link
    in the notification to download the new version.
  • Only x86_64 Windows and Linux, and x86_64/aarch64 macOS are built by CI.
    Other architectures can be compiled locally with cargo build --release.