| Age | Commit message (Collapse) | Author | |
|---|---|---|---|
| 22 hours | Add URI validation for security (Phase 1.3) | toastal | |
| 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. | |||
| 22 hours | Fix KDL.of_flow Result type and update callers | toastal | |
| - Properly type annotate KDL.of_flow to return (t, [> `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. | |||
| 22 hours | Phase 1: Fix security vulnerabilities and error handling | toastal | |
| - 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. | |||
| 23 hours | Add bisect_ppx test coverage infrastructure with CI workflow and test suites | Crash Over Burn | |
| 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. | |||
| 35 hours | Port upstream patches: Cmdliner 2.x, lockfile auto-creation, schema upgrade, β΅ | Crash Over Burn | |
| Fossil VCS 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. | |||
| 2026-01-07 | lock loader: fix indentation | Β·ππ΄πππ©π€ | |
| 2026-01-02 | Silo: make names a folder for the future | Β·ππ΄πππ©π€ | |
| 2026-01-02 | Schema bump: lockfile fields required | Β·ππ΄πππ©π€ | |
| 2026-01-02 | Lockfile: make optional values mandatory, but null | Β·ππ΄πππ©π€ | |
| Useful for hashing | |||
| 2026-01-02 | QCheck: update naming | Β·ππ΄πππ©π€ | |
| 2026-01-01 | lock loader: builtins.throw isnβt clearer than throw | Β·ππ΄πππ©π€ | |
| 2026-01-01 | lock loader: rename path | Β·ππ΄πππ©π€ | |
| 2026-01-01 | silo: upgrade to full Nix GC root link | Β·ππ΄πππ©π€ | |
| Now that the proof of concept of symlinks worked, we can actually call nix-store --realize | |||
| 2025-12-31 | Prefetch: move command flow to module | Β·ππ΄πππ©π€ | |
| 2025-12-31 | Prefetch: File+Archive stdout result into module | Β·ππ΄πππ©π€ | |
| 2025-12-31 | setup: warn, Β¬ error on existing manifest | Β·ππ΄πππ©π€ | |
| 2025-12-31 | silo: if failed to link, try to set up silo + retry link | Β·ππ΄πππ©π€ | |
| 2025-12-31 | working dir: ignore darcs_context too! | Β·ππ΄πππ©π€ | |
| 2025-12-31 | Silo: /silo β /.silo for more compatibility | Β·ππ΄πππ©π€ | |
| Some tools, like OCamlβs Dune, will try to follow the symlinks into the store which is a big problem | |||
| 2025-12-31 | Silo: unlink/rm first | Β·ππ΄πππ©π€ | |
| 2025-12-30 | errors: fix casing | Β·ππ΄πππ©π€ | |
| 2025-12-30 | prefetch: paths | Β·ππ΄πππ©π€ | |
| 2025-12-30 | silo: unlisted input cleanup | Β·ππ΄πππ©π€ | |
| 2025-12-30 | silo: make symlinks | Β·ππ΄πππ©π€ | |
| 2025-12-30 | foreman: remove fixed TODO | Β·ππ΄πππ©π€ | |
| 2025-12-30 | foreman: just use currying | Β·ππ΄πππ©π€ | |
| 2025-12-30 | silo: onset | Β·ππ΄πππ©π€ | |
| 2025-12-30 | ignore: onset | Β·ππ΄πππ©π€ | |
| 2025-12-30 | Working dir: use info + fix wording | Β·ππ΄πππ©π€ | |
| 2025-12-23 | list-stale: move first log to debug | Β·ππ΄πππ©π€ | |
| 2025-12-23 | list-stale: guard against is_outdated | Β·ππ΄πππ©π€ | |
| 2025-12-23 | refresh: print name with latest debug info | Β·ππ΄πππ©π€ | |
| 2025-12-23 | foreman: use Semaphore | Β·ππ΄πππ©π€ | |
| 2025-12-22 | show: pipe sep | Β·ππ΄πππ©π€ | |
| 2025-12-20 | lock_loader too only shows files on info verbosity | Β·ππ΄πππ©π€ | |
| 2025-12-20 | Tabs in comments | Β·ππ΄πππ©π€ | |
| 2025-12-20 | newlines to fix tab indentation | Β·ππ΄πππ©π€ | |
| I really need to just write to my own buffer if Format isnβt gonna support tabs :| | |||
| 2025-12-20 | oops newline | Β·ππ΄πππ©π€ | |
| 2025-12-20 | unset newline in lockfile | Β·ππ΄πππ©π€ | |
| 2025-12-19 | logging: move manifest Γ lockfile to info | Β·ππ΄πππ©π€ | |
| 2025-12-14 | list-stale command | Β·ππ΄πππ©π€ | |
| 2025-12-13 | styled show | Β·ππ΄πππ©π€ | |
| 2025-12-13 | missing angle close | Β·ππ΄πππ©π€ | |
| 2025-12-13 | add show to name | Β·ππ΄πππ©π€ | |
| 2025-12-13 | fix git ls-remote | Β·ππ΄πππ©π€ | |
| 2025-12-12 | keep pool exception | Β·ππ΄πππ©π€ | |
| 2025-12-12 | redo some latest_cmd funs | Β·ππ΄πππ©π€ | |
| 2025-12-12 | dry up prefetch cmd output gathering | Β·ππ΄πππ©π€ | |
| 2025-12-11 | remove unused exception | Β·ππ΄πππ©π€ | |
| 2025-12-11 | make KDL module + fix casing | Β·ππ΄πππ©π€ | |
