feat: isolate agentic worktrees and surface execution evidence
This commit is contained in:
@@ -4,6 +4,7 @@ from __future__ import annotations
|
||||
import logging
|
||||
import shutil
|
||||
import subprocess
|
||||
import tempfile
|
||||
from datetime import datetime
|
||||
from pathlib import Path
|
||||
|
||||
@@ -20,6 +21,22 @@ def make_branch_name(preset_name: str) -> str:
|
||||
return f"cross-eval/{preset_name}_{ts}"
|
||||
|
||||
|
||||
def make_worktree_dir(base_cwd: Path, branch_name: str) -> Path:
|
||||
"""Choose a worktree directory outside the base repo.
|
||||
|
||||
Keeping agentic worktrees outside the source checkout avoids tools that
|
||||
incorrectly walk up to the outer repo and write into the base worktree.
|
||||
"""
|
||||
repo_name = base_cwd.resolve().name or "repo"
|
||||
branch_slug = branch_name.replace("/", "__")
|
||||
return (
|
||||
Path(tempfile.gettempdir())
|
||||
/ "cross-eval-worktrees"
|
||||
/ repo_name
|
||||
/ branch_slug
|
||||
)
|
||||
|
||||
|
||||
def create_worktree(base_cwd: Path, work_dir: Path, branch_name: str) -> Path:
|
||||
"""Create a git worktree on a new branch from HEAD.
|
||||
|
||||
|
||||
Reference in New Issue
Block a user