Skip to content

Tack Harness V0.0.17

Latest

Choose a tag to compare

@github-actions github-actions released this 12 Oct 19:33

中文

  • 新增: close 收尾彻底注销工作区——移除 worktree、按 branches 登记簿清理分支后,经 work.sh purge 删除整个 space/<workspace>/ 目录并经 project.sh work-remove 移除 AGENTS.md 项目信息区块的 work 条目(过程文档不保留,跨工作区知识已先行沉淀至 wiki/harness);purge 设三道安全门禁:仅接受单层目录名(拒绝分隔符、空白与 ./..)、目标物理路径经 pwd -P 确认位于 space/ 内(防 symlink 逃逸)、repo/ 下不得残留有效 worktree,任一不满足即拒绝删除;收尾中断支持断点续跑(worktree 已移除、目录已删而条目残留两类断点自动接续)
  • 新增: evolution 新增「工作区登记校准」步骤(第 3 步)——project.sh 新增 work-reconcile / work-remove / work-path 三个子命令:reconcile 对账 AGENTS.md work 条目与 space/ 实际目录(只报告、零写入),输出 MISSING_DIR(条目在、目录缺失 → 移除孤儿条目)、UNREGISTERED(目录在、无条目 → 按 status.yaml 概要补登记)、STALE_COMPLETED(旧版 close 归档残留 → 确认后 purge 并移除)、PATH_MISMATCH(登记路径与磁盘不符 → 以实际目录为准经 work-path 校准)四类差异,逐类经用户确认后由脚本落盘;work 列表与切换改为只以 AGENTS.md 登记为事实源,不扫描磁盘
  • 优化: development 工作流终态由「置 completed」改为「close 注销」——状态流转止于 merged,close 后工作区目录与登记一并移除;close 不再写无消费者的 cleaned 状态、不再询问过程文档是否保留,删除由收尾统一提交
  • 优化: 执行效率纪律沉淀——tack/AGENTS.md 核心约束新增第 14 条「省往返、省上下文」(信息收集先 grep/glob 定位、只读命中片段,独立检索同轮并行,list/扫描类输出先在 shell 侧裁剪,同文件关联改动先列映射再整块编辑,删除/归档/重命名类需求先确认关联面);源仓库 AGENTS.md 新增开发时「执行效率纪律」节(连带语义先问清、E2E 用例最小化、Windows 下直接用 Git for Windows sh.exe 绝对路径等六条)

English

  • Added: close now fully deregisters a workspace at finalization—after removing worktrees and cleaning branches per the branches register, work.sh purge deletes the whole space/<workspace>/ directory and project.sh work-remove removes the work entry from the AGENTS.md project-info block (process documents are not kept; cross-workspace knowledge has already been distilled into wiki/harness). purge enforces three safety gates: a single-segment directory name only (no separators, whitespace, or ./..), the physical target path confirmed via pwd -P to reside inside space/ (symlink-escape protection), and no valid worktree left under repo/; deletion is rejected if any gate fails. Interrupted finalization resumes from breakpoints (worktree already removed, or directory gone while the entry remains)
  • Added: evolution gains a "workspace registration reconciliation" step (new step 3)—project.sh gains three subcommands work-reconcile / work-remove / work-path: reconcile compares AGENTS.md work entries against the actual space/ directories (report only, zero writes) and outputs four diff types—MISSING_DIR (entry exists, directory missing → remove the orphan entry), UNREGISTERED (directory exists, no entry → re-register from the status.yaml summary), STALE_COMPLETED (legacy close archive residue → purge and remove after confirmation), PATH_MISMATCH (registered path differs from disk → recalibrate via work-path using the actual directory); each fix lands through scripts after per-type user confirmation. Workspace listing and switching now use AGENTS.md registrations as the sole source of truth instead of scanning the disk
  • Improved: The development workflow terminal state changes from "marked completed" to "deregistered by close"—state transitions end at merged, and close removes both the workspace directory and its registration; close no longer writes the unconsumed cleaned status or asks whether to keep process documents, and the deletion is recorded by the unified finalization commit
  • Improved: Execution-efficiency discipline is crystallized—the shipped tack/AGENTS.md gains core constraint #14 "save roundtrips and context" (locate via grep/glob and read only matched snippets; issue independent searches and reads in parallel in one round; trim list/scan output on the shell side; map related edits in a file before block-replacing them; confirm the full blast radius before delete/archive/rename actions); the source-repo AGENTS.md gains a developer-facing "Execution efficiency discipline" section (six rules covering clarifying connected semantics first, minimal E2E cases, and using the Git for Windows sh.exe absolute path directly on Windows)

Full Changelog: V0.0.16...V0.0.17