From b013e5fb87580e4cab0d85a0d2c8bb402c610413 Mon Sep 17 00:00:00 2001 From: Lukasz Kasprzak Date: Mon, 14 Sep 2026 22:42:52 +0200 Subject: plan 10: docs (-n, README version and scope, trash identity, --json U+FFFD, limitations, changelog) --- CHANGELOG.md | 21 ++++++++++++++++----- 1 file changed, 16 insertions(+), 5 deletions(-) (limited to 'CHANGELOG.md') 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 -- cgit v1.3