Skip to content

Releases: noahbclarkson/rgitui

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.