Skip to content

Changelog

Every release, newest first, as published on GitHub — where the downloadable binaries and their checksums live. Installed copies can take the latest one themselves: see Updating revision.

v1.7.2latest

  • Updated changelog for v1.7.1 (@bapatchirag)
  • site: bump fast-uri from 3.1.5 to 3.1.7 in /site (@dependabot[bot])
  • site: bump the astro group in /site with 4 updates (@dependabot[bot])

v1.7.1

  • Updated changelog for v1.7.0 (@bapatchirag)
  • Revert the whole of an added directory (@bapatchirag)
  • Carry on past the file svn will not take (@bapatchirag)
  • Measure the optimistic update path (@bapatchirag)
  • Group changelists in one pass (@bapatchirag)
  • Measure file-tree rows without rendering them (@bapatchirag)
  • Stage a set in one svn invocation, not one each (@bapatchirag)
  • Hold live refresh while a stage is in flight (@bapatchirag)
  • Implement svn add (@bapatchirag)
  • Document adding as its own operation, not part of staging (@bapatchirag)
  • Finish the Shelf panel's mouse handling (@bapatchirag)
  • Give the settings editor its mouse operations (@bapatchirag)
  • Document the mouse in the Shelf panel and the settings editor (@bapatchirag)
  • Make SVN timeouts recoverable via Refresh (@bapatchirag)
  • Show a move as a move, not an unrelated add and delete (@bapatchirag)
  • Filter the Files panel by copy history (@bapatchirag)
  • Show which version is running on the About screen (@bapatchirag)
  • Re-read only what a revert touched, not the whole working copy (@bapatchirag)
  • Change the tree on the revert, not on the read that confirms it (@bapatchirag)
  • Fail a patch that introduces a known vulnerability (@bapatchirag)
  • Change the tree on the delete, not on the read that confirms it (@bapatchirag)
  • Read a state filter as the code the row draws (@bapatchirag)
  • Update documentation for v1.7.1 (@bapatchirag)

v1.7.0

  • ci: bump actions/checkout from 4 to 7 (@dependabot[bot])
  • ci: bump actions/deploy-pages from 4 to 5 (@dependabot[bot])
  • ci: bump actions/upload-pages-artifact from 3 to 5 (@dependabot[bot])
  • ci: bump golangci/golangci-lint-action from 8 to 9 (@dependabot[bot])
  • ci: bump goreleaser/goreleaser-action from 6 to 7 (@dependabot[bot])
  • site: bump the astro group in /site with 2 updates (@dependabot[bot])
  • Updated changelog for v1.6.1 (@bapatchirag)
  • Dependabot — ignore major TypeScript bumps for the site (@bapatchirag)
  • Merge dependabot #160 — ci: bump actions/checkout from 4 to 7 (@bapatchirag)
  • Merge dependabot #162 — ci: bump actions/deploy-pages from 4 to 5 (@bapatchirag)
  • Merge dependabot #163 — ci: bump actions/upload-pages-artifact from 3 to 5 (@bapatchirag)
  • Merge dependabot #164 — ci: bump golangci/golangci-lint-action from 8 to 9 (@bapatchirag)
  • Merge dependabot #165 — ci: bump goreleaser/goreleaser-action from 6 to 7 (@bapatchirag)
  • Merge dependabot #166 — site: bump the astro group in /site with 2 updates (@bapatchirag)
  • deps: bump github.com/charmbracelet/x/ansi from 0.11.6 to 0.11.8 (@dependabot[bot])
  • ci: bump actions/setup-go from 5 to 7 (@dependabot[bot])
  • ci: bump actions/setup-node from 4 to 7 (@dependabot[bot])
  • site: bump astro from 7.2.0 to 7.2.1 in /site in the astro group (@dependabot[bot])
  • Hide rules: Add the configuration schema (@bapatchirag)
  • Hide rules: Add the EditList component (@bapatchirag)
  • Hide rules: Add an action field kind to Form (@bapatchirag)
  • Hide rules: Edit the rules from the settings editor (@bapatchirag)
  • Hide rules: Hide matching files from the Changes view (@bapatchirag)
  • Hide rules: Add documentation (@bapatchirag)
  • Hide rules: Drive EditList through teatest (@bapatchirag)
  • Panel navigation: Keep Main and the Command Log out of the Tab cycle (@bapatchirag)
  • Revision diff: Diff a single revision and a revision range (@bapatchirag)
  • Revision diff: Split a patch into its per-file sections (@bapatchirag)
  • Revision diff: Pick revisions to be diffed (@bapatchirag)
  • Revision diff: Diff the picked revisions on Main (@bapatchirag)
  • Revision diff: Drill the Log panel into the files a range touched (@bapatchirag)
  • Revision diff: Save and filter the drilled-in tree (@bapatchirag)
  • Revision diff: Add documentation (@bapatchirag)
  • Shelf: Add the on-disk store (@bapatchirag)
  • Shelf: Capture a complete diff and clear the paths it covers (@bapatchirag)
  • Shelf: Add the panel that browses shelved changes (@bapatchirag)
  • Shelf: Take picked changes out of the working copy (@bapatchirag)
  • Shelf: Put a shelved change set back (@bapatchirag)
  • Shelf: Keep the store out of the working copy's changes (@bapatchirag)
  • Shelf: Add documentation (@bapatchirag)
  • Missing stash docs and tests (@bapatchirag)
  • Open the side-by-side view with the diff itself focused (@bapatchirag)
  • Demos: Re-record the suite for 1.7.0 (@bapatchirag)

