summaryrefslogtreecommitdiff
path: root/lib
AgeCommit message (Collapse)Author
20 hoursFix URI validation bypasses (Phase 1.3 updated)toastal
- 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
20 hoursAdd 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.
20 hoursFix KDL.of_flow Result type and update callerstoastal
- 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.
20 hoursPhase 1: Fix security vulnerabilities and error handlingtoastal
- 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.
21 hoursAdd bisect_ppx test coverage infrastructure with CI workflow and test suitesCrash 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.
33 hoursPort 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-07lock loader: fix indentation·𐑑𐑴𐑕𐑑𐑩𐑀
2026-01-02Silo: make names a folder for the future·𐑑𐑴𐑕𐑑𐑩𐑀
2026-01-02Schema bump: lockfile fields required·𐑑𐑴𐑕𐑑𐑩𐑀
2026-01-02Lockfile: make optional values mandatory, but null·𐑑𐑴𐑕𐑑𐑩𐑀
Useful for hashing
2026-01-02QCheck: update naming·𐑑𐑴𐑕𐑑𐑩𐑀
2026-01-01lock loader: builtins.throw isn’t clearer than throw·𐑑𐑴𐑕𐑑𐑩𐑀
2026-01-01lock loader: rename path·𐑑𐑴𐑕𐑑𐑩𐑀
2026-01-01silo: 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-31Prefetch: move command flow to module·𐑑𐑴𐑕𐑑𐑩𐑀
2025-12-31Prefetch: File+Archive stdout result into module·𐑑𐑴𐑕𐑑𐑩𐑀
2025-12-31setup: warn, Β¬ error on existing manifest·𐑑𐑴𐑕𐑑𐑩𐑀
2025-12-31silo: if failed to link, try to set up silo + retry link·𐑑𐑴𐑕𐑑𐑩𐑀
2025-12-31working dir: ignore darcs_context too!·𐑑𐑴𐑕𐑑𐑩𐑀
2025-12-31Silo: /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-31Silo: unlink/rm first·𐑑𐑴𐑕𐑑𐑩𐑀
2025-12-30errors: fix casing·𐑑𐑴𐑕𐑑𐑩𐑀
2025-12-30prefetch: paths·𐑑𐑴𐑕𐑑𐑩𐑀
2025-12-30silo: unlisted input cleanup·𐑑𐑴𐑕𐑑𐑩𐑀
2025-12-30silo: make symlinks·𐑑𐑴𐑕𐑑𐑩𐑀
2025-12-30foreman: remove fixed TODO·𐑑𐑴𐑕𐑑𐑩𐑀
2025-12-30foreman: just use currying·𐑑𐑴𐑕𐑑𐑩𐑀
2025-12-30silo: onset·𐑑𐑴𐑕𐑑𐑩𐑀
2025-12-30ignore: onset·𐑑𐑴𐑕𐑑𐑩𐑀
2025-12-30Working dir: use info + fix wording·𐑑𐑴𐑕𐑑𐑩𐑀
2025-12-23list-stale: move first log to debug·𐑑𐑴𐑕𐑑𐑩𐑀
2025-12-23list-stale: guard against is_outdated·𐑑𐑴𐑕𐑑𐑩𐑀
2025-12-23refresh: print name with latest debug info·𐑑𐑴𐑕𐑑𐑩𐑀
2025-12-23foreman: use Semaphore·𐑑𐑴𐑕𐑑𐑩𐑀
2025-12-22show: pipe sep·𐑑𐑴𐑕𐑑𐑩𐑀
2025-12-20lock_loader too only shows files on info verbosity·𐑑𐑴𐑕𐑑𐑩𐑀
2025-12-20Tabs in comments·𐑑𐑴𐑕𐑑𐑩𐑀
2025-12-20newlines to fix tab indentation·𐑑𐑴𐑕𐑑𐑩𐑀
I really need to just write to my own buffer if Format isn’t gonna support tabs :|
2025-12-20oops newline·𐑑𐑴𐑕𐑑𐑩𐑀
2025-12-20unset newline in lockfile·𐑑𐑴𐑕𐑑𐑩𐑀
2025-12-19logging: move manifest Γ— lockfile to info·𐑑𐑴𐑕𐑑𐑩𐑀
2025-12-14list-stale command·𐑑𐑴𐑕𐑑𐑩𐑀
2025-12-13styled show·𐑑𐑴𐑕𐑑𐑩𐑀
2025-12-13missing angle close·𐑑𐑴𐑕𐑑𐑩𐑀
2025-12-13add show to name·𐑑𐑴𐑕𐑑𐑩𐑀
2025-12-13fix git ls-remote·𐑑𐑴𐑕𐑑𐑩𐑀
2025-12-12keep pool exception·𐑑𐑴𐑕𐑑𐑩𐑀
2025-12-12redo some latest_cmd funs·𐑑𐑴𐑕𐑑𐑩𐑀
2025-12-12dry up prefetch cmd output gathering·𐑑𐑴𐑕𐑑𐑩𐑀
2025-12-11remove unused exception·𐑑𐑴𐑕𐑑𐑩𐑀