* fix(#3097, #3099): add cwd-drift + absolute-path guards to executor worktree protocol #3097 — cwd-drift sentinel (gsd-executor.md task_commit_protocol step 0a): A Bash cd out of the worktree makes [ -f .git ] false, silently skipping all HEAD/branch safety guards. Commits land on main's branch. Fix: on first commit, capture spawn-time toplevel into sentinel file at .git/worktrees/<name>/gsd-spawn-toplevel. Before every subsequent commit, verify ACTUAL_TL matches EXPECTED_TL. Exits 1 with recovery instructions if drift detected. #3099 — absolute-path guard (gsd-executor.md task_commit_protocol step 0b): Absolute paths constructed from the orchestrator's pwd (main repo root) resolve to the main repo inside worktrees. Edit/Write lands in wrong dir; git commit sees a clean worktree tree; work silently lost or leaks to main. Fix: before any absolute-path Edit/Write, verify path starts with WT_ROOT=/Users/thbouc/projects/get-shit-done. Prefer relative paths. Both guards are documented in references/worktree-path-safety.md, which is now loaded into every executor spawn prompt via <execution_context>. The <worktree_branch_check> footnote references all three steps (0/0a/0b). execute-phase.md: extracted worktree bash commands to reference file (safe embed — @ files are inlined before the executor processes the prompt). The blank line in <required_reading> was removed to stay at the XL=1700 line budget after adding the @ reference. Suite: 6986/6986. Closes #3097. Closes #3099. * fix(lint+executor+docs): allow-test-rule, fix [ -f .git ] guard, fail-closed abs-path check, fix INVENTORY count
1.1 KiB
type, pr
| type | pr |
|---|---|
| Fixed | 3097 |
Executor agents now detect and halt on cwd-drift out of worktrees (#3097) — when a Bash call cd'd out of a worktree, [ -f .git ] became false (main repo's .git is a directory), silently skipping all HEAD/branch guards and allowing commits to land on the main repo's branch. Adds step 0a (cwd-drift sentinel using git rev-parse --git-dir + a per-worktree sentinel file at .git/worktrees/<name>/gsd-spawn-toplevel) to gsd-executor.md's task_commit_protocol. Closes #3097.
type: Fixed pr: 3099
Executor agents now detect absolute paths that resolve outside the worktree (#3099) — absolute paths constructed from the orchestrator's pwd (main repo root) resolved to the main repo when used in Edit/Write calls from a worktree, silently losing work. Adds step 0b (absolute-path guard using WT_ROOT=$(git rev-parse --show-toplevel)) with a clear warning and instructions to prefer relative paths. Both guards are documented in references/worktree-path-safety.md (loaded into every executor spawn prompt via <execution_context>). Closes #3099.