<feed xmlns='http://www.w3.org/2005/Atom'>
<title>krino.git/internal/plan, branch v0.0.7</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.7</id>
<link rel='self' href='https://git.labunix.xyz/krino.git/atom?h=v0.0.7'/>
<link rel='alternate' type='text/html' href='https://git.labunix.xyz/krino.git/'/>
<updated>2026-09-14T21:07:57Z</updated>
<entry>
<title>plan 10 re-check: cut run column, damaged undo run, emptied directory cleanup, text turning binary, explain flags, interrupt docs</title>
<updated>2026-09-14T21:07:57Z</updated>
<author>
<name>Lukasz Kasprzak</name>
<email>lukas@labunix.xyz</email>
</author>
<published>2026-09-14T21:07:57Z</published>
<link rel='alternate' type='text/html' href='https://git.labunix.xyz/krino.git/commit/?id=c66a842ce4679a3ffa5504dad39b1402bea75e9f'/>
<id>urn:sha1:c66a842ce4679a3ffa5504dad39b1402bea75e9f</id>
<content type='text'>
</content>
</entry>
<entry>
<title>plan 10: missing and weak tests (per-step logging, trash path, fuzz oracle, w after error)</title>
<updated>2026-09-14T20:39:27Z</updated>
<author>
<name>Lukasz Kasprzak</name>
<email>lukas@labunix.xyz</email>
</author>
<published>2026-09-14T20:39:27Z</published>
<link rel='alternate' type='text/html' href='https://git.labunix.xyz/krino.git/commit/?id=9e65644f473d75ceb7e3ef67302189eeaba0f922'/>
<id>urn:sha1:9e65644f473d75ceb7e3ef67302189eeaba0f922</id>
<content type='text'>
</content>
</entry>
<entry>
<title>plan 9: undo review matches review, --min-age validated, future mtimes, rule names, conflict enum, dependency gate, absolute tool paths</title>
<updated>2026-09-14T19:43:23Z</updated>
<author>
<name>Lukasz Kasprzak</name>
<email>lukas@labunix.xyz</email>
</author>
<published>2026-09-14T19:43:23Z</published>
<link rel='alternate' type='text/html' href='https://git.labunix.xyz/krino.git/commit/?id=c497d173b24b1b8247fac9e996e5c0fe690c1769'/>
<id>urn:sha1:c497d173b24b1b8247fac9e996e5c0fe690c1769</id>
<content type='text'>
</content>
</entry>
<entry>
<title>plan 9: overwrite never trashes a directory or another scanned file</title>
<updated>2026-09-14T19:27:22Z</updated>
<author>
<name>Lukasz Kasprzak</name>
<email>lukas@labunix.xyz</email>
</author>
<published>2026-09-14T19:27:22Z</published>
<link rel='alternate' type='text/html' href='https://git.labunix.xyz/krino.git/commit/?id=aca389f0e63713b890214cad950ac3aee7e6aaf4'/>
<id>urn:sha1:aca389f0e63713b890214cad950ac3aee7e6aaf4</id>
<content type='text'>
</content>
</entry>
<entry>
<title>plan 9: placeholders stay inside the directory the rule names</title>
<updated>2026-09-14T19:24:22Z</updated>
<author>
<name>Lukasz Kasprzak</name>
<email>lukas@labunix.xyz</email>
</author>
<published>2026-09-14T19:24:22Z</published>
<link rel='alternate' type='text/html' href='https://git.labunix.xyz/krino.git/commit/?id=8c6afca96a9f0af41c5a9d05beb7f1dedb994740'/>
<id>urn:sha1:8c6afca96a9f0af41c5a9d05beb7f1dedb994740</id>
<content type='text'>
</content>
</entry>
<entry>
<title>plan 8: enum values read from source must all be handled</title>
<updated>2026-09-14T18:13:11Z</updated>
<author>
<name>Lukasz Kasprzak</name>
<email>lukas@labunix.xyz</email>
</author>
<published>2026-09-14T18:13:11Z</published>
<link rel='alternate' type='text/html' href='https://git.labunix.xyz/krino.git/commit/?id=754f362da077b06420ab8350dfb62bd2d8d89d75'/>
<id>urn:sha1:754f362da077b06420ab8350dfb62bd2d8d89d75</id>
<content type='text'>
</content>
</entry>
<entry>
<title>plan 8: placeholders cannot rename to dot names or climb out with ..</title>
<updated>2026-09-14T18:12:05Z</updated>
<author>
<name>Lukasz Kasprzak</name>
<email>lukas@labunix.xyz</email>
</author>
<published>2026-09-14T18:12:05Z</published>
<link rel='alternate' type='text/html' href='https://git.labunix.xyz/krino.git/commit/?id=ce9f7b10cf5025bdc2dfc08144f7efe011410a67'/>
<id>urn:sha1:ce9f7b10cf5025bdc2dfc08144f7efe011410a67</id>
<content type='text'>
</content>
</entry>
<entry>
<title>plan 8: fuzz decoders; fold ẞ and invalid UTF-8 correctly, refuse non-UTF-8 paths in krino new</title>
<updated>2026-09-14T18:10:01Z</updated>
<author>
<name>Lukasz Kasprzak</name>
<email>lukas@labunix.xyz</email>
</author>
<published>2026-09-14T18:10:01Z</published>
<link rel='alternate' type='text/html' href='https://git.labunix.xyz/krino.git/commit/?id=aa24cfb344b1b3eaef7217d996359023cd72ba28'/>
<id>urn:sha1:aa24cfb344b1b3eaef7217d996359023cd72ba28</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: planning — chains, placeholders, conflicts, JSON</title>
<updated>2026-09-12T10:58:14Z</updated>
<author>
<name>Lukasz Kasprzak</name>
<email>lukas@labunix.xyz</email>
</author>
<published>2026-09-12T10:58:14Z</published>
<link rel='alternate' type='text/html' href='https://git.labunix.xyz/krino.git/commit/?id=24a84671ace373ae331fa83a1ff484990f4dff0e'/>
<id>urn:sha1:24a84671ace373ae331fa83a1ff484990f4dff0e</id>
<content type='text'>
</content>
</entry>
</feed>
