Releases: imfing/diffs-cli
v0.4.0
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/diffsOr 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
Changelog
- 9dc850f: feat: add contextual diff actions (@imfing)
- aab1ad6: feat: add icon button tooltips (@imfing)
- 2d90a7a: feat: export diff view to a standalone HTML file (@imfing)
- 248a53b: feat: update diff UI icons (@imfing)
- f00fb26: fix: remove diff view top padding (@imfing)
- b13bd11: style: apply oxfmt formatting to empty.tsx (@imfing)
- a4f478b: style: set diff surface font size to 12px (@imfing)
v0.2.0
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
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
v0.1.4
Changelog
- 9a25993: chore: add split lint and format scripts (@imfing)
- 8a37050: chore: publish Homebrew cask (@imfing)
- b0a817b: ci(release): run tests before GoReleaser (@imfing)
- bedee22: feat(pr): resolve current branch's PR when no argument is given (@imfing)
- bb79618: feat: accept bare PR number for
diffs pr(@imfing) - ad2cc45: feat: add
diffs branch [base]command (@imfing) - 6196912: fix(web): address frontend code quality issues (@imfing)
- e3e71da: fix(webassets): embed dist with all: prefix (@imfing)
- 4616c31: fix: reject parent comment paths (@imfing)
- 43e72b8: refactor: drop
diffs localsubcommand (@imfing) - d8eeb96: refactor: simplify backend helpers (@imfing)
v0.1.3
v0.1.2
v0.1.1
v0.1.0
Changelog
- eec3a46: ci: add github release workflows (Xin xin@imfing.com)
- 53cb47a: feat(web): add adaptive svg favicon (Xin xin@imfing.com)
- 1b1cfc2: feat(web): enhance PR comment review UI (Xin xin@imfing.com)
- 00c8483: feat(web): persist diff view toggles to localStorage (Xin xin@imfing.com)
- 34e70df: feat: add GitHub comment backend (Xin xin@imfing.com)
- 782e764: feat: add local comments and cobra cli (Xin xin@imfing.com)
- 101e41a: feat: add responsive diff sidebar (Xin xin@imfing.com)
- 27a5f57: feat: implement diffs cli (Xin xin@imfing.com)
- 6d2f362: fix(web): keep color scheme reactive and free of backend race (Xin xin@imfing.com)
- 064930c: refactor(server): extract git helpers and harden change detection (Xin xin@imfing.com)
- 5d2919e: refactor: simplify diff UI and optimize rendering (Xin xin@imfing.com)
- a85bd71: style(web): adopt oxfmt and refresh toolbar icons (Xin xin@imfing.com)