Worktree history
Closing a terminal does not throw its checkout away. The history list shows every worktree a project has, open and parked, and puts a closed one back where it was.
Opening the list
The history button sits on the workspace top bar and works on the active project. In the Terminals view, each project’s header has the same button between its plus and its x. Both open the same list, and a worktree loaded from either one is open in both views. Escape or a click elsewhere closes the list.
The rows
The project’s open terminals come first, in the order the views show them, each with a tick. Parked checkouts from terminals closed earlier follow, newest first. A parked checkout is listed only under the project its terminal ran in. A project with nothing yet reads no worktrees yet.
A row reads wt: followed by the subject of the newest commit the checkout made itself. Automatic commits are already named after the work they did, so each row says the last thing that landed in it. Pointing at the name shows it in full.
- A checkout with no commit of its own reads
wt: Untitled. That covers a terminal whose first run has not made its checkout yet, and a checkout with no commit yet. The main branch’s own commits are never borrowed as a name. - Once a row has a name, it keeps it. After the work is pushed onto the main branch and the branch has no commit of its own left, the row still shows the name it had.
Loading one back
Click a parked row to reopen its terminal under the same identity, with its transcript, just as the app does for open terminals when it starts. The branch, the checkout and the saved conversation all find it again, and the next run carries on in the same tree. Clicking a row that is already open does nothing.
Deleting a checkout
Every row has a trash button.
- A parked checkout with no work in it is deleted at once.
- A checkout that holds work, or one a terminal is open on, asks first. The dialog says either that the worktree holds unfinished work or which terminal is open on it, and what deleting it throws away. Press Delete to go ahead.
- A terminal that has not made its checkout yet has nothing on disk. Its trash button closes the terminal instead, and nothing is deleted.
Deleting removes the checkout and its branch whatever they hold, so the disk space really comes back. It also frees the terminal’s ports, the same as closing it.
What the app does on its own
Before each run, a checkout that holds no work, with no commit of its own and no changed file, is quietly brought up to date with the main branch. A checkout with any work in it is never touched. Nothing is reported either way, because nothing can conflict.
Parked checkouts that hold no work are also trimmed in the background, keeping the six most recently used. Disk use then follows how much parallel work you do, not how many terminals you have ever opened. A checkout that holds work is always kept.