v1.6.1

  • Updated changelog for v1.6.0 (@bapatchirag)
  • Stop install.sh ending on an rm error (@bapatchirag)
  • Click a panel to focus it (@bapatchirag)
  • Click a view name to select it (@bapatchirag)
  • Click a row to select it (@bapatchirag)
  • Double click a row to run it (@bapatchirag)
  • Scroll a panel with the wheel (@bapatchirag)
  • Bump fast-uri in /site in the npm_and_yarn group across 1 directory (@dependabot[bot])
  • Make the mouse opt-in (@bapatchirag)
  • Update documentation about mouse operation support (@bapatchirag)
  • Stop e opening an arbitrary file from a directory row (@bapatchirag)
  • security: Update js-yaml and nanoid (@bapatchirag)
  • Add the community health files GitHub looks for (@bapatchirag)
  • Check links to repository files against the tree (@bapatchirag)

v1.6.0

  • Recover build identity for `go install` binaries (@bapatchirag)
  • Pin the approved release through the apply path (@bapatchirag)
  • Install over the running binary, not a re-derived path (@bapatchirag)
  • Fetch the install script over HTTPS instead of piping curl (@bapatchirag)
  • Verify the update actually landed (@bapatchirag)
  • Test and lint install.sh (@bapatchirag)
  • Verify the download and install it atomically (@bapatchirag)
  • Never lose the update prompt (@bapatchirag)
  • Close the session before swapping the binary (@bapatchirag)
  • Throttle the startup update check (@bapatchirag)
  • Reject --update-with without --update, and relax the toolchain (@bapatchirag)
  • Say what the keys do in the resolution overlay (@bapatchirag)
  • Switch working copies without restarting (@bapatchirag)
  • Give the landing page a distinct og:title (@bapatchirag)
  • Added FAQs to the site docs (@bapatchirag)
  • Put the release history on the site (@bapatchirag)
  • Re-record every demo wide enough for the Files tabs (@bapatchirag)

v1.5.1

  • Removed spurious reference to Homebrew installation (@bapatchirag)
  • fix(app): correct folder staging state in changelist view (@diptopandit)
  • Diffs view — delete a saved patch with d (@bapatchirag)
  • Diffs view — apply a saved patch with p (@bapatchirag)
  • Rejects view — browse the .rej files a patch leaves behind (@bapatchirag)
  • Docs — fix broken source path links (@bapatchirag)
  • Open in editor — land on the change, not line one (@bapatchirag)
  • Resolve conflicts and rejects side by side with m (@bapatchirag)
  • Tests — lift coverage from 80.5% to 91.8% (@bapatchirag)
  • Fix the sshagent timeout test on dash (@bapatchirag)
  • Split app.go into themed files (@bapatchirag)
  • Group the six load generations into one struct (@bapatchirag)
  • Split Update into four typed dispatchers (@bapatchirag)
  • Split app_test.go to mirror the production files (@bapatchirag)

