Skip to content

Arbor v0.4.0 (Alpha) — Short questions, files one click away, safe ignored files, and a tidier window

Choose a tag to compare

@not-stbenjam not-stbenjam released this 06 Oct 17:09

This release is a round of polish from daily use: far fewer words when deleting, the files a deletion discards one click away, ignored files that are safe to lose no longer in the way, and a tidier window.

Heads-up: what arbor clean --yes deletes has changed

Ignored files that any install or build would make again (node_modules, .venv, __pycache__, tool caches, dist, build, target and the like) no longer keep a merged worktree from being recommended, in the app and on the command line alike. So arbor clean --yes now deletes merged worktrees whose only ignored files are covered by those rules, without --force. Pass --no-default-safe-ignored for the old behaviour. These files are deleted for good; Undo and arbor restore do not bring them back.

Ignored files that are safe to delete

  • A list of rules, in Settings under Ignored files considered safe and with --safe-ignored RULE on the command line, names ignored files that are safe to lose. A worktree whose ignored files are all covered is treated as clean: it is not asked about, and when merged it is recommended, marked Merged · Ignored files marked safe.
  • The defaults are dependencies, caches and build output. Nothing that commonly holds secrets or hand-made work is in them: no .env, editor folders, databases or key files.
  • Only ignored files are waived. A Git repository inside a covered folder still counts as one, and uncommitted changes still count.
  • The files list marks each ignored entry as marked safe or not, so it is plain what is keeping a worktree out of Recommended.

Deleting

  • The questions are a fraction of their length. Deleting a worktree with ignored files used to take about seventy words to ask; it now asks "Delete “old-build” and its ignored files?" and says its branch and commits are kept. Anything that truly cannot be recovered, such as a repository inside the folder, still has a line of its own.
  • A question agrees to what it names and nothing else. If a worktree turns out to hold something the question did not mention, a file made since the list was read for instance, it is left alone, its row is brought up to date, and the next question names it.
  • The files are one click away. A row's state ("Ignored files", "3 changed files") is a link to the list of what deleting would discard. The question has a Show Files… button, the list opened from it has Delete… to carry on, and the review of several worktrees has Show files beside each loss.
  • The list shows its progress while it loads: what it is doing and how far along, with a bar that fills only where there is a real total. Closing it stops the work.

The window

  • A list more than an hour old says so above its rows and offers Refresh, when the app is opened, when the window comes back to the front, and while it sits open. It was a day.
  • Sort, State and Last active are boxed, so they read as menus.
  • The hosts control in the sidebar is a dropdown: All hosts, This computer and each SSH host, with Manage hosts… below. "Folders on all hosts" is gone from the bar above the list.
  • The theme button switches between light and dark. System is still a choice in Settings.
  • The sidebar can be resized by dragging its edge (double-click to reset) and hidden with its button, the View menu or Ctrl/Cmd+B. Both are remembered.
  • Clicking outside any dialog closes it, as Escape does.
  • Every icon is now from Lucide, in place of ones drawn by hand. The scan options button is a gear.

Also

  • The review of several worktrees no longer says a deleted worktree cannot be brought back, which stopped being true with Undo in 0.3.0.