| Commit message (Collapse) | Author | Age | Files | Lines | |
|---|---|---|---|---|---|
| * | explain: shows a duplicate's skipped delete, leaves the cache alone, walks ↵ | Lukasz Kasprzak | 5 days | 5 | -3/+54 |
| | | | | | only for duplicate tests | ||||
| * | content tests are three-valued: unknown when unreadable or read in part | Lukasz Kasprzak | 5 days | 11 | -59/+283 |
| | | |||||
| * | captures keep the name's diacritics | Lukasz Kasprzak | 5 days | 11 | -30/+216 |
| | | |||||
| * | tests run on OpenBSD; a tool's error message survives one large write; lock ↵ | Lukasz Kasprzak | 5 days | 5 | -12/+36 |
| | | | | | pids beyond 32 bits name no process | ||||
| * | text that turns binary further on has no content, like an image | Lukasz Kasprzak | 5 days | 7 | -27/+31 |
| | | |||||
| * | plan 10 re-check: cut run column, damaged undo run, emptied directory ↵v0.0.7 | Lukasz Kasprzak | 5 days | 16 | -17/+203 |
| | | | | | cleanup, text turning binary, explain flags, interrupt docs | ||||
| * | plan 10: docs (-n, README version and scope, trash identity, --json U+FFFD, ↵ | Lukasz Kasprzak | 5 days | 6 | -22/+80 |
| | | | | | limitations, changelog) | ||||
| * | plan 10: missing and weak tests (per-step logging, trash path, fuzz oracle, ↵ | Lukasz Kasprzak | 5 days | 7 | -26/+183 |
| | | | | | w after error) | ||||
| * | plan 10: commands refuse global flags they do not use | Lukasz Kasprzak | 5 days | 7 | -0/+75 |
| | | |||||
| * | plan 10: stderr messages cannot be split by quoted newlines; config paths ↵ | Lukasz Kasprzak | 5 days | 11 | -33/+125 |
| | | | | | escaped; krino new refuses control characters; independent terminal oracle | ||||
| * | plan 10: an interrupt stops between steps; nohup keeps ignoring hangups | Lukasz Kasprzak | 5 days | 6 | -11/+64 |
| | | |||||
| * | plan 10: resumed undo re-checks what an earlier undo put back; occupied ↵ | Lukasz Kasprzak | 5 days | 2 | -2/+98 |
| | | | | | directory removals are not offered forever | ||||
| * | plan 10: a damaged log line refuses only its file, not the run | Lukasz Kasprzak | 5 days | 5 | -22/+130 |
| | | |||||
| * | plan 10: a step that ran but could not be logged is named in the error | Lukasz Kasprzak | 5 days | 2 | -1/+66 |
| | | |||||
| * | plan 10: a format with no text is no match, not unreadable | Lukasz Kasprzak | 5 days | 4 | -3/+57 |
| | | |||||
| * | plan 9: docs and changelog describe what 0.0.7 does | Lukasz Kasprzak | 5 days | 4 | -45/+103 |
| | | |||||
| * | plan 9: property test compares directories and refuses to pass vacuously; ↵ | Lukasz Kasprzak | 5 days | 3 | -14/+60 |
| | | | | | undo tracks directories trash restores recreate | ||||
| * | plan 9: undo review matches review, --min-age validated, future mtimes, rule ↵ | Lukasz Kasprzak | 5 days | 22 | -34/+240 |
| | | | | | names, conflict enum, dependency gate, absolute tool paths | ||||
| * | plan 9: content excludes fail closed; krino.conf excludes checked without ↵ | Lukasz Kasprzak | 5 days | 7 | -10/+126 |
| | | | | | directories | ||||
| * | plan 9: keyword cache keys on extension, max-read and Unicode tables, trims ↵ | Lukasz Kasprzak | 5 days | 9 | -39/+205 |
| | | | | | removed keywords | ||||
| * | plan 9: errors, explain traces, JSON and log fields never reach the terminal raw | Lukasz Kasprzak | 5 days | 8 | -16/+150 |
| | | |||||
| * | plan 9: an interrupted or failed undo can be finished | Lukasz Kasprzak | 5 days | 8 | -8/+252 |
| | | |||||
| * | plan 9: undo checks trash identity, groups by directory, re-checks at ↵ | Lukasz Kasprzak | 5 days | 5 | -35/+318 |
| | | | | | execution, removes directories it recreates | ||||
| * | plan 9: trash skips orphaned names, fits long names, exposes InfoPath | Lukasz Kasprzak | 5 days | 2 | -13/+113 |
| | | |||||
| * | plan 9: overwrite never trashes a directory or another scanned file | Lukasz Kasprzak | 5 days | 3 | -1/+54 |
| | | |||||
| * | plan 9: apply logs each step as it completes and stops a chain that landed ↵ | Lukasz Kasprzak | 5 days | 4 | -25/+139 |
| | | | | | elsewhere | ||||
| * | plan 9: placeholders stay inside the directory the rule names | Lukasz Kasprzak | 5 days | 3 | -15/+91 |
| | | |||||
| * | plan 9: the log restores a missing final newline | Lukasz Kasprzak | 5 days | 2 | -1/+52 |
| | | |||||
| * | krino: 0.0.7 — hardening: terminal-safe names, placeholder and swap ↵ | Lukasz Kasprzak | 5 days | 1 | -2/+17 |
| | | | | | guards, undo of chains, fuzz and property tests | ||||
| * | plan 8: generated apply and undo round trip; undo reverses chains within one ↵ | Lukasz Kasprzak | 5 days | 4 | -0/+272 |
| | | | | | file | ||||
| * | plan 8: enum values read from source must all be handled | Lukasz Kasprzak | 5 days | 5 | -0/+202 |
| | | |||||
| * | plan 8: apply refuses a source swapped for a symlink or another file | Lukasz Kasprzak | 5 days | 2 | -4/+117 |
| | | |||||
| * | plan 8: placeholders cannot rename to dot names or climb out with .. | Lukasz Kasprzak | 5 days | 2 | -0/+73 |
| | | |||||
| * | plan 8: escape terminal controls in everything krino prints | Lukasz Kasprzak | 5 days | 10 | -27/+254 |
| | | |||||
| * | plan 8: fuzz decoders; fold ẞ and invalid UTF-8 correctly, refuse ↵ | Lukasz Kasprzak | 5 days | 17 | -10/+347 |
| | | | | | non-UTF-8 paths in krino new | ||||
| * | plan 8: trash refuses unsafe entry names and relative paths | Lukasz Kasprzak | 5 days | 3 | -4/+84 |
| | | |||||
| * | plan 8: fuzz the log's escaping and round trip | Lukasz Kasprzak | 5 days | 2 | -1/+95 |
| | | |||||
| * | go 1.25, toolchain go1.26.8, x/text v0.41.0: fixes GO-2026-5970 and the ↵ | Lukasz Kasprzak | 5 days | 5 | -8/+20 |
| | | | | | reachable stdlib vulnerabilities | ||||
| * | plan 8: threat model, make fuzz, race and vulncheck | Lukasz Kasprzak | 5 days | 2 | -2/+61 |
| | | |||||
| * | krino: 0.0.6 — w applies and quits, choices echoed in redv0.0.6 | Lukasz Kasprzak | 5 days | 8 | -34/+185 |
| | | |||||
| * | krino: 0.0.5 — keyword cache, t and d in reviewv0.0.5 | Lukasz Kasprzak | 5 days | 35 | -226/+1353 |
| | | |||||
| * | 0.0.4: max-size, exclude forms, --min-agev0.0.4 | Lukasz Kasprzak | 5 days | 25 | -25/+825 |
| | | |||||
| * | krino: 0.0.3 — the plan as one block per file, wrapped, and -Pv0.0.3 | Lukasz Kasprzak | 5 days | 19 | -253/+617 |
| | | | | | | | | | Each file shows its steps, then the rule and the reason it matched, one field per line; on a terminal every line wraps to its width with continuation lines under their own column, and piped output is never wrapped. Choosing per file shows the same block. -P / --no-pager prints the plan without the pager. A duplicate's original is shown with ~. | ||||
| * | krino: 0.0.2v0.0.2 | Lukasz Kasprzak | 5 days | 1 | -0/+2 |
| | | |||||
| * | krino: coloured output, and --no-color | Lukasz Kasprzak | 5 days | 13 | -110/+393 |
| | | | | | | | | | | One palette type styles the plan table, warnings, headers, outcome counts, prompt keys, undo's refused steps and krino log's (undone), from the 16-colour ANSI palette plus bold and faint only. Widths are measured on the plain text, so columns line up; with colour off the output is unchanged. --no-color works before or after any subcommand, as NO_COLOR does. The two search-and-replace colourings are gone. | ||||
| * | krino: coloured output, and --no-color | Lukasz Kasprzak | 5 days | 1 | -3/+26 |
| | | | | | | | | Lukasz, 2026-09-14: colour the output for ease of reading, with an option of no colour. Section 8.2 now lists what is styled, from the 16-colour ANSI palette plus bold and faint only, so the terminal theme decides the look; section 11 adds --no-color; section 15 adds the colour tests. | ||||
| * | krino: duplicates are found, never deleted | Lukasz Kasprzak | 5 days | 14 | -80/+551 |
| | | | | | | | | | | A rule combining (duplicate) with a delete action is refused at load, and a file that is a duplicate under any duplicate scope its directory uses gets no delete step from any rule: the plan shows it skipped and the chain continues. A failed duplicate check blocks the delete too. Tests cover (matched), another rule's own condition, a test evaluation skipped, two scopes and a failed check, each checking every copy is still on disk. | ||||
| * | krino: duplicates are found, never deleted | Lukasz Kasprzak | 5 days | 1 | -9/+55 |
| | | | | | | | | | | Lukasz, 2026-09-14: leave deleting duplicates to the user or jdupes. Section 5.5 now forbids a delete action in any rule using (duplicate), and skips any delete step for a file that is a duplicate under a scope its directory uses, which closes the (matched) and other-rule routes. Two scopes that elect different originals can then only move copies aside, never delete them. The consequences land in 4.5, 7.1, the 8.2 example, 15 and 17. | ||||
| * | krino: release 0.0.1 — man pages, install, examples, cross and release, ↵v0.0.1 | Lukasz Kasprzak | 7 days | 30 | -50/+2939 |
| | | | | | | | | | | README, changelog Also: undo removes the directories its run created; a hardlink is never a duplicate of its own other name; a flag written before "undo" is honoured; --version prints no leading v. Duplicate conditions with different scopes not sharing an original is documented as a known limitation. | ||||
| * | krino: no performance target for 0.0.1 | Lukasz Kasprzak | 7 days | 1 | -2/+8 |
| | | | | | | | | | | | Lukasz: "no performance goal". Section 13s "under 2 s on a 4-core laptop" is replaced with the decision and its evidence, so it is not reinstated later: measured throughput is dominated by the external extractors, not by krino. A real folder of 265 files with 164 needing pdftotext at roughly 80 ms each takes 12-17 s; a synthetic 4405-file tree needing no extraction takes 1.09 s. A single threshold would describe popplers speed and the shape of one folder. The measurement is still reported in the release notes; nothing is promised. | ||||
