Problem / 问题
在同一个仓库上跑多个 agent / 多任务时,所有会话都共用同一个工作目录,并行任务很容易互相覆盖文件、产生冲突。目前 PI-Desktop 没有 worktree 概念,Bash 工具只能在同一目录下执行。
参考实现(同为 pi 生态的 Pi Agent Desktop 0.84.0):它有专门的 findGitPaths 处理 worktree(.git 是文件而非目录的情况),并会针对 git worktree add ../feat 这类兄弟 worktree 做仓库归一化。Codex 也是这个思路:每个任务开一个隔离 worktree。
Proposed change / 期望改动
为 PI-Desktop 增加 Git worktree 支持:
- 任务级 worktree:新任务可选「在独立 worktree 中运行」——自动
git worktree add 到临时目录,任务文件改动落在那棵 worktree 里,主仓库不受影响;
- 路径识别:会话/工具层的 workspace root 能正确识别「主仓库 + 链接 worktree」的关系,Bash 的 cwd、文件预览、artifact 路径都能指向正确的 worktree;
- 清理与合并:任务结束后可选择删除 worktree 或合并改动回主仓库;
- 团队/多分支场景下也顺带解决「同一仓库开多个会话时 git 状态互相干扰」。
Alternatives / 其他方案
- 只提供引导:用户自己在
Bash 里 git worktree add,软件不感知(治标,易出错);
- 维持现状:单目录并行,靠用户自理冲突(当前行为)。
Additional context / 补充信息
- 版本:PI-Desktop 0.14.1(macOS)
- 现状:
git worktree 相关处理为 0;Bash 工具、会话、文件系统都以单一 workspace root 工作
- 参考:Pi Agent Desktop(DLYZZT/pi-desktop 生态)已支持 worktree 归一化;Codex 同思路
Problem / 问题
在同一个仓库上跑多个 agent / 多任务时,所有会话都共用同一个工作目录,并行任务很容易互相覆盖文件、产生冲突。目前 PI-Desktop 没有 worktree 概念,
Bash工具只能在同一目录下执行。参考实现(同为 pi 生态的 Pi Agent Desktop 0.84.0):它有专门的
findGitPaths处理 worktree(.git是文件而非目录的情况),并会针对git worktree add ../feat这类兄弟 worktree 做仓库归一化。Codex 也是这个思路:每个任务开一个隔离 worktree。Proposed change / 期望改动
为 PI-Desktop 增加 Git worktree 支持:
git worktree add到临时目录,任务文件改动落在那棵 worktree 里,主仓库不受影响;Alternatives / 其他方案
Bash里git worktree add,软件不感知(治标,易出错);Additional context / 补充信息
git worktree相关处理为 0;Bash工具、会话、文件系统都以单一 workspace root 工作