Releases: noahbclarkson/rgitui
Releases · noahbclarkson/rgitui
rgitui v0.1.3
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
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-14to the CI test matrix alongside Linux and Windows. - Configurable commit limit: New
commit_limitsetting (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
revwalkwith
git logsubprocess, 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
ViewCachesand 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
Full Changelog: v0.1.0...v0.1.1
rgitui v0.1.0
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 withcargo build --release.