Fix task worktree path derivation to anchor on the main checkout #69

Merged
weichen merged 5 commits from feature/task-start-rootfix into main 2026-09-30 15:32:24 +00:00
Owner

feature/task-start-rootfix 任务卡

任务主记录:<PR 链接,task-finish 时填写>;状态:进行中;owner:weichen

基线与授权

  • 权威仓:ssh://git@git-ssh.u1680832.nyat.app:31411/weichen/Agent-System-Dev.git;目标分支:main;R0(initial_base_sha)= ffda6d33ea
  • 工作区:/home/weichen/projects/Agent-System-Dev-wt-feature-task-start-rootfix(worktree);分支:feature/task-start-rootfix
  • 授权与交付终点:修复 cmd_start 的 worktree 落点推算并验证;终点为 PR 合入 main 后回收 worktree。

目标与非目标

  • 目标:task.sh start 的 worktree 落点从 $PWD 推算改为经 git rev-parse --git-common-dir 定位主检出,使从仓库子目录(或任务 worktree 内)运行时也落在主检出平级 ../Agent-System-Dev-wt-<slug>;受影响入口仅 cmd_start。
  • 非目标:不改 worktree 布局本身(维持平级散放,布局决策已定);不改 sync/close/finish;不引入对 .gitignore 的变更。

同步记录

节点 sync_base_sha tested_head_sha checked_at
启动 ffda6d33ea ffda6d33ea 2026-09-30T15:22:51Z
同步前验收 7fab8feaf7 aecaa52e6b 2026-09-30T15:28:27Z

结果与验证

  • 结果:cmd_start 增设 mainroot=$(dirname "$(cd "$(git rev-parse --git-common-dir)" && pwd)")(与 cmd_finish 定位主检出同款惯用法),落点改为 $(dirname "$mainroot")/$(basename "$mainroot")-wt-${slug};主检出根运行时路径与旧实现一致。
  • 验证:bash -n 通过(shellcheck 未安装,跳过);冒烟 A——主检出 scripts/ 子目录运行修复版 start,worktree 落在 /home/weichen/projects/Agent-System-Dev-wt-feature-rootfix-smoke(修复前形态 scripts-wt-… 已断言不存在);冒烟 B——主检出根目录运行,落点与现有惯例一致;smoke worktree/分支已全部清理,git worktree list 无残留。
  • 影响与剩余项:无剩余项;pre-commit 的 Mimosa 钩子报 advisory(scanner_no_output,兼容策略放行),属环境侧扫描器无输出,非本次改动引入。
# feature/task-start-rootfix 任务卡 任务主记录:<PR 链接,task-finish 时填写>;状态:进行中;owner:weichen ## 基线与授权 - 权威仓:ssh://git@git-ssh.u1680832.nyat.app:31411/weichen/Agent-System-Dev.git;目标分支:main;R0(initial_base_sha)= ffda6d33eabb23c9be5bac221529367d771c5f7b - 工作区:/home/weichen/projects/Agent-System-Dev-wt-feature-task-start-rootfix(worktree);分支:feature/task-start-rootfix - 授权与交付终点:修复 cmd_start 的 worktree 落点推算并验证;终点为 PR 合入 main 后回收 worktree。 ## 目标与非目标 - 目标:`task.sh start` 的 worktree 落点从 `$PWD` 推算改为经 `git rev-parse --git-common-dir` 定位主检出,使从仓库子目录(或任务 worktree 内)运行时也落在主检出平级 `../Agent-System-Dev-wt-<slug>`;受影响入口仅 `cmd_start`。 - 非目标:不改 worktree 布局本身(维持平级散放,布局决策已定);不改 sync/close/finish;不引入对 `.gitignore` 的变更。 ## 同步记录 | 节点 | sync_base_sha | tested_head_sha | checked_at | |---|---|---|---| | 启动 | ffda6d33eabb23c9be5bac221529367d771c5f7b | ffda6d33eabb23c9be5bac221529367d771c5f7b | 2026-09-30T15:22:51Z | | 同步前验收 | 7fab8feaf7 | aecaa52e6b | 2026-09-30T15:28:27Z | ## 结果与验证 - 结果:`cmd_start` 增设 `mainroot=$(dirname "$(cd "$(git rev-parse --git-common-dir)" && pwd)")`(与 `cmd_finish` 定位主检出同款惯用法),落点改为 `$(dirname "$mainroot")/$(basename "$mainroot")-wt-${slug}`;主检出根运行时路径与旧实现一致。 - 验证:`bash -n` 通过(shellcheck 未安装,跳过);冒烟 A——主检出 `scripts/` 子目录运行修复版 start,worktree 落在 `/home/weichen/projects/Agent-System-Dev-wt-feature-rootfix-smoke`(修复前形态 `scripts-wt-…` 已断言不存在);冒烟 B——主检出根目录运行,落点与现有惯例一致;smoke worktree/分支已全部清理,`git worktree list` 无残留。 - 影响与剩余项:无剩余项;pre-commit 的 Mimosa 钩子报 advisory(scanner_no_output,兼容策略放行),属环境侧扫描器无输出,非本次改动引入。
weichen added 5 commits 2026-09-30 15:31:41 +00:00
Why: cmd_start derived the worktree location from $PWD, so running task.sh start from a repository subdirectory (or inside a task worktree) placed the new worktree at the wrong spot — e.g. scripts-wt-<slug> nested inside the repo.
Evidence: bash -n clean; functional smoke of the patched script from both the main checkout scripts/ subdir and the repo root created ../Agent-System-Dev-wt-<slug> as a sibling of the main checkout (paths asserted; pre-fix subdir run would nest inside the repo); git rev-parse --git-common-dir resolves to the main checkout from both locations (relative ../.git vs absolute).
Impact: scripts/task.sh cmd_start only; from the main checkout root the derived path is identical to before; new worktrees now always land as siblings of the main checkout regardless of invocation directory.
Refs: .task/feature-task-start-rootfix.md
Fill task card objectives and verification evidence
ci / test (pull_request) Failing after 2m17s
a4d4a13742
Why: the task card and PR description are one document; objectives, results and verification evidence must be on the record before requesting review.
Evidence: card filled with smoke A/B results (sibling-path assertions both PASS) and sync row 7fab8feaf7/aecaa52e6b.
Impact: .task/feature-task-start-rootfix.md only; no code change.
Refs: feature-task-start-rootfix
weichen merged commit 84b6ab084e into main 2026-09-30 15:32:24 +00:00
Sign in to join this conversation.
No Reviewers
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: weichen/Agent-System-Dev#69