feat: 任务书 06,workspace 模块与 task.json 的"不存"清单

workspace 用一个裸仓库存代码版本,版本号是目录树编号,不造提交,每个版本挂 refs/versions/ 引用防清理。
存版本自己遍历目录、hash-object --no-filters 存,不用 git add;符号链接等特殊文件交回"存不了"。
取出用 ls-tree 加 cat-file 原样写出:实测 git archive 会按树里的 .gitattributes 丢文件、改换行符。
git 子进程不读系统和用户的配置,另关掉系统和用户的 attributes 文件:实测只关配置时 ~/.config/git/attributes 仍会被读。
比较交回文件级改动、新旧两边行号范围的块,以及带上下文的 diff 原文。
tasks:task.json 加必填的 unversionedNames,protectedFiles 删掉 solution.json。
全新上下文审阅一轮,采纳一条:注明块可以为空(空文件增删、只改可执行位)。

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
2026-10-02 23:43:01 -04:00
parent a1a2feb135
commit 6850c0a1d4
8 changed files with 500 additions and 5 deletions
+2 -1
View File
@@ -4,5 +4,6 @@
"epsilon": 0.01,
"knownBest": 2.635983,
"run": { "wallSeconds": 120, "cores": 1, "runtime": "runc" },
"protectedFiles": ["harness.py", "validate.py", "check-candidate.py", "metrics-spec.json", "solution.json", "evaluate.py", "LICENSE", "SOURCES.md"]
"protectedFiles": ["harness.py", "validate.py", "check-candidate.py", "metrics-spec.json", "evaluate.py", "LICENSE", "SOURCES.md"],
"unversionedNames": ["__pycache__", ".git", "solution.json", "metrics.json"]
}