<feed xmlns='http://www.w3.org/2005/Atom'>
<title>krino.git/README.md, branch main</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=main</id>
<link rel='self' href='https://git.labunix.xyz/krino.git/atom?h=main'/>
<link rel='alternate' type='text/html' href='https://git.labunix.xyz/krino.git/'/>
<updated>2026-09-17T12:29:01Z</updated>
<entry>
<title>0.0.12: the changelog, the checklist and the status line</title>
<updated>2026-09-17T12:29:01Z</updated>
<author>
<name>Lukasz Kasprzak</name>
<email>lukas@labunix.xyz</email>
</author>
<published>2026-09-17T12:29:01Z</published>
<link rel='alternate' type='text/html' href='https://git.labunix.xyz/krino.git/commit/?id=9ff1297471a483bad1b2b38ccb1e42614f60fc5e'/>
<id>urn:sha1:9ff1297471a483bad1b2b38ccb1e42614f60fc5e</id>
<content type='text'>
</content>
</entry>
<entry>
<title>the module path is git.labunix.xyz/krino</title>
<updated>2026-09-17T10:54:06Z</updated>
<author>
<name>Lukasz Kasprzak</name>
<email>lukas@labunix.xyz</email>
</author>
<published>2026-09-17T10:54:06Z</published>
<link rel='alternate' type='text/html' href='https://git.labunix.xyz/krino.git/commit/?id=1884d56b0d399e9cdb80016a9c166b0120989933'/>
<id>urn:sha1:1884d56b0d399e9cdb80016a9c166b0120989933</id>
<content type='text'>
So that go install can find it. cgit serves no go-import meta tag, so
nginx answers a ?go-get=1 request for /NAME with one pointing at
https://git.labunix.xyz/NAME.git; the alternative was carrying a .git
suffix through every import line forever.

One sed over the imports, both go.mod files, and the dependency gate's
whitelist. Nothing else depends on the path. go install works from the
next tag, the first release whose go.mod carries it.
</content>
</entry>
<entry>
<title>the repository has a public address</title>
<updated>2026-09-17T10:34:28Z</updated>
<author>
<name>Lukasz Kasprzak</name>
<email>lukas@labunix.xyz</email>
</author>
<published>2026-09-17T10:34:28Z</published>
<link rel='alternate' type='text/html' href='https://git.labunix.xyz/krino.git/commit/?id=ca35dfc540bb86ebe193dd186ac6bb5276a93c2e'/>
<id>urn:sha1:ca35dfc540bb86ebe193dd186ac6bb5276a93c2e</id>
<content type='text'>
https://git.labunix.xyz/krino.git, on cgit and clonable without an
account. About shows it and the README's status says how to clone;
go install still needs a module path that is a URL.
</content>
</entry>
<entry>
<title>the contact address is lukas@labunix.xyz</title>
<updated>2026-09-17T10:30:53Z</updated>
<author>
<name>Lukasz Kasprzak</name>
<email>lukas@labunix.xyz</email>
</author>
<published>2026-09-17T10:30:53Z</published>
<link rel='alternate' type='text/html' href='https://git.labunix.xyz/krino.git/commit/?id=a22939d28ce7472acfd3a2c06643428c2b28fc87'/>
<id>urn:sha1:a22939d28ce7472acfd3a2c06643428c2b28fc87</id>
<content type='text'>
The same address the commits are authored from, rather than a second
one to keep working.
</content>
</entry>
<entry>
<title>README for a stranger: a screenshot, a rules file, and a third less of it</title>
<updated>2026-09-17T09:51:49Z</updated>
<author>
<name>Lukasz Kasprzak</name>
<email>lukas@labunix.xyz</email>
</author>
<published>2026-09-17T09:51:49Z</published>
<link rel='alternate' type='text/html' href='https://git.labunix.xyz/krino.git/commit/?id=cd7425b81f963a948f0abe7df3f9e58e190c2b78'/>
<id>urn:sha1:cd7425b81f963a948f0abe7df3f9e58e190c2b78</id>
<content type='text'>
It opened with a paragraph of version history and spent 148 of its 273
lines on a walkthrough. What sells the program is a rules file and the
plan it produces, so those come first, with a screenshot of the window
above them.

