<feed xmlns='http://www.w3.org/2005/Atom'>
<title>krino.git/cmd/krino/sort_test.go, branch v0.0.9</title>
<subtitle>rule-based file sorter in Go, shows the plan before touching anything, applies only the files you choose, and can undo any run, with s-expression rules and a GTK 4 window</subtitle>
<id>https://git.labunix.xyz/krino.git/atom?h=v0.0.9</id>
<link rel='self' href='https://git.labunix.xyz/krino.git/atom?h=v0.0.9'/>
<link rel='alternate' type='text/html' href='https://git.labunix.xyz/krino.git/'/>
<updated>2026-09-14T22:41:00Z</updated>
<entry>
<title>only where an earlier directory's files ended up stays claimed</title>
<updated>2026-09-14T22:41:00Z</updated>
<author>
<name>Lukasz Kasprzak</name>
<email>lukas@labunix.xyz</email>
</author>
<published>2026-09-14T22:41:00Z</published>
<link rel='alternate' type='text/html' href='https://git.labunix.xyz/krino.git/commit/?id=2e812847572839e6c8097a7ecf5c4a469222087a'/>
<id>urn:sha1:2e812847572839e6c8097a7ecf5c4a469222087a</id>
<content type='text'>
</content>
</entry>
<entry>
<title>an earlier directory's applied results stay claimed for later ones</title>
<updated>2026-09-14T22:26:36Z</updated>
<author>
<name>Lukasz Kasprzak</name>
<email>lukas@labunix.xyz</email>
</author>
<published>2026-09-14T22:26:36Z</published>
<link rel='alternate' type='text/html' href='https://git.labunix.xyz/krino.git/commit/?id=f12f3f1356e4e96d419d66d13c2e67b73a50346f'/>
<id>urn:sha1:f12f3f1356e4e96d419d66d13c2e67b73a50346f</id>
<content type='text'>
</content>
</entry>
<entry>
<title>tests: apply error exits 1 and w stops krino through the real command; undo projection occupied half</title>
<updated>2026-09-14T21:58:43Z</updated>
<author>
<name>Lukasz Kasprzak</name>
<email>lukas@labunix.xyz</email>
</author>
<published>2026-09-14T21:58:43Z</published>
<link rel='alternate' type='text/html' href='https://git.labunix.xyz/krino.git/commit/?id=67ada0b5bc25cb6cff3ab780d82cb0bfe64e4968'/>
<id>urn:sha1:67ada0b5bc25cb6cff3ab780d82cb0bfe64e4968</id>
<content type='text'>
</content>
</entry>
<entry>
<title>a real run's later directories are not blocked by earlier claims; -n across directories documented</title>
<updated>2026-09-14T21:42:35Z</updated>
<author>
<name>Lukasz Kasprzak</name>
<email>lukas@labunix.xyz</email>
</author>
<published>2026-09-14T21:42:35Z</published>
<link rel='alternate' type='text/html' href='https://git.labunix.xyz/krino.git/commit/?id=166565025832c8a8faf7397766aeaa878980dd2d'/>
<id>urn:sha1:166565025832c8a8faf7397766aeaa878980dd2d</id>
<content type='text'>
</content>
</entry>
<entry>
<title>explain: shows a duplicate's skipped delete, leaves the cache alone, walks only for duplicate tests</title>
<updated>2026-09-14T21:40:56Z</updated>
<author>
<name>Lukasz Kasprzak</name>
<email>lukas@labunix.xyz</email>
</author>
<published>2026-09-14T21:40:56Z</published>
<link rel='alternate' type='text/html' href='https://git.labunix.xyz/krino.git/commit/?id=bb8b547023b0867f31d7452faceef5769a45b94b'/>
<id>urn:sha1:bb8b547023b0867f31d7452faceef5769a45b94b</id>
<content type='text'>
</content>
</entry>
<entry>
<title>krino: duplicates are found, never deleted</title>
<updated>2026-09-14T08:56:21Z</updated>
<author>
<name>Lukasz Kasprzak</name>
<email>lukas@labunix.xyz</email>
</author>
<published>2026-09-14T08:56:21Z</published>
<link rel='alternate' type='text/html' href='https://git.labunix.xyz/krino.git/commit/?id=1506c7dcd6032c04c1df6f5785b6dd3dfe4511cc'/>
<id>urn:sha1:1506c7dcd6032c04c1df6f5785b6dd3dfe4511cc</id>
<content type='text'>
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.
</content>
</entry>
<entry>
<title>krino: release 0.0.1 — man pages, install, examples, cross and release, README, changelog</title>
<updated>2026-09-13T00:31:32Z</updated>
<author>
<name>Lukasz Kasprzak</name>
<email>lukas@labunix.xyz</email>
</author>
<published>2026-09-13T00:31:32Z</published>
<link rel='alternate' type='text/html' href='https://git.labunix.xyz/krino.git/commit/?id=26c94eb3db62ec6eebbf8d22c11afe691d9520c4'/>
<id>urn:sha1:26c94eb3db62ec6eebbf8d22c11afe691d9520c4</id>
<content type='text'>
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.
</content>
</entry>
<entry>
<title>krino: acting — trash, journal, apply, lock, review, undo</title>
<updated>2026-09-12T18:14:47Z</updated>
<author>
<name>Lukasz Kasprzak</name>
<email>lukas@labunix.xyz</email>
</author>
<published>2026-09-12T18:14:47Z</published>
<link rel='alternate' type='text/html' href='https://git.labunix.xyz/krino.git/commit/?id=3f8679be9373ee7508d512dfdfc1dda0839c7f90'/>
<id>urn:sha1:3f8679be9373ee7508d512dfdfc1dda0839c7f90</id>
<content type='text'>
</content>
</entry>
<entry>
<title>krino: matching — scan, ignore, conditions, extraction, duplicates, explain, dry run</title>
<updated>2026-09-11T23:22:12Z</updated>
<author>
<name>Lukasz Kasprzak</name>
<email>lukas@labunix.xyz</email>
</author>
<published>2026-09-11T23:22:12Z</published>
<link rel='alternate' type='text/html' href='https://git.labunix.xyz/krino.git/commit/?id=3b36a48b7ce5a53a9366f3b31f94311f178e2553'/>
<id>urn:sha1:3b36a48b7ce5a53a9366f3b31f94311f178e2553</id>
<content type='text'>
</content>
</entry>
</feed>
