summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
18 hoursSeriously Crash? You can not even have agents record work? Clone Toastie by ↡HEADmasterDarth PJB
accident? Senpai is mad at you.
18 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
19 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.
19 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.
19 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.
20 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.
20 hoursAdd comprehensive project documentationCrash Over Burn
Create complete documentation set in doc/ folder: - index.rst: Main project overview, quickstart, architecture - philosophy.rst: Design principles, KDL rationale, VCS diversity - roadmap.rst: Phased development plan (Phase 2.5 current, Phase 3 graphs next) - history.rst: Development timeline, key decisions, lessons learned - manifest.rst: Updated to v0.2.0, added Fossil docs, schema upgrade notes Documentation covers: - Current state (Phase 2.5) - Complete roadmap through Phase 4 - Visual dependency graph plans (Phase 3) - Philosophy and anti-corporate stance - History from origins to present All documentation in reStructuredText format for website generation.
31 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-03-04Create flakehub ymlCrash Over Burn
2026-02-26tweak CHANGELOG·𐑑𐑴𐑕𐑑𐑩𐑀
2026-02-09OVERBURNCrash Over Burn
2026-02-07docs: add Phase 1 implementation notes·𐑑𐑴𐑕𐑑𐑩𐑀
- Documented strategic architecture and implementation approach - Recorded challenges with pure evaluation and wrapper pattern solution - Captured philosophical consistency preservation - Noted hybrid workflow capabilities and ecosystem bridge benefits - Preserved attribution guidelines and toastal's development patterns Comprehensive record of Phase 1 dual flake integration process.
2026-02-07Phase 1: Implement dual flake support with ecosystem bridge·𐑑𐑴𐑕𐑑𐑩𐑀
- Added flake.nix using wrapper pattern for modern flake access - Implemented core outputs: packages, devShells, checks, lib, apps - Generated flake.lock for reproducible builds - Updated documentation with dual workflow examples - Preserved traditional nix-build workflow compatibility - Maintained philosophical stance as flake alternative/complement - Enabled hybrid workflows and ecosystem integration Provides modern flake access while maintaining nixtamal's core values.
2026-01-07lock loader: fix indentation·𐑑𐑴𐑕𐑑𐑩𐑀
2026-01-05Nixtamal: upgrade to the new 0.1.1 schema·𐑑𐑴𐑕𐑑𐑩𐑀
2026-01-02Silo: make names a folder for the future·𐑑𐑴𐑕𐑑𐑩𐑀
2026-01-02dune: make deprecations a warning locally·𐑑𐑴𐑕𐑑𐑩𐑀
I would *prefer* an error, but something is up wiΓΎ QCheck ATM
2026-01-02Schema bump: lockfile fields required·𐑑𐑴𐑕𐑑𐑩𐑀
2026-01-02Lockfile: make optional values mandatory, but null·𐑑𐑴𐑕𐑑𐑩𐑀
Useful for hashing
2026-01-02nixtamal: refresh·𐑑𐑴𐑕𐑑𐑩𐑀
2026-01-02QCheck: update naming·𐑑𐑴𐑕𐑑𐑩𐑀
2026-01-02qcheck: version assertions·𐑑𐑴𐑕𐑑𐑩𐑀
2026-01-01nix/tamal/default.nix: update with newest syntax·𐑑𐑴𐑕𐑑𐑩𐑀
2026-01-01lock loader: builtins.throw isn’t clearer than throw·𐑑𐑴𐑕𐑑𐑩𐑀
2026-01-01lock loader: rename path·𐑑𐑴𐑕𐑑𐑩𐑀
2026-01-01version: 0.0.8-alpha β†’ 0.0.9-alpha·𐑑𐑴𐑕𐑑𐑩𐑀
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-31nix/tamal: .ignore onset·𐑑𐑴𐑕𐑑𐑩𐑀
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-31Dune: ignore directories from the top level·𐑑𐑴𐑕𐑑𐑩𐑀
2025-12-31version: 0.0.7-alpha β†’ 0.0.8-alpha·𐑑𐑴𐑕𐑑𐑩𐑀
2025-12-31Silo: unlink/rm first·𐑑𐑴𐑕𐑑𐑩𐑀
2025-12-31Dune: ignore the Nix directory·𐑑𐑴𐑕𐑑𐑩𐑀
2025-12-30version: 0.0.6-alpha β†’ 0.0.7-alpha·𐑑𐑴𐑕𐑑𐑩𐑀
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-23doc/manifest: fix directory latest-cmd·𐑑𐑴𐑕𐑑𐑩𐑀
There isn’t recursive resolver (yet?) for these sorts of value
2025-12-23list-stale: move first log to debug·𐑑𐑴𐑕𐑑𐑩𐑀