Every command and every pasted line was run again in a scratch config:
the plan, the apply, the log line and the undo are this morning's real
output, and the example rules file passes krino check as written (with
the paths pointed at a sandbox).

docs/krino-gui.png is from invented files under /tmp/krino-demo.
</content>
</entry>
<entry>
<title>gui: an exclude is not a rule - the form no longer assumes one</title>
<updated>2026-09-17T09:27:00Z</updated>
<author>
<name>Lukasz Kasprzak</name>
<email>lukas@labunix.xyz</email>
</author>
<published>2026-09-17T09:27:00Z</published>
<link rel='alternate' type='text/html' href='https://git.labunix.xyz/krino.git/commit/?id=0e56395aaa46359974a5eb21acaab32b2ea02a0f'/>
<id>urn:sha1:0e56395aaa46359974a5eb21acaab32b2ea02a0f</id>
<content type='text'>
Selecting the exclude row in Forms panicked: newFormEditor read the
form's rule for its when, name, action and stop, and an exclude has
only the when. The editor now takes the conditions from whichever of
the two the form holds and leaves out the fields an exclude has not
got. Checklist item 49 covers it.

Also the 0.0.11 changelog and README, and header floors wide enough
that the age heading is not clipped.
</content>
</entry>
<entry>
<title>krino-gui(1), README and changelog for 0.0.10</title>
<updated>2026-09-16T19:22:42Z</updated>
<author>
<name>Lukasz Kasprzak</name>
<email>lukas@labunix.xyz</email>
</author>
<published>2026-09-16T19:22:42Z</published>
<link rel='alternate' type='text/html' href='https://git.labunix.xyz/krino.git/commit/?id=9300992c8a0043900a6cd76626310189d2537634'/>
<id>urn:sha1:9300992c8a0043900a6cd76626310189d2537634</id>
<content type='text'>
</content>
</entry>
<entry>
<title>release notes and version mentions for 0.0.9</title>
<updated>2026-09-15T20:35:09Z</updated>
<author>
<name>Lukasz Kasprzak</name>
<email>lukas@labunix.xyz</email>
</author>
<published>2026-09-15T20:35:09Z</published>
<link rel='alternate' type='text/html' href='https://git.labunix.xyz/krino.git/commit/?id=1b39b2683eb820560ba882936d4818af0dcfcec7'/>
<id>urn:sha1:1b39b2683eb820560ba882936d4818af0dcfcec7</id>
<content type='text'>
</content>
</entry>
<entry>
<title>docs: make ci passes on OpenBSD and FreeBSD; OpenBSD's go needs GOTOOLCHAIN=auto</title>
<updated>2026-09-15T07:32:16Z</updated>
<author>
<name>Lukasz Kasprzak</name>
<email>lukas@labunix.xyz</email>
</author>
<published>2026-09-15T07:32:16Z</published>
<link rel='alternate' type='text/html' href='https://git.labunix.xyz/krino.git/commit/?id=5d77c5b247b6da7a1d49c23b03d5522e398c7d73'/>
<id>urn:sha1:5d77c5b247b6da7a1d49c23b03d5522e398c7d73</id>
<content type='text'>
</content>
</entry>
<entry>
<title>release notes and version mentions for 0.0.8</title>
<updated>2026-09-14T22:42:58Z</updated>
<author>
<name>Lukasz Kasprzak</name>
<email>lukas@labunix.xyz</email>
</author>
<published>2026-09-14T22:42:58Z</published>
<link rel='alternate' type='text/html' href='https://git.labunix.xyz/krino.git/commit/?id=e879f2cb348f9cc4d7bc0b44071fb8b5ccf1361d'/>
<id>urn:sha1:e879f2cb348f9cc4d7bc0b44071fb8b5ccf1361d</id>
<content type='text'>
</content>
</entry>
</feed>
