fix: parent traversal 应在 .git 边界停止 #168

Open
opened 2026-06-07 15:28:32 +00:00 by xiaoju · 0 comments
Owner

Bug

findWorkflowInParents(thread.ts)注释写了 "Stops at filesystem root or .git directory",但代码只检查了 filesystem root,没有 .git 边界检查。discoverProjectWorkflows(store.ts)的 parent traversal 同样没有。

来源:PR #167 小墨 review nit。

为什么要停

.workflow/ 是 project-local 概念,不应穿透 git repo 根目录往上走。例如 monorepo 子目录跑 uwf,找到 repo root 的 .workflow/ 就该停,不该继续往 ~/ 走。

涉及

  • packages/cli/src/commands/thread.tsfindWorkflowInParents() L299 循环加 .git 检查
  • packages/cli/src/store.tsdiscoverProjectWorkflows() 调用侧的 parent traversal 也需同步
  • 补测试:在 parent 目录放 .git 目录,验证不会穿透
## Bug `findWorkflowInParents`(thread.ts)注释写了 "Stops at filesystem root or .git directory",但代码只检查了 filesystem root,没有 `.git` 边界检查。`discoverProjectWorkflows`(store.ts)的 parent traversal 同样没有。 来源:PR #167 小墨 review nit。 ## 为什么要停 `.workflow/` 是 project-local 概念,不应穿透 git repo 根目录往上走。例如 monorepo 子目录跑 `uwf`,找到 repo root 的 `.workflow/` 就该停,不该继续往 `~` 或 `/` 走。 ## 涉及 - `packages/cli/src/commands/thread.ts` — `findWorkflowInParents()` L299 循环加 `.git` 检查 - `packages/cli/src/store.ts` — `discoverProjectWorkflows()` 调用侧的 parent traversal 也需同步 - 补测试:在 parent 目录放 `.git` 目录,验证不会穿透
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: shazhou/united-workforce#168