<feed xmlns='http://www.w3.org/2005/Atom'>
<title>nixtaml/lib, branch master</title>
<subtitle>[no description]</subtitle>
<link rel='alternate' type='text/html' href='https://pics.social.crashoverburn.com/nixtaml/'/>
<entry>
<title>Fix URI validation bypasses (Phase 1.3 updated)</title>
<updated>2026-04-15T02:08:28+00:00</updated>
<author>
<name>toastal</name>
</author>
<published>2026-04-15T02:08:28+00:00</published>
<link rel='alternate' type='text/html' href='https://pics.social.crashoverburn.com/nixtaml/commit/?id=90b97599704f3f62820841eb1828c519deceadf7'/>
<id>90b97599704f3f62820841eb1828c519deceadf7</id>
<content type='text'>
- Add url_decode function to handle percent-encoded sequences
- Check both raw and URL-decoded paths for traversal attacks
- Catch %2e%2e%2f (encoded ../) and similar bypasses
- Improved path traversal detection for patterns like /etc/../passwd

Fixes TPol-identified vulnerabilities:
- URL-encoded path traversal bypasses
- Missing path traversal detection in some patterns</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
- Add url_decode function to handle percent-encoded sequences
- Check both raw and URL-decoded paths for traversal attacks
- Catch %2e%2e%2f (encoded ../) and similar bypasses
- Improved path traversal detection for patterns like /etc/../passwd

Fixes TPol-identified vulnerabilities:
- URL-encoded path traversal bypasses
- Missing path traversal detection in some patterns</pre>
</div>
</content>
</entry>
<entry>
<title>Add URI validation for security (Phase 1.3)</title>
<updated>2026-04-15T01:58:39+00:00</updated>
<author>
<name>toastal</name>
</author>
<published>2026-04-15T01:58:39+00:00</published>
<link rel='alternate' type='text/html' href='https://pics.social.crashoverburn.com/nixtaml/commit/?id=fe9270a88cb1c406769b0deb552c5f53fad7e656'/>
<id>fe9270a88cb1c406769b0deb552c5f53fad7e656</id>
<content type='text'>
Add validate function to uRI.ml that checks for:
- Acceptable schemes: http, https, ftp, sftp, file, ssh, git, darcs, pijul, fossil
- Path traversal attacks (../, ..\ patterns)

Returns Result type with specific error variants for invalid schemes
and path traversal attempts.

All 17 tests pass.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Add validate function to uRI.ml that checks for:
- Acceptable schemes: http, https, ftp, sftp, file, ssh, git, darcs, pijul, fossil
- Path traversal attacks (../, ..\ patterns)

Returns Result type with specific error variants for invalid schemes
and path traversal attempts.

All 17 tests pass.</pre>
</div>
</content>
</entry>
<entry>
<title>Fix KDL.of_flow Result type and update callers</title>
<updated>2026-04-15T01:49:13+00:00</updated>
<author>
<name>toastal</name>
</author>
<published>2026-04-15T01:49:13+00:00</published>
<link rel='alternate' type='text/html' href='https://pics.social.crashoverburn.com/nixtaml/commit/?id=47363e258f3e3f916cfe592e5de3bbe63bc16f84'/>
<id>47363e258f3e3f916cfe592e5de3bbe63bc16f84</id>
<content type='text'>
- Properly type annotate KDL.of_flow to return (t, [&gt; `ParseError]) result
- Handle nested Results from Eio.Buf_read.parse_exn
- Fix Manifest.read to work with new Result type
- Fix nixtamal.ml error handling for Manifest and Lockfile errors

All 17 tests pass.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
- Properly type annotate KDL.of_flow to return (t, [&gt; `ParseError]) result
- Handle nested Results from Eio.Buf_read.parse_exn
- Fix Manifest.read to work with new Result type
- Fix nixtamal.ml error handling for Manifest and Lockfile errors

All 17 tests pass.</pre>
</div>
</content>
</entry>
<entry>
<title>Phase 1: Fix security vulnerabilities and error handling</title>
<updated>2026-04-15T01:43:05+00:00</updated>
<author>
<name>toastal</name>
</author>
<published>2026-04-15T01:43:05+00:00</published>
<link rel='alternate' type='text/html' href='https://pics.social.crashoverburn.com/nixtaml/commit/?id=9b65a20925349dbdc5919041d81cbd12ad8facf1'/>
<id>9b65a20925349dbdc5919041d81cbd12ad8facf1</id>
<content type='text'>
- Fix command injection in editor.ml using Filename.quote
- Change KDL.of_flow to return Result instead of failwith
- Update manifest.ml to handle new Result type

