3aa7fbfeb0
- Add gitRun helper using spawner.spawn + ChildProcess.make (Snapshot pattern) - Convert makeWorktreeInfo + candidate to fully effectful (FileSystem, Path, gitRun) - createFromInfo/remove/reset remain Effect.promise wrappers (incremental conversion) - Layer depends on FileSystem, Path, ChildProcessSpawner; defaultLayer provides Node impls