Release notes

What changed, and when

Every tagged release is built by CI, published on GitHub Releases, and written up here. Nothing has been tagged yet: what follows is what already works on main.

0.1.0
unreleased

Repository and history

  • Opens the repository containing your working directory, from anywhere inside it — worktree, subdirectory, or bare clone.
  • Sidebar of linked worktrees, local branches with ahead/behind counts, and remotes with their tracking branches. Sections reorder by dragging and stay where you put them.
  • Commit graph painted from an incremental lane algorithm: merge curves, a stable colour per line of development, and a halo on the checked-out commit.
  • History streams in on a worker thread and renders through a virtualized list, so repositories of any size open immediately.
  • Branch, remote-branch, tag and HEAD chips on the rows they point at, ordered the way Git orders them.
  • Click a branch to scope history to it; click again to widen back out.
  • Metadata refreshes by itself when refs or worktrees change outside the app, without losing your selection, your scope, or your scroll position.
  • Cmd+F filters loaded history; arrows, Page Up/Down, Home and End drive the list.

Commit details and diffs

  • Two-column details pane: full commit message on the left, changed files on the right, with per-file line counts.
  • Working-tree and commit file lists render only visible rows, fixing a crash when opening repositories with tens of thousands of changed files.
  • Merge commits compare against either parent, switched from the details header.
  • Click a changed file to open its diff in a full-window overlay, unified or side by side — the layout you chose is remembered.
  • The overlay's scrollbar is draggable, so long diffs scrub instead of scroll.
  • Image diffs render as pictures: a juxtapose slider you drag between before and after, or both side by side.
  • SVG files open with rendered before-and-after previews; switch to Source to inspect the markup diff. Local SVG images also render in Markdown previews.
  • No diff is too large to open; content is virtualized rather than truncated.

Operations

  • Fetch, run through your own git so SSH keys, credential helpers and hooks work exactly as they do in the terminal — with live progress and a cancel button.
  • Create a branch from any commit, optionally checking it out.
  • Stage and unstage large selections without hitting command-line size limits. Filenames with spaces, wildcards, or leading dashes are handled literally, and files outside the selection stay untouched.

Context menus

  • Right-click commits to copy the full SHA or create a branch at that commit. Branches, tags, files, worktrees, remotes and GitHub links offer the corresponding name, path and link actions.
  • Consistent editing menus in every text field, plus copying from diff lines, Markdown blocks and Actions logs. Large log copies are prepared in the background.
  • Control-click works on macOS. Shift+F10 opens the selected commit or focused text field's menu; arrows navigate and Escape dismisses.
  • Stage or unstage files and sections, and fetch from a specific remote, through the same operation controls as the existing buttons.

Under the hood

  • Native GPU-rendered interface built on GPUI; repositories are read with gitoxide rather than by scraping command output.
  • A deterministic demo fixture (sourcefour --demo) that renders through the real window, backing both the visual-regression suite and every screenshot on this site.
  • Panel sizes, section order, collapse state and diff layout persist between launches in one tolerant JSON file.
  • The main window remembers its size and display mode, then opens centered on the primary display so changing monitor setups cannot strand it off-screen.
  • just reinstall uninstalls and reinstalls the packaged app in one command, keeping existing settings.