fix(worktree): probe the directory git would act on, and say why it stopped
Resolve the removal's filesystem probes from the project repository, the way git resolves the same argument: `std::fs` would have used the app's own working directory, so a project sitting at a filesystem root — where `sibling_path` has nothing to prefix and returns a bare name — could have `remove_dir` reach for a namesake beside the app while git still held the real checkout. Keep the OS error code on the filesystem failures instead of flattening every one to `IoError`, and correct where that message is read: it lands in the task's `cleanup_failed` timeline event, not on the card. Make the two probe tests measure a modified TRACKED file. `has_changes` spawns git through the inherited environment, so an untracked fixture is only as visible as the developer's global ignore rules allow.
X
xintaofei committed
95de195002dc9c9c5dc3825dfe132afcccde29ab
Parent: 8d8cab6