Security: Prevents shell injection when opening files with
malicious filenames containing shell metacharacters.

Error handling: KDL parsing errors now return Result type
instead of crashing with failwith.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
- Fix command injection in editor.ml using Filename.quote
- Change KDL.of_flow to return Result instead of failwith
- Update manifest.ml to handle new Result type

Security: Prevents shell injection when opening files with
malicious filenames containing shell metacharacters.

Error handling: KDL parsing errors now return Result type
instead of crashing with failwith.</pre>
</div>
</content>
</entry>
<entry>
<title>Add bisect_ppx test coverage infrastructure with CI workflow and test suites</title>
<updated>2026-04-15T00:54:46+00:00</updated>
<author>
<name>Crash Over Burn</name>
</author>
<published>2026-04-15T00:54:46+00:00</published>
<link rel='alternate' type='text/html' href='https://pics.social.crashoverburn.com/nixtaml/commit/?id=2de700733370b22797ff71667f68c119951c3194'/>
<id>2de700733370b22797ff71667f68c119951c3194</id>
<content type='text'>
Integrate bisect_ppx for code coverage across the test suite:

- Add bisect_ppx instrumentation to lib/dune and test/dune
- Add bisect_ppx dependency to dune-project, nixtamal.opam, and nix/package/nixtamal.nix
- Create bisect.yml configuration for HTML and text coverage reports
- Add .github/workflows/coverage.yml for CI-based coverage reporting
- Fix flake.nix devShell to include checkInputs for full development environment
- Add coverage checks to flake.nix checks output

New test suites for recently ported features:
- test/test_upgrade.ml: Tests for schema upgrade command (backup, dry-run, version validation)
- test/test_fossil.ml: Tests for Fossil VCS codec and lockfile roundtrips
- test/test_lockfile.ml: Tests for lockfile auto-creation and serialization
- test/test_main.ml: Register all new test suites

Documentation updates:
- AGENTS.md: Add contact info (website, XMPP MUC), note llm/ folder is gitignored
- README.asciidoc: Add website link, mention Fossil VCS, schema versioning, upgrade command
- .gitignore: Add _build/ and _coverage/ directories

Covers testing for previously ported features: schema upgrade, Fossil VCS support,
and lockfile auto-creation.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Integrate bisect_ppx for code coverage across the test suite:

- Add bisect_ppx instrumentation to lib/dune and test/dune
- Add bisect_ppx dependency to dune-project, nixtamal.opam, and nix/package/nixtamal.nix
- Create bisect.yml configuration for HTML and text coverage reports
- Add .github/workflows/coverage.yml for CI-based coverage reporting
- Fix flake.nix devShell to include checkInputs for full development environment
- Add coverage checks to flake.nix checks output

New test suites for recently ported features:
- test/test_upgrade.ml: Tests for schema upgrade command (backup, dry-run, version validation)
- test/test_fossil.ml: Tests for Fossil VCS codec and lockfile roundtrips
- test/test_lockfile.ml: Tests for lockfile auto-creation and serialization
- test/test_main.ml: Register all new test suites

Documentation updates:
- AGENTS.md: Add contact info (website, XMPP MUC), note llm/ folder is gitignored
- README.asciidoc: Add website link, mention Fossil VCS, schema versioning, upgrade command
- .gitignore: Add _build/ and _coverage/ directories

Covers testing for previously ported features: schema upgrade, Fossil VCS support,
and lockfile auto-creation.
</pre>
</div>
</content>
</entry>
<entry>
<title>Port upstream patches: Cmdliner 2.x, lockfile auto-creation, schema upgrade, Fossil VCS</title>
<updated>2026-04-14T13:05:33+00:00</updated>
<author>
<name>Crash Over Burn</name>
</author>
<published>2026-04-14T13:05:33+00:00</published>
<link rel='alternate' type='text/html' href='https://pics.social.crashoverburn.com/nixtaml/commit/?id=e6c901d2e5430a3815109b38ced11a4f695f0226'/>
<id>e6c901d2e5430a3815109b38ced11a4f695f0226</id>
<content type='text'>
Ported from upstream darcs repository (v1.1.2):
- Cmdliner 2.x compatibility fixes (variable shadowing)
- Lockfile auto-creation when missing
- Schema upgrade command with backup/rollback
- Fossil VCS support (new VCS type)
- Clean up Cmdliner warning for unescaped $PWD

