aboutsummaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* plan 10: stderr messages cannot be split by quoted newlines; config paths ↵Lukasz Kasprzak5 days11-33/+125
| | | | escaped; krino new refuses control characters; independent terminal oracle
* plan 10: an interrupt stops between steps; nohup keeps ignoring hangupsLukasz Kasprzak5 days6-11/+64
|
* plan 10: resumed undo re-checks what an earlier undo put back; occupied ↵Lukasz Kasprzak5 days2-2/+98
| | | | directory removals are not offered forever
* plan 10: a damaged log line refuses only its file, not the runLukasz Kasprzak5 days5-22/+130
|
* plan 10: a step that ran but could not be logged is named in the errorLukasz Kasprzak5 days2-1/+66
|
* plan 10: a format with no text is no match, not unreadableLukasz Kasprzak5 days4-3/+57
|
* plan 9: docs and changelog describe what 0.0.7 doesLukasz Kasprzak5 days4-45/+103
|
* plan 9: property test compares directories and refuses to pass vacuously; ↵Lukasz Kasprzak5 days3-14/+60
| | | | undo tracks directories trash restores recreate
* plan 9: undo review matches review, --min-age validated, future mtimes, rule ↵Lukasz Kasprzak5 days22-34/+240
| | | | names, conflict enum, dependency gate, absolute tool paths
* plan 9: content excludes fail closed; krino.conf excludes checked without ↵Lukasz Kasprzak5 days7-10/+126
| | | | directories
* plan 9: keyword cache keys on extension, max-read and Unicode tables, trims ↵Lukasz Kasprzak5 days9-39/+205
| | | | removed keywords
* plan 9: errors, explain traces, JSON and log fields never reach the terminal rawLukasz Kasprzak5 days8-16/+150
|
* plan 9: an interrupted or failed undo can be finishedLukasz Kasprzak5 days8-8/+252
|
* plan 9: undo checks trash identity, groups by directory, re-checks at ↵Lukasz Kasprzak5 days5-35/+318
| | | | execution, removes directories it recreates
* plan 9: trash skips orphaned names, fits long names, exposes InfoPathLukasz Kasprzak5 days2-13/+113
|
* plan 9: overwrite never trashes a directory or another scanned fileLukasz Kasprzak5 days3-1/+54
|
* plan 9: apply logs each step as it completes and stops a chain that landed ↵Lukasz Kasprzak5 days4-25/+139
| | | | elsewhere
* plan 9: placeholders stay inside the directory the rule namesLukasz Kasprzak5 days3-15/+91
|
* plan 9: the log restores a missing final newlineLukasz Kasprzak5 days2-1/+52
|
* krino: 0.0.7 — hardening: terminal-safe names, placeholder and swap ↵Lukasz Kasprzak5 days1-2/+17
| | | | guards, undo of chains, fuzz and property tests
* plan 8: generated apply and undo round trip; undo reverses chains within one ↵Lukasz Kasprzak5 days4-0/+272
| | | | file
* plan 8: enum values read from source must all be handledLukasz Kasprzak5 days5-0/+202
|
* plan 8: apply refuses a source swapped for a symlink or another fileLukasz Kasprzak5 days2-4/+117
|
* plan 8: placeholders cannot rename to dot names or climb out with ..Lukasz Kasprzak5 days2-0/+73
|
* plan 8: escape terminal controls in everything krino printsLukasz Kasprzak5 days10-27/+254
|
* plan 8: fuzz decoders; fold ẞ and invalid UTF-8 correctly, refuse ↵Lukasz Kasprzak5 days17-10/+347
| | | | non-UTF-8 paths in krino new
* plan 8: trash refuses unsafe entry names and relative pathsLukasz Kasprzak5 days3-4/+84
|
* plan 8: fuzz the log's escaping and round tripLukasz Kasprzak5 days2-1/+95
|
* go 1.25, toolchain go1.26.8, x/text v0.41.0: fixes GO-2026-5970 and the ↵Lukasz Kasprzak5 days5-8/+20
| | | | reachable stdlib vulnerabilities
* plan 8: threat model, make fuzz, race and vulncheckLukasz Kasprzak5 days2-2/+61
|
* krino: 0.0.6 — w applies and quits, choices echoed in redv0.0.6Lukasz Kasprzak5 days8-34/+185
|
* krino: 0.0.5 — keyword cache, t and d in reviewv0.0.5Lukasz Kasprzak5 days35-226/+1353
|
* 0.0.4: max-size, exclude forms, --min-agev0.0.4Lukasz Kasprzak5 days25-25/+825
|
* krino: 0.0.3 — the plan as one block per file, wrapped, and -Pv0.0.3Lukasz Kasprzak5 days19-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.2Lukasz Kasprzak5 days1-0/+2
|
* krino: coloured output, and --no-colorLukasz Kasprzak5 days13-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-colorLukasz Kasprzak5 days1-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 deletedLukasz Kasprzak5 days14-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 deletedLukasz Kasprzak5 days1-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.1Lukasz Kasprzak7 days30-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.1Lukasz Kasprzak7 days1-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.
* krino: acting — trash, journal, apply, lock, review, undoLukasz Kasprzak7 days35-53/+6958
|
* krino: planning — chains, placeholders, conflicts, JSONLukasz Kasprzak7 days27-117/+2423
|
* krino: matching — scan, ignore, conditions, extraction, duplicates, ↵Lukasz Kasprzak8 days39-27/+6729
| | | | explain, dry run
* krino: foundation — sexp reader, config language, init/new/checkLukasz Kasprzak8 days36-0/+4456