<feed xmlns='http://www.w3.org/2005/Atom'>
<title>nixtaml/lib/manifest.ml, branch master</title>
<subtitle>[no description]</subtitle>
<link rel='alternate' type='text/html' href='https://pics.social.crashoverburn.com/nixtaml/'/>
<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>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>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>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>make KDL module + fix casing</title>
<updated>2025-12-11T20:58:19+00:00</updated>
<author>
<name>·𐑑𐑴𐑕𐑑𐑩𐑤</name>
</author>
<published>2025-12-11T20:58:19+00:00</published>
<link rel='alternate' type='text/html' href='https://pics.social.crashoverburn.com/nixtaml/commit/?id=0ba222850396361e7a339811cd85abf33ea3e165'/>
<id>0ba222850396361e7a339811cd85abf33ea3e165</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>hash match shape</title>
<updated>2025-12-11T16:12:16+00:00</updated>
<author>
<name>·𐑑𐑴𐑕𐑑𐑩𐑤</name>
</author>
<published>2025-12-11T16:12:16+00:00</published>
<link rel='alternate' type='text/html' href='https://pics.social.crashoverburn.com/nixtaml/commit/?id=f6a774037bef617835bd43fedf7404822220b332'/>
<id>f6a774037bef617835bd43fedf7404822220b332</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>refactor Manifest.Latest_cmd</title>
<updated>2025-12-11T16:11:46+00:00</updated>
<author>
<name>·𐑑𐑴𐑕𐑑𐑩𐑤</name>
</author>
<published>2025-12-11T16:11:46+00:00</published>
<link rel='alternate' type='text/html' href='https://pics.social.crashoverburn.com/nixtaml/commit/?id=cdd9140cfa59accbc404bf4a7f6683baf7b86ee5'/>
<id>cdd9140cfa59accbc404bf4a7f6683baf7b86ee5</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>move Kind module</title>
<updated>2025-12-11T08:26:40+00:00</updated>
<author>
<name>·𐑑𐑴𐑕𐑑𐑩𐑤</name>
</author>
<published>2025-12-11T08:26:40+00:00</published>
<link rel='alternate' type='text/html' href='https://pics.social.crashoverburn.com/nixtaml/commit/?id=5fc560944760ddcd38399a39f8ddd275cd4b7d2b'/>
<id>5fc560944760ddcd38399a39f8ddd275cd4b7d2b</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>manifest git fix bool nodes</title>
<updated>2025-12-11T08:10:56+00:00</updated>
<author>
<name>·𐑑𐑴𐑕𐑑𐑩𐑤</name>
</author>
<published>2025-12-11T08:10:56+00:00</published>
<link rel='alternate' type='text/html' href='https://pics.social.crashoverburn.com/nixtaml/commit/?id=b9d2d2eabedd6745eda4cb15270994e939d6b1b5'/>
<id>b9d2d2eabedd6745eda4cb15270994e939d6b1b5</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>fix darcs manifest</title>
<updated>2025-12-11T08:00:04+00:00</updated>
<author>
<name>·𐑑𐑴𐑕𐑑𐑩𐑤</name>
</author>
<published>2025-12-11T08:00:04+00:00</published>
<link rel='alternate' type='text/html' href='https://pics.social.crashoverburn.com/nixtaml/commit/?id=640a9f9dd5d888be6c1c9149d0a033d424930075'/>
<id>640a9f9dd5d888be6c1c9149d0a033d424930075</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>UTF8 type</title>
<updated>2025-12-11T05:16:33+00:00</updated>
<author>
<name>·𐑑𐑴𐑕𐑑𐑩𐑤</name>
</author>
<published>2025-12-11T05:16:33+00:00</published>
<link rel='alternate' type='text/html' href='https://pics.social.crashoverburn.com/nixtaml/commit/?id=36f4b89ea2ea987beab961c1c900ee796cb9ec51'/>
<id>36f4b89ea2ea987beab961c1c900ee796cb9ec51</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Git fix reference</title>
<updated>2025-12-10T21:34:28+00:00</updated>
<author>
<name>·𐑑𐑴𐑕𐑑𐑩𐑤</name>
</author>
<published>2025-12-10T21:34:28+00:00</published>
<link rel='alternate' type='text/html' href='https://pics.social.crashoverburn.com/nixtaml/commit/?id=47b747fd39e13edc6c6bae741fadaddec14a3e79'/>
<id>47b747fd39e13edc6c6bae741fadaddec14a3e79</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Pijul fix reference</title>
<updated>2025-12-10T21:31:45+00:00</updated>
<author>
<name>·𐑑𐑴𐑕𐑑𐑩𐑤</name>
</author>
<published>2025-12-10T21:31:45+00:00</published>
<link rel='alternate' type='text/html' href='https://pics.social.crashoverburn.com/nixtaml/commit/?id=62248406c512018dcdaa230c28ade5866577a9fc'/>
<id>62248406c512018dcdaa230c28ade5866577a9fc</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>can’t reuse Darcs reference since Assumed must be None in manifest</title>
<updated>2025-12-10T21:11:38+00:00</updated>
<author>
<name>·𐑑𐑴𐑕𐑑𐑩𐑤</name>
</author>
<published>2025-12-10T21:11:38+00:00</published>
<link rel='alternate' type='text/html' href='https://pics.social.crashoverburn.com/nixtaml/commit/?id=6596fc3b69e06792753a92ff6538155741b2a55e'/>
<id>6596fc3b69e06792753a92ff6538155741b2a55e</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>manifest: do hash algo</title>
<updated>2025-12-10T20:51:40+00:00</updated>
<author>
<name>·𐑑𐑴𐑕𐑑𐑩𐑤</name>
</author>
<published>2025-12-10T20:51:40+00:00</published>
<link rel='alternate' type='text/html' href='https://pics.social.crashoverburn.com/nixtaml/commit/?id=4d23231ee05ace175f0694114572e298150a467d'/>
<id>4d23231ee05ace175f0694114572e298150a467d</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>add more eq</title>
<updated>2025-12-10T20:39:01+00:00</updated>
<author>
<name>·𐑑𐑴𐑕𐑑𐑩𐑤</name>
</author>
<published>2025-12-10T20:39:01+00:00</published>
<link rel='alternate' type='text/html' href='https://pics.social.crashoverburn.com/nixtaml/commit/?id=2b69aa9def94d45b641d266bf9b3549e384bd7a1'/>
<id>2b69aa9def94d45b641d266bf9b3549e384bd7a1</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>set up QCheck</title>
<updated>2025-12-10T19:13:33+00:00</updated>
<author>
<name>·𐑑𐑴𐑕𐑑𐑩𐑤</name>
</author>
<published>2025-12-10T19:13:33+00:00</published>
<link rel='alternate' type='text/html' href='https://pics.social.crashoverburn.com/nixtaml/commit/?id=dac55b99fb5aa7008e2f7f1c981096912b0441aa'/>
<id>dac55b99fb5aa7008e2f7f1c981096912b0441aa</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>add banners! ⛧</title>
<updated>2025-12-10T13:00:27+00:00</updated>
<author>
<name>·𐑑𐑴𐑕𐑑𐑩𐑤</name>
</author>
<published>2025-12-10T13:00:27+00:00</published>
<link rel='alternate' type='text/html' href='https://pics.social.crashoverburn.com/nixtaml/commit/?id=acdb21f94d642417bef845041122a168ff64c4a5'/>
<id>acdb21f94d642417bef845041122a168ff64c4a5</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>further README updates</title>
<updated>2025-12-10T13:00:26+00:00</updated>
<author>
<name>·𐑑𐑴𐑕𐑑𐑩𐑤</name>
</author>
<published>2025-12-10T13:00:26+00:00</published>
<link rel='alternate' type='text/html' href='https://pics.social.crashoverburn.com/nixtaml/commit/?id=4d7842a0e7b856beaa6e9d9471ba3182779d1ba8'/>
<id>4d7842a0e7b856beaa6e9d9471ba3182779d1ba8</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>ocaml onset</title>
<updated>2025-12-10T13:00:26+00:00</updated>
<author>
<name>·𐑑𐑴𐑕𐑑𐑩𐑤</name>
</author>
<published>2025-12-10T13:00:26+00:00</published>
<link rel='alternate' type='text/html' href='https://pics.social.crashoverburn.com/nixtaml/commit/?id=3df27ffb2bd40f3eaeed6dfb08ef3041cc60bfe0'/>
<id>3df27ffb2bd40f3eaeed6dfb08ef3041cc60bfe0</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
</feed>