v1.5.0

  • About screen — link the documentation site (@bapatchirag)
  • Log panel — page through revision history (@bapatchirag)
  • Source path — change the working directory for the session (@bapatchirag)
  • Diff loading — drop superseded replies and keep Main's scroll (@bapatchirag)
  • Session store — cache diffs for the life of the process (@bapatchirag)
  • Lazy loading — pay for history and saved diffs only when looked at (@bapatchirag)
  • Optimistic staging — move the model first, let svn confirm (@bapatchirag)
  • Pending rows — acknowledge revert, delete and commit at once (@bapatchirag)
  • Live refresh — watch the working copy and follow it (@bapatchirag)
  • Render memoization — style a diff once, flatten a tree once (@bapatchirag)
  • Docs — document live refresh, optimistic staging and session caching (@bapatchirag)
  • Error toast — keep a long svn failure inside the terminal (@bapatchirag)
  • Timeout errors — report the deadline, not the signal (@bapatchirag)
  • Docs — document the source path, svn timeouts and the new packages (@bapatchirag)

v1.4.1

  • Give the landing page a descriptive browser title (@bapatchirag)
  • Site header — add GitHub star, fork, watch and follow links (@bapatchirag)
  • Release notes — drop commit SHAs and merge commits (@bapatchirag)
  • Build every darwin and linux release target (@bapatchirag)
  • Install every published release target (@bapatchirag)
  • Package a VSIX for every release target (@bapatchirag)
  • Drop the extension's Windows binary branch (@bapatchirag)
  • Name the four supported platforms in the docs (@bapatchirag)
  • Distribution — drop the VS Code extension (@bapatchirag)
  • Release notes — credit commit authors via .Logins (@bapatchirag)

v1.4.0

  • Give the landing page a descriptive browser title (@bapatchirag)
  • Site header — add GitHub star, fork, watch and follow links (@bapatchirag)
  • Release notes — drop commit SHAs and merge commits (@bapatchirag)
  • Build every darwin and linux release target (@bapatchirag)
  • Install every published release target (@bapatchirag)
  • Package a VSIX for every release target (@bapatchirag)
  • Drop the extension's Windows binary branch (@bapatchirag)
  • Name the four supported platforms in the docs (@bapatchirag)
  • Distribution — drop the VS Code extension (@bapatchirag)

v1.3.0

  • Settings — display the working copy from its root or the launch directory (@bapatchirag)
  • Settings — choose where the diffs revision creates are written (@bapatchirag)
  • Save diffs to a file (@bapatchirag)
  • Files panel — browse the diffs already saved to disk (@bapatchirag)
  • Open the highlighted file in an editor (@bapatchirag)
  • Text inputs — move and delete by word (@bapatchirag)
  • Status bar — hint only the keys the focused panel answers to (@bapatchirag)
  • Read a diff side by side in a paged overlay (@bapatchirag)
  • Help menu — group the keybindings into sections (@bapatchirag)
  • Help menu — group the keybindings into sections (@bapatchirag)
  • Ignore the documentation-site plan and status log (@bapatchirag)
  • Documentation site — scaffold Astro and Starlight behind a Pages workflow (@bapatchirag)
  • Add Cipher design system (@bapatchirag)
  • Migrate README content into the documentation site (@bapatchirag)
  • Add the documentation site landing page (@bapatchirag)
  • Make HelpSections the single source of truth for keybindings (@bapatchirag)
  • Generate the keybindings reference from keymap data (@bapatchirag)
  • Add per-feature demo recordings (@bapatchirag)
  • Trim the README and gate the site in CI (@bapatchirag)

