Why: establish the authorized task workspace and its initial baseline.
Evidence: preserved precheck receipt in .task/feature-finish-guard-fixes.md; R0=4edec763fff1b8239e203dc9106f16a241ca343d.
Impact: task metadata only; the feature workspace starts at 4edec763ff.
Refs: .task/feature-finish-guard-fixes.md
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
feature/finish-guard-fixes 任务卡
任务主记录:<PR 链接,交付前填写>;状态:进行中;owner:weichen
基线与授权
权威仓:ssh://git@git-ssh.u1680832.nyat.app:31411/weichen/Agent-System-Dev.git;目标分支:main;R0(initial_base_sha)=
4edec763ff工作区:/home/weichen/projects/Agent-System-Dev-wt-feature-finish-guard-fixes(worktree);分支:feature/finish-guard-fixes
授权与交付终点:会话目标令(2026-10-05,owner)「按阶段流程保持推进系统目标」;两处 finish 守卫误报修复 + 回归测试,PR 合入+worktree 清理为终点。
目标与非目标(阶段一:目标确认;阶段二:方案)
common.rglob("*.lock")把.git/cursor/等 IDE 产物当 Git 锁(实测五天陈锁阻断回收,手工删除才通过);② 子仓 pinned-history 检查rev-list --all --reflog --not <pin>把远端跟踪引用(refs/remotes)也计入——pin 在 feature 顶端的子仓(backend/documents 等)因 origin/main 不在 pin 历史内而永远无法 finish(实测靠删远端引用+清 reflog 绕过,损害现场)。common/config.lock、common/index.lock(主检出侧)、各 worktree gitdir 的index.lock/HEAD.lock、shallow.lock、MERGE_HEAD/CHERRY_PICK_HEAD/REVERT_HEAD/BISECT_LOG/rebase-merge/rebase-apply(活动操作标记,沿用 check_operations 已有清单);排除.git/cursor/等一切非 Git 目录。② reachability 改为仅本地分支 + stash + reflog(HEAD):rev-list --branches --tags? 否——tags 属远端快照亦可漂→ 用--branches+ 显式 stash 引用 +HEADreflog(--reflog限定 HEAD:rev-list --branches --reflog=HEAD?实现取git rev-list --branches --not <pin>加git stash list检查 + HEAD reflog 逐条--not <pin>判定;refs/remotes 一律不算——远端有副本即「已保全」。同步记录
4edec763ff4edec763ff证据(Evidence)
结果与验证(完成后填写)
.git/cursor/等 IDE 产物不再误报;②子仓 pinned-history 改为local_work_outside:仅本地分支(--branches)+ stash + HEAD reflog 的独有提交,refs/remotes 一律不算(远端有副本即已保全)——pin 在 feature 顶端的子仓不再永久卡死。PR 说明:与任务卡同一份文档。锁扫描收窄到 Git 真实锁语义;pinned-history 只认本地分支+stash+HEAD reflog(refs/remotes 不算——远端有副本即已保全)。审阅重放集:python3 -m unittest tests.test_task.FinishGuardFixTests -v;全套 tests。
Why: 2026-10-05 两次实测踩到——①rglob("*.lock") 把 .git/cursor/ IDE 产物当 Git 锁 (五天陈锁阻断 worktree 回收);②pinned-history 用 --all --reflog 把 refs/remotes 计入,pin 在 feature 顶端的子仓永远无法 finish(被迫删远端引用+清 reflog 损害现场)。 Evidence: FinishGuardFixTests 四例全绿(误报修复+真实锁仍拦+独有提交仍保); 全套治理回归 91 例 OK;make test 全链证据入卡。 Impact: 仅 finish 模式两处判定;IDE 产物与远端引用不再误伤,本地独有工作保全语义不变。 Refs: 本仓 governance 收尾实录(EXT-1 与 governance-reliability 两轮)。