Problem
A failed workspace operation can leave Git worktrees, directories, and ~/.grove/state.json out of sync. There are three concrete gaps:
- concurrent
gw processes can overwrite each other's state updates;
- delete/remove may erase a path after
git worktree remove fails; and
- adding several repos can leave earlier additions behind when a later one fails.
Small scope
Fix those cases without adding a transaction framework:
Acceptance criteria
Non-goals
- A general transaction or journal system.
- A cleanup-pending state machine.
- A full Git/filesystem reconciliation engine.
- New JSON schemas, plan/apply, or semantic exit-code taxonomy.
- Automatic repair of every possible manual Git edit.
Problem
A failed workspace operation can leave Git worktrees, directories, and
~/.grove/state.jsonout of sync. There are three concrete gaps:gwprocesses can overwrite each other's state updates;git worktree removefails; andSmall scope
Fix those cases without adding a transaction framework:
--forceis explicitly passed through to the workspace service.os.RemoveAllafter a Git removal failure in the normal path.Acceptance criteria
--force.git worktree removeleaves the path and state entry intact.Non-goals