Files modified:
- lib/schema.ml (new): Schema versioning module
- lib/nixtamal.ml: Add upgrade function, Fossil meld support
- lib/error.ml: Add Fossil to prefetch_method, Upgrade error
- lib/input.ml: Add Fossil module, Kind variant
- lib/prefetch.ml: Add Fossil prefetch with SRI hash support
- lib/manifest.ml: Add Fossil codec
- lib/lockfile.ml: Add Fossil lockfile type
- lib/lock_loader.ml: Add Fossil feature flag
- lib/input_foreman.ml: Add Fossil display and prefetch check
- bin/cmd.ml: Cmdliner 2.x fixes, add Upgrade command
- bin/dune, lib/dune, test/dune: Deprecation flags

Builds successfully with all tests passing.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Ported from upstream darcs repository (v1.1.2):
- Cmdliner 2.x compatibility fixes (variable shadowing)
- Lockfile auto-creation when missing
- Schema upgrade command with backup/rollback
- Fossil VCS support (new VCS type)
- Clean up Cmdliner warning for unescaped $PWD

Files modified:
- lib/schema.ml (new): Schema versioning module
- lib/nixtamal.ml: Add upgrade function, Fossil meld support
- lib/error.ml: Add Fossil to prefetch_method, Upgrade error
- lib/input.ml: Add Fossil module, Kind variant
- lib/prefetch.ml: Add Fossil prefetch with SRI hash support
- lib/manifest.ml: Add Fossil codec
- lib/lockfile.ml: Add Fossil lockfile type
- lib/lock_loader.ml: Add Fossil feature flag
- lib/input_foreman.ml: Add Fossil display and prefetch check
- bin/cmd.ml: Cmdliner 2.x fixes, add Upgrade command
- bin/dune, lib/dune, test/dune: Deprecation flags

