aboutsummaryrefslogtreecommitdiff
path: root/CHANGELOG.md
diff options
context:
space:
mode:
authorLukasz Kasprzak <lukas@labunix.xyz>2026-09-14 22:42:52 +0200
committerLukasz Kasprzak <lukas@labunix.xyz>2026-09-14 22:42:52 +0200
commitb013e5fb87580e4cab0d85a0d2c8bb402c610413 (patch)
tree84aefe0c6c3b91f6bbc51a329c143b9ef60f9de4 /CHANGELOG.md
parent9e65644f473d75ceb7e3ef67302189eeaba0f922 (diff)
downloadkrino-b013e5fb87580e4cab0d85a0d2c8bb402c610413.tar.gz
krino-b013e5fb87580e4cab0d85a0d2c8bb402c610413.zip
plan 10: docs (-n, README version and scope, trash identity, --json U+FFFD, limitations, changelog)
Diffstat (limited to 'CHANGELOG.md')
-rw-r--r--CHANGELOG.md21
1 files changed, 16 insertions, 5 deletions
diff --git a/CHANGELOG.md b/CHANGELOG.md
index f34c309..f86844f 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -22,20 +22,28 @@ Hostile names and contents
same plan; it skips or takes a free name instead.
- A content exclude holds when its content test cannot read the file
(fails closed), so a protected file krino could not read is left alone.
+ A file whose format has no text (an image, an archive) simply does not
+ match a content test, so it is not set aside.
- Extraction tools are only found through absolute PATH entries.
Apply and undo
-- Every step is logged as soon as it has run; SIGHUP is handled like
- SIGTERM. A run killed mid-chain can be undone as far as it got.
+- Every step is logged as soon as it has run; a step that ran but could
+ not be logged is reported with where its file is now. SIGHUP is handled
+ like SIGTERM, unless krino runs under `nohup`. An interrupt finishes the
+ current step and skips the rest of that file's chain. A run killed
+ mid-chain can be undone as far as it got.
- Undo reverses a file its run renamed and then moved, moved twice, or
moved and then trashed (it refused them before).
- Undo restores a trash entry only while it is still the file the run put
there, re-checks every file just before acting, keeps same-named files
- of two directories apart, and leaves no directory behind.
+ of two directories apart, and leaves no directory behind once it
+ completes. Finishing an undo that stopped part way refuses a file
+ changed since.
- An undo that stopped part way can be finished by undoing the run again;
plain `krino undo` after an undo does that.
- The log restores a missing final newline, so a crash mid-line no longer
- breaks the next run's undo.
+ breaks the next run's undo, and a damaged line refuses only the file it
+ names.
- Trash entries skip names left orphaned in the Trash, and long names are
shortened to fit.
@@ -52,7 +60,10 @@ Command line
- `w` stops krino even when applying fails.
- `--min-age` is refused by commands it does not apply to, and an empty
value is an error; a file dated in the future counts as brand new.
-- `krino new` refuses a path that is not valid UTF-8, with that reason.
+- `krino new` refuses a path that is not valid UTF-8 or holds control or
+ bidirectional characters, with that reason.
+- `-n`, `-y`, `--json` and `-v` are refused by commands that do not use
+ them, instead of ignored: `krino -n new` no longer writes config.
- A rule name cannot start with "(".
- Builds need Go 1.25 or newer and use the Go 1.26.8 toolchain;
`golang.org/x/text` is v0.41.0 (GO-2026-5970, and through the toolchain