Skip to content

Releases: imfing/diffs-cli

v0.4.0

06 Jun 18:13

Choose a tag to compare

This release rewrites the diffs backend in Rust.

The main goal is to remove the CLI's dependency on shelling out to git for core local operations. diffs now uses libgit2 directly for local and branch diff generation, repository status, branch detection, ignore handling, and file-watch filtering. That makes the local review path faster, easier to package as a single binary, less dependent on the user's shell environment, and more predictable across platforms.

The browser UI and core workflow stay the same: run diffs, open the local review UI, and inspect your working tree or GitHub pull requests in the browser.

What's Changed

  • Rewrote the backend in Rust.
  • Replaced subprocess-based local Git operations with libgit2-backed implementations.
  • Preserved local diff, branch diff, GitHub PR review, local comments, file watching, and browser reload workflows.
  • Updated release packaging for Rust target triples across macOS, Linux, and Windows.
  • Updated Homebrew cask generation for the new archive names.
  • Refreshed README copy and screenshots for the Rust-based release.

Install

brew install --cask imfing/tap/diffs

Or download a platform archive from the assets below.

Notes

This is a large internal migration. Please report regressions around local diff rendering, file watching, branch detection, comments, or packaging.

Full Changelog: v0.3.0...v0.4.0

v0.3.0

30 May 23:52

Choose a tag to compare

Changelog

v0.2.0

29 May 00:02

Choose a tag to compare

Changelog

  • 8a5a7a0: chore: switch shadcn style to nova (@imfing)
  • 56d8619: feat: add reviewed/hide-reviewed, file ordering, and richer diff settings (@imfing)
  • a4abf81: feat: upgrade web deps and rework diff settings popover (@imfing)
  • fe71369: fix: resolve collapse/selection interactions across reviewed, hide-reviewed, and ordering (@imfing)

v0.1.6

26 May 21:20

Choose a tag to compare

Changelog

  • b4acbe3: feat: add --include-dirty flag to branch command for including staged, unstaged, and untracked changes (@imfing)
  • e1bb266: feat: add configurable font families (@imfing)
  • 7630d63: feat: persist scroll position and collapse state in sessionStorage (@imfing)
  • afd278e: fix: refresh local diff after git commits (@imfing)

v0.1.5

25 May 23:20

Choose a tag to compare

Changelog

v0.1.4

23 May 22:55

Choose a tag to compare

Changelog

v0.1.3

23 May 20:11

Choose a tag to compare

Changelog

  • 3dcbf87: fix(ci): add missing secrets to release workflow environment (@imfing)

v0.1.2

23 May 20:04

Choose a tag to compare

Changelog

  • 29be977: chore(ci): add Homebrew installation instructions and configure Homebrew tap (@imfing)
  • 1eeeb29: feat: add version command (@imfing)

v0.1.1

23 May 18:04

Choose a tag to compare

Changelog

  • e99ee81: feat: add NotFound component for handling 404 errors (@imfing)
  • 21067d5: fix: enhance PR target parsing to handle mixed case URLs and subpages (@imfing)
  • f480b6f: refactor: update GitHub host flag to --gh-host and enhance PR target parsing (@imfing)

v0.1.0

23 May 16:04

Choose a tag to compare

Changelog