Builds successfully with all tests passing.
</pre>
</div>
</content>
</entry>
<entry>
<title>lock loader: fix indentation</title>
<updated>2026-01-07T05:44:38+00:00</updated>
<author>
<name>·𐑑𐑴𐑕𐑑𐑩𐑤</name>
</author>
<published>2026-01-07T05:44:38+00:00</published>
<link rel='alternate' type='text/html' href='https://pics.social.crashoverburn.com/nixtaml/commit/?id=aed1a5c3a42b58c433db8bbf408404600b59782d'/>
<id>aed1a5c3a42b58c433db8bbf408404600b59782d</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Silo: make names a folder for the future</title>
<updated>2026-01-02T18:15:34+00:00</updated>
<author>
<name>·𐑑𐑴𐑕𐑑𐑩𐑤</name>
</author>
<published>2026-01-02T18:15:34+00:00</published>
<link rel='alternate' type='text/html' href='https://pics.social.crashoverburn.com/nixtaml/commit/?id=034a4c5c3be5ffe5f15633214746b05ed69bf548'/>
<id>034a4c5c3be5ffe5f15633214746b05ed69bf548</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Schema bump: lockfile fields required</title>
<updated>2026-01-02T15:47:47+00:00</updated>
<author>
<name>·𐑑𐑴𐑕𐑑𐑩𐑤</name>
</author>
<published>2026-01-02T15:47:47+00:00</published>
<link rel='alternate' type='text/html' href='https://pics.social.crashoverburn.com/nixtaml/commit/?id=1453b79eee3c757ef27ade7d6ca636112b926f80'/>
<id>1453b79eee3c757ef27ade7d6ca636112b926f80</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Lockfile: make optional values mandatory, but null</title>
<updated>2026-01-02T15:43:48+00:00</updated>
<author>
<name>·𐑑𐑴𐑕𐑑𐑩𐑤</name>
</author>
<published>2026-01-02T15:43:48+00:00</published>
<link rel='alternate' type='text/html' href='https://pics.social.crashoverburn.com/nixtaml/commit/?id=3a4d89a19e18bbc199f006464a7d705da8c0fe28'/>
<id>3a4d89a19e18bbc199f006464a7d705da8c0fe28</id>
<content type='text'>
Useful for hashing
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Useful for hashing
</pre>
</div>
</content>
</entry>
<entry>
<title>QCheck: update naming</title>
<updated>2026-01-02T07:51:48+00:00</updated>
<author>
<name>·𐑑𐑴𐑕𐑑𐑩𐑤</name>
</author>
<published>2026-01-02T07:51:48+00:00</published>
<link rel='alternate' type='text/html' href='https://pics.social.crashoverburn.com/nixtaml/commit/?id=9fe41916f5fed253052ae287b1ee29793057d50e'/>
<id>9fe41916f5fed253052ae287b1ee29793057d50e</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>lock loader: builtins.throw isn’t clearer than throw</title>
<updated>2026-01-01T02:43:42+00:00</updated>
<author>
<name>·𐑑𐑴𐑕𐑑𐑩𐑤</name>
</author>
<published>2026-01-01T02:43:42+00:00</published>
<link rel='alternate' type='text/html' href='https://pics.social.crashoverburn.com/nixtaml/commit/?id=d444bc2cb08ca25e8028ff7335092e31963365a1'/>
<id>d444bc2cb08ca25e8028ff7335092e31963365a1</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>lock loader: rename path</title>
<updated>2026-01-01T02:39:51+00:00</updated>
<author>
<name>·𐑑𐑴𐑕𐑑𐑩𐑤</name>
</author>
<published>2026-01-01T02:39:51+00:00</published>
<link rel='alternate' type='text/html' href='https://pics.social.crashoverburn.com/nixtaml/commit/?id=b8a024754c32acc1cd5d60855828f1756148766e'/>
<id>b8a024754c32acc1cd5d60855828f1756148766e</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>silo: upgrade to full Nix GC root link</title>
<updated>2026-01-01T02:06:48+00:00</updated>
<author>
<name>·𐑑𐑴𐑕𐑑𐑩𐑤</name>
</author>
<published>2026-01-01T02:06:48+00:00</published>
<link rel='alternate' type='text/html' href='https://pics.social.crashoverburn.com/nixtaml/commit/?id=841c0634c045b5ee1b42b5a9daeff38676a38323'/>
<id>841c0634c045b5ee1b42b5a9daeff38676a38323</id>
<content type='text'>
Now that the proof of concept of symlinks worked, we can actually call
nix-store --realize
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Now that the proof of concept of symlinks worked, we can actually call
nix-store --realize
</pre>
</div>
</content>
</entry>
<entry>
<title>Prefetch: move command flow to module</title>
<updated>2025-12-31T17:23:35+00:00</updated>
<author>
<name>·𐑑𐑴𐑕𐑑𐑩𐑤</name>
</author>
<published>2025-12-31T17:23:35+00:00</published>
<link rel='alternate' type='text/html' href='https://pics.social.crashoverburn.com/nixtaml/commit/?id=07b8d2c3a7166dca7c424fbb26d1fc210aeb4724'/>
<id>07b8d2c3a7166dca7c424fbb26d1fc210aeb4724</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Prefetch: File+Archive stdout result into module</title>
<updated>2025-12-31T14:21:34+00:00</updated>
<author>
<name>·𐑑𐑴𐑕𐑑𐑩𐑤</name>
</author>
<published>2025-12-31T14:21:34+00:00</published>
<link rel='alternate' type='text/html' href='https://pics.social.crashoverburn.com/nixtaml/commit/?id=f0fc310fe424d5657f416a7fd1c908cb4590e8e9'/>
<id>f0fc310fe424d5657f416a7fd1c908cb4590e8e9</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>setup: warn, ¬ error on existing manifest</title>
<updated>2025-12-31T13:56:49+00:00</updated>
<author>
<name>·𐑑𐑴𐑕𐑑𐑩𐑤</name>
</author>
<published>2025-12-31T13:56:49+00:00</published>
<link rel='alternate' type='text/html' href='https://pics.social.crashoverburn.com/nixtaml/commit/?id=e8504548c82c5b9bb4ee5a797c6e73db5db41357'/>
<id>e8504548c82c5b9bb4ee5a797c6e73db5db41357</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>silo: if failed to link, try to set up silo + retry link</title>
<updated>2025-12-31T08:42:05+00:00</updated>
<author>
<name>·𐑑𐑴𐑕𐑑𐑩𐑤</name>
</author>
<published>2025-12-31T08:42:05+00:00</published>
<link rel='alternate' type='text/html' href='https://pics.social.crashoverburn.com/nixtaml/commit/?id=51c75ab1af61ab608c7891ad0e062fd69355ea8b'/>
<id>51c75ab1af61ab608c7891ad0e062fd69355ea8b</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>working dir: ignore darcs_context too!</title>
<updated>2025-12-31T06:41:18+00:00</updated>
<author>
<name>·𐑑𐑴𐑕𐑑𐑩𐑤</name>
</author>
<published>2025-12-31T06:41:18+00:00</published>
<link rel='alternate' type='text/html' href='https://pics.social.crashoverburn.com/nixtaml/commit/?id=41db1f3869b572f5651e10321772c858efe822ab'/>
<id>41db1f3869b572f5651e10321772c858efe822ab</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Silo: /silo → /.silo for more compatibility</title>
<updated>2025-12-31T06:30:59+00:00</updated>
<author>
<name>·𐑑𐑴𐑕𐑑𐑩𐑤</name>
</author>
<published>2025-12-31T06:30:59+00:00</published>
<link rel='alternate' type='text/html' href='https://pics.social.crashoverburn.com/nixtaml/commit/?id=74292e079558920c5b38b7967fd1a3a5c5998a5b'/>
<id>74292e079558920c5b38b7967fd1a3a5c5998a5b</id>
<content type='text'>
Some tools, like OCaml’s Dune, will try to follow the symlinks into the
store which is a big problem
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Some tools, like OCaml’s Dune, will try to follow the symlinks into the
store which is a big problem
</pre>
</div>
</content>
</entry>
<entry>
<title>Silo: unlink/rm first</title>
<updated>2025-12-31T04:45:45+00:00</updated>
<author>
<name>·𐑑𐑴𐑕𐑑𐑩𐑤</name>
</author>
<published>2025-12-31T04:45:45+00:00</published>
<link rel='alternate' type='text/html' href='https://pics.social.crashoverburn.com/nixtaml/commit/?id=996f116bc9522a8e1a81da8eee6e39714fb8d9f2'/>
<id>996f116bc9522a8e1a81da8eee6e39714fb8d9f2</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>errors: fix casing</title>
<updated>2025-12-30T14:58:51+00:00</updated>
<author>
<name>·𐑑𐑴𐑕𐑑𐑩𐑤</name>
</author>
<published>2025-12-30T14:58:51+00:00</published>
<link rel='alternate' type='text/html' href='https://pics.social.crashoverburn.com/nixtaml/commit/?id=64faa1f3d260de001bee08a1e95f999f5f4e6166'/>
<id>64faa1f3d260de001bee08a1e95f999f5f4e6166</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>prefetch: paths</title>
<updated>2025-12-30T14:58:23+00:00</updated>
<author>
<name>·𐑑𐑴𐑕𐑑𐑩𐑤</name>
</author>
<published>2025-12-30T14:58:23+00:00</published>
<link rel='alternate' type='text/html' href='https://pics.social.crashoverburn.com/nixtaml/commit/?id=403bebbc8daeec3b04998ccdb5b243255705e445'/>
<id>403bebbc8daeec3b04998ccdb5b243255705e445</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>silo: unlisted input cleanup</title>
<updated>2025-12-30T14:28:21+00:00</updated>
<author>
<name>·𐑑𐑴𐑕𐑑𐑩𐑤</name>
</author>
<published>2025-12-30T14:28:21+00:00</published>
<link rel='alternate' type='text/html' href='https://pics.social.crashoverburn.com/nixtaml/commit/?id=51b29e579692317725b6020075007cbec403ee19'/>
<id>51b29e579692317725b6020075007cbec403ee19</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>silo: make symlinks</title>
<updated>2025-12-30T12:08:48+00:00</updated>
<author>
<name>·𐑑𐑴𐑕𐑑𐑩𐑤</name>
</author>
<published>2025-12-30T12:08:48+00:00</published>
<link rel='alternate' type='text/html' href='https://pics.social.crashoverburn.com/nixtaml/commit/?id=ee33293e9b9345e9f437390537f91b664ed81e88'/>
<id>ee33293e9b9345e9f437390537f91b664ed81e88</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>foreman: remove fixed TODO</title>
<updated>2025-12-30T11:25:56+00:00</updated>
<author>
<name>·𐑑𐑴𐑕𐑑𐑩𐑤</name>
</author>
<published>2025-12-30T11:25:56+00:00</published>
<link rel='alternate' type='text/html' href='https://pics.social.crashoverburn.com/nixtaml/commit/?id=9210f601dad3a0cb4ebcaf62e2d32d1cbfcc7502'/>
<id>9210f601dad3a0cb4ebcaf62e2d32d1cbfcc7502</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>foreman: just use currying</title>
<updated>2025-12-30T08:01:15+00:00</updated>
<author>
<name>·𐑑𐑴𐑕𐑑𐑩𐑤</name>
</author>
<published>2025-12-30T08:01:15+00:00</published>
<link rel='alternate' type='text/html' href='https://pics.social.crashoverburn.com/nixtaml/commit/?id=2cacd2cf96934bccd5a9610bc2f3e3fbb78dab25'/>
<id>2cacd2cf96934bccd5a9610bc2f3e3fbb78dab25</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>silo: onset</title>
<updated>2025-12-30T07:14:23+00:00</updated>
<author>
<name>·𐑑𐑴𐑕𐑑𐑩𐑤</name>
</author>
<published>2025-12-30T07:14:23+00:00</published>
<link rel='alternate' type='text/html' href='https://pics.social.crashoverburn.com/nixtaml/commit/?id=46e1cd38d5ff78b5d663b843883c82952d7e2e7b'/>
<id>46e1cd38d5ff78b5d663b843883c82952d7e2e7b</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>ignore: onset</title>
<updated>2025-12-30T07:09:05+00:00</updated>
<author>
<name>·𐑑𐑴𐑕𐑑𐑩𐑤</name>
</author>
<published>2025-12-30T07:09:05+00:00</published>
<link rel='alternate' type='text/html' href='https://pics.social.crashoverburn.com/nixtaml/commit/?id=245952748751460fc3d0a35b03419959ec2c99b4'/>
<id>245952748751460fc3d0a35b03419959ec2c99b4</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Working dir: use info + fix wording</title>
<updated>2025-12-30T07:01:39+00:00</updated>
<author>
<name>·𐑑𐑴𐑕𐑑𐑩𐑤</name>
</author>
<published>2025-12-30T07:01:39+00:00</published>
<link rel='alternate' type='text/html' href='https://pics.social.crashoverburn.com/nixtaml/commit/?id=7dec66ec52b559cc5cb80f899182b55440736834'/>
<id>7dec66ec52b559cc5cb80f899182b55440736834</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>list-stale: move first log to debug</title>
<updated>2025-12-23T08:13:47+00:00</updated>
<author>
<name>·𐑑𐑴𐑕𐑑𐑩𐑤</name>
</author>
<published>2025-12-23T08:13:47+00:00</published>
<link rel='alternate' type='text/html' href='https://pics.social.crashoverburn.com/nixtaml/commit/?id=9e67d160e42abc17428e9c30d7d336cea960f87a'/>
<id>9e67d160e42abc17428e9c30d7d336cea960f87a</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>list-stale: guard against is_outdated</title>
<updated>2025-12-23T07:47:58+00:00</updated>
<author>
<name>·𐑑𐑴𐑕𐑑𐑩𐑤</name>
</author>
<published>2025-12-23T07:47:58+00:00</published>
<link rel='alternate' type='text/html' href='https://pics.social.crashoverburn.com/nixtaml/commit/?id=750c3fade6d0f83fc3fc1d03a58cd31f5c91ed29'/>
<id>750c3fade6d0f83fc3fc1d03a58cd31f5c91ed29</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>refresh: print name with latest debug info</title>
<updated>2025-12-23T07:40:31+00:00</updated>
<author>
<name>·𐑑𐑴𐑕𐑑𐑩𐑤</name>
</author>
<published>2025-12-23T07:40:31+00:00</published>
<link rel='alternate' type='text/html' href='https://pics.social.crashoverburn.com/nixtaml/commit/?id=904ade574fb0aea79d5861642abe7718f6f1f3d1'/>
<id>904ade574fb0aea79d5861642abe7718f6f1f3d1</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>foreman: use Semaphore</title>
<updated>2025-12-23T07:31:55+00:00</updated>
<author>
<name>·𐑑𐑴𐑕𐑑𐑩𐑤</name>
</author>
<published>2025-12-23T07:31:55+00:00</published>
<link rel='alternate' type='text/html' href='https://pics.social.crashoverburn.com/nixtaml/commit/?id=933b704317f786357cc669e2317fd82a8ec22b36'/>
<id>933b704317f786357cc669e2317fd82a8ec22b36</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>show: pipe sep</title>
<updated>2025-12-22T10:43:49+00:00</updated>
<author>
<name>·𐑑𐑴𐑕𐑑𐑩𐑤</name>
</author>
<published>2025-12-22T10:43:49+00:00</published>
<link rel='alternate' type='text/html' href='https://pics.social.crashoverburn.com/nixtaml/commit/?id=0c12d5285c9a847c832959b5d92d6ed610270d8b'/>
<id>0c12d5285c9a847c832959b5d92d6ed610270d8b</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>lock_loader too only shows files on info verbosity</title>
<updated>2025-12-20T19:30:44+00:00</updated>
<author>
<name>·𐑑𐑴𐑕𐑑𐑩𐑤</name>
</author>
<published>2025-12-20T19:30:44+00:00</published>
<link rel='alternate' type='text/html' href='https://pics.social.crashoverburn.com/nixtaml/commit/?id=ba0662b64c10168379cec4327f67d0c6efaa248e'/>
<id>ba0662b64c10168379cec4327f67d0c6efaa248e</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Tabs in comments</title>
<updated>2025-12-20T19:00:54+00:00</updated>
<author>
<name>·𐑑𐑴𐑕𐑑𐑩𐑤</name>
</author>
<published>2025-12-20T19:00:54+00:00</published>
<link rel='alternate' type='text/html' href='https://pics.social.crashoverburn.com/nixtaml/commit/?id=e53b47c44606d7c97ae71dd6cc15bbde203e426c'/>
<id>e53b47c44606d7c97ae71dd6cc15bbde203e426c</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>newlines to fix tab indentation</title>
<updated>2025-12-20T18:46:00+00:00</updated>
<author>
<name>·𐑑𐑴𐑕𐑑𐑩𐑤</name>
</author>
<published>2025-12-20T18:46:00+00:00</published>
<link rel='alternate' type='text/html' href='https://pics.social.crashoverburn.com/nixtaml/commit/?id=1ee0de69fff2a03e046eefeece1dfbce66f524f2'/>
<id>1ee0de69fff2a03e046eefeece1dfbce66f524f2</id>
<content type='text'>
I really need to just write to my own buffer if Format isn’t gonna
support tabs :|
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
I really need to just write to my own buffer if Format isn’t gonna
support tabs :|
</pre>
</div>
</content>
</entry>
<entry>
<title>oops newline</title>
<updated>2025-12-20T17:00:00+00:00</updated>
<author>
<name>·𐑑𐑴𐑕𐑑𐑩𐑤</name>
</author>
<published>2025-12-20T17:00:00+00:00</published>
<link rel='alternate' type='text/html' href='https://pics.social.crashoverburn.com/nixtaml/commit/?id=9974d0ca602d650e34b94843934266f27bfba5db'/>
<id>9974d0ca602d650e34b94843934266f27bfba5db</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>unset newline in lockfile</title>
<updated>2025-12-20T16:38:39+00:00</updated>
<author>
<name>·𐑑𐑴𐑕𐑑𐑩𐑤</name>
</author>
<published>2025-12-20T16:38:39+00:00</published>
<link rel='alternate' type='text/html' href='https://pics.social.crashoverburn.com/nixtaml/commit/?id=0038688fa618efcde219c7a042edf73f0c363887'/>
<id>0038688fa618efcde219c7a042edf73f0c363887</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>logging: move manifest × lockfile to info</title>
<updated>2025-12-19T17:38:31+00:00</updated>
<author>
<name>·𐑑𐑴𐑕𐑑𐑩𐑤</name>
</author>
<published>2025-12-19T17:38:31+00:00</published>
<link rel='alternate' type='text/html' href='https://pics.social.crashoverburn.com/nixtaml/commit/?id=1a6bb83969c3396c805b5028f2d37e270a7dc59d'/>
<id>1a6bb83969c3396c805b5028f2d37e270a7dc59d</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>list-stale command</title>
<updated>2025-12-14T05:56:03+00:00</updated>
<author>
<name>·𐑑𐑴𐑕𐑑𐑩𐑤</name>
</author>
<published>2025-12-14T05:56:03+00:00</published>
<link rel='alternate' type='text/html' href='https://pics.social.crashoverburn.com/nixtaml/commit/?id=ed4c6513c01ec6a624c22a21dd42734c24d35e1f'/>
<id>ed4c6513c01ec6a624c22a21dd42734c24d35e1f</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>styled show</title>
<updated>2025-12-13T19:41:21+00:00</updated>
<author>
<name>·𐑑𐑴𐑕𐑑𐑩𐑤</name>
</author>
<published>2025-12-13T19:41:21+00:00</published>
<link rel='alternate' type='text/html' href='https://pics.social.crashoverburn.com/nixtaml/commit/?id=6c6ebc9ac7aed15d84e29016d1652599a49b1ae1'/>
<id>6c6ebc9ac7aed15d84e29016d1652599a49b1ae1</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>missing angle close</title>
<updated>2025-12-13T15:20:28+00:00</updated>
<author>
<name>·𐑑𐑴𐑕𐑑𐑩𐑤</name>
</author>
<published>2025-12-13T15:20:28+00:00</published>
<link rel='alternate' type='text/html' href='https://pics.social.crashoverburn.com/nixtaml/commit/?id=54072f0e01b2d3cd604cc0d9398e5b58c2b4dd83'/>
<id>54072f0e01b2d3cd604cc0d9398e5b58c2b4dd83</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>add show to name</title>
<updated>2025-12-13T15:05:14+00:00</updated>
<author>
<name>·𐑑𐑴𐑕𐑑𐑩𐑤</name>
</author>
<published>2025-12-13T15:05:14+00:00</published>
<link rel='alternate' type='text/html' href='https://pics.social.crashoverburn.com/nixtaml/commit/?id=6ee07ed9d166c4a58cd76cd101d49954dfe4be14'/>
<id>6ee07ed9d166c4a58cd76cd101d49954dfe4be14</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>fix git ls-remote</title>
<updated>2025-12-13T10:26:08+00:00</updated>
<author>
<name>·𐑑𐑴𐑕𐑑𐑩𐑤</name>
</author>
<published>2025-12-13T10:26:08+00:00</published>
<link rel='alternate' type='text/html' href='https://pics.social.crashoverburn.com/nixtaml/commit/?id=9c72ce982212eaf23caba6a697e88153fd88c274'/>
<id>9c72ce982212eaf23caba6a697e88153fd88c274</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>keep pool exception</title>
<updated>2025-12-12T18:04:01+00:00</updated>
<author>
<name>·𐑑𐑴𐑕𐑑𐑩𐑤</name>
</author>
<published>2025-12-12T18:04:01+00:00</published>
<link rel='alternate' type='text/html' href='https://pics.social.crashoverburn.com/nixtaml/commit/?id=4fb3460e56c73053065940653bd7d205f5018854'/>
<id>4fb3460e56c73053065940653bd7d205f5018854</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>redo some latest_cmd funs</title>
<updated>2025-12-12T17:55:05+00:00</updated>
<author>
<name>·𐑑𐑴𐑕𐑑𐑩𐑤</name>
</author>
<published>2025-12-12T17:55:05+00:00</published>
<link rel='alternate' type='text/html' href='https://pics.social.crashoverburn.com/nixtaml/commit/?id=3ba1df86703ea60e0b53a67905fc62a52b61e804'/>
<id>3ba1df86703ea60e0b53a67905fc62a52b61e804</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>dry up prefetch cmd output gathering</title>
<updated>2025-12-12T17:45:39+00:00</updated>
<author>
<name>·𐑑𐑴𐑕𐑑𐑩𐑤</name>
</author>
<published>2025-12-12T17:45:39+00:00</published>
<link rel='alternate' type='text/html' href='https://pics.social.crashoverburn.com/nixtaml/commit/?id=fbbb044db8dd384fa43ce50cf4878107a39cfba5'/>
<id>fbbb044db8dd384fa43ce50cf4878107a39cfba5</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>remove unused exception</title>
<updated>2025-12-11T21:32:51+00:00</updated>
<author>
<name>·𐑑𐑴𐑕𐑑𐑩𐑤</name>
</author>
<published>2025-12-11T21:32:51+00:00</published>
<link rel='alternate' type='text/html' href='https://pics.social.crashoverburn.com/nixtaml/commit/?id=6fbea2fc7d2f9e3457a028c93ae7a7e0bf9ca7e3'/>
<id>6fbea2fc7d2f9e3457a028c93ae7a7e0bf9ca7e3</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
</feed>