v1.2.0

  • Self-update — startup prompt + --update CLI, gated to release builds (@bapatchirag)
  • Configuration manager — load and save ~/.config/revision/config.json (@bapatchirag)
  • Colour themes — six schemes with a live in-app picker (@bapatchirag)
  • Directory diffs — config switch + D toggle keybind (@bapatchirag)
  • First-run config — create config.json with defaults via Ensure() (@bapatchirag)
  • Settings editor — in-app overlay to edit config.json, bound to S (@bapatchirag)
  • Fix lint — clear two staticcheck findings in the settings editor (@bapatchirag)
  • Reconcile config on update — merge new keys, reset conflicts to defaults (@bapatchirag)
  • SSH key config — add sshKeyPath setting and ssh-agent load check (@bapatchirag)
  • SSH passphrase unlock — prompt for and add the required key at startup (@bapatchirag)
  • SSH key detection — match the agent by fingerprint, not file path (@bapatchirag)
  • Panel filtering & search — filter lists, highlight detail matches (@bapatchirag)
  • Hide untracked files — config default with a session-only toggle (@bapatchirag)
  • Fold the theme picker into Settings — live-preview as the theme field cycles (@bapatchirag)
  • Directory-level revert & delete — act on every file under the row (@bapatchirag)
  • Update to a revision from the Log panel — behind conflict-aware confirmations (@bapatchirag)
  • Revision indicator — show the working-copy revision against HEAD (@bapatchirag)
  • Update progress modal — "Updating from rX to rY…" until svn returns (@bapatchirag)
  • Update progress modal — name "the latest revision" for a HEAD update, not a stale number (@bapatchirag)
  • Log panel — space updates to the selected revision, an asterisk marks the working copy (@bapatchirag)
  • Themes — pin named themes to true-color so they render the same everywhere (@bapatchirag)
  • Main panel — title it after the focused side panel (@bapatchirag)
  • Main panel — show its [0] hotkey badge like the other panels (@bapatchirag)
  • Status panel — show working-copy paths and revision numbers (@bapatchirag)
  • Status panel — show an About screen in Main while it's focused (@bapatchirag)
  • Files panel — show the file index and count in its bottom border (@bapatchirag)
  • Command log — mirror the svn actions you run below Main (@bapatchirag)
  • Status panel — name the branch the working copy is checked out from (@bapatchirag)
  • Docs — document everything shipped since v1.1.0 and re-record the demo (@bapatchirag)

v1.1.0

  • Panel scrolling & scrollbars — horizontal scroll + bars on both axes (@bapatchirag)
  • Colour-code the diff panel — additions, deletions, hunks and headers (@bapatchirag)
  • Pin the diff gutter — +/- markers stay visible while scrolling (@bapatchirag)
  • Trim the diff panel header — drop file name and SVN status (@bapatchirag)
  • Show changed files as a directory tree rooted at / (@bapatchirag)
  • Name the whole staged set with n, not just the highlighted file (@bapatchirag)
  • Stage or unstage a whole directory with space (@bapatchirag)
  • Show a directory's combined diff when it is highlighted (@bapatchirag)
  • Highlight the active row in every selectable list (@bapatchirag)
  • Show full revision and author in Log panel (@bapatchirag)
  • Refresh the README and hero demo for v1.1.0 (@bapatchirag)

v1.0.0

  • Add logo and status badges to README (Chirag Bapat)
  • README refresh — hero GIF, updated features/keybindings, and a roadmap (Chirag Bapat)
  • Named changelists — Changelists view, assign prompt, per-changelist commit (Chirag Bapat)
  • Reusable multi-view panel components — Views container + Panel border tabs (Chirag Bapat)
  • Polish & hardening — ? help menu, SVN auth hints, extension icon (Chirag Bapat)
  • Working-copy mutations — revert/delete via Modal, svn update, Toast (Chirag Bapat)
  • Staging & commit — changelist staging, TextArea editor, svn commit (Chirag Bapat)
  • Diff view + read-only log — svn Diff/Log, reusable Table, [3] Log panel (Chirag Bapat)
  • Refactor monolithic UI into layered reusable TUI components + gallery (Chirag Bapat)
  • Ignore any local agents created for development (Chirag Bapat)
  • Fix golangci-lint job to use v2-compatible action and version (bapatchirag)
  • fix: update golangci-lint to v1.67.1 to support Go 1.26 (Chirag Bapat)
  • Phase A: svn status/info core, read-only status TUI, VS Code launcher, install.sh, CI + tag-based release (bapatchirag)
  • Phase 0: bootstrap repo, module, gitignore, LICENSE, README, Makefile (bapatchirag)