fabro/crates
Bryan Helmkamp e97c16f03f Git worktree isolation and per-node checkpoint commits
Create a dedicated git branch + worktree per pipeline run (Local env only)
and commit after every node checkpoint. This gives each run an isolated
working directory and a full git trail of changes per stage.

New module: git.rs with ensure_clean, head_sha, create_branch,
add/remove_worktree, and checkpoint_commit (using arc identity).

Engine changes: RunConfig gains run_id and work_dir fields; after each
checkpoint save, a git commit is created in the worktree and the SHA
is stored in checkpoint.git_commit_sha.

CLI changes: for Local execution, the repo cleanliness is verified
before any log files are written, then a worktree is created on branch
arc/run/{uuid}, cwd is switched into it, and cleanup runs after the
engine completes.

Handler changes: run_hook() accepts work_dir so hooks execute in the
worktree.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-28 10:51:37 -05:00
..
arc-agent Rename all crates from unprefixed to arc-* prefix 2026-02-28 04:20:47 -05:00
arc-attractor Git worktree isolation and per-node checkpoint commits 2026-02-28 10:51:37 -05:00
arc-git-storage Rename all crates from unprefixed to arc-* prefix 2026-02-28 04:20:47 -05:00
arc-llm Rename all crates from unprefixed to arc-* prefix 2026-02-28 04:20:47 -05:00
arc-mcp Rename all crates from unprefixed to arc-* prefix 2026-02-28 04:20:47 -05:00
arc-util Rename all crates from unprefixed to arc-* prefix 2026-02-28 04:20:47 -05:00