Skip to content

Commit 707d02e

Browse files
committed
changelog: v0.2.9
1 parent 68ad741 commit 707d02e

1 file changed

Lines changed: 28 additions & 0 deletions

File tree

CHANGELOG.md

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,33 @@
11
# Changelog
22

3+
## v0.2.9 - 2026-08-02
4+
5+
- The shim could stop journaling partway through a command with no sign
6+
that it had, so `undo` reported "nothing to undo" for changes it
7+
should have caught. Two paths led there. `rmdir` set the reentrancy
8+
guard on entry but cleared it only on success, so any failed `rmdir`
9+
(a non-empty directory, a missing one) left the shim deaf for the rest
10+
of that process: `rmdir a b` with a non-empty `a` was enough to lose
11+
everything `b` did. Separately, the table that suppresses repeat
12+
backups of the same file was keyed on nothing, so it survived across
13+
commands in a process that outlives one. That is exactly the
14+
`UNDO_CAPTURE_SHELL=1` setup, where the shim lives in the shell
15+
itself, and a file written in one command went unbacked in every later
16+
one. The table now resets when the session changes. Fixed by @lai0xn
17+
in #3; @davised reported the `rmdir` half independently in #6.
18+
- `undo run -- <cmd>` exited 255 when the command was killed by a
19+
signal, which is not what the shell it stands in for would report. It
20+
now exits 128+signal, so a wrapped command interrupted with Ctrl-C
21+
gives 130 the way the unwrapped one does.
22+
- Undoing a `RENAME_EXCHANGE` could leave both paths empty. The swap ran
23+
through a temporary name, and if the middle step failed nothing put
24+
the first file back: it stayed parked at `<path>.undo-xchg`. Exchanges
25+
now go through the same helper the file-modification path uses, which
26+
rolls back on failure and moves the survivor into place when only one
27+
side is still there. Reported as a cross-device bug by @Arielpetit in
28+
#4; the kernel only permits an exchange within one filesystem, so the
29+
missing rollback was the real defect.
30+
331
## v0.2.8 - 2026-07-29
432

533
- Homebrew install instructions pointed at the wrong hook path. The site

0 commit comments

Comments
 (0)