feat(daemon-beta t2): template 代裝——embed v1.18.0 快照(36檔)/冪等不覆寫/daemon 啟動自動鋪/template-install 子命令;scan 加 SkipDirNames 防 system-dev 與 CLAUDE.md 被當知識掃
- 測試 3 支新增全綠(首鋪/冪等護用戶檔/掃描跳 template 產物——第三支先紅抓到 CLAUDE.md 洩入再修綠) - CLI 實跑:新鋪 36 檔→重跑 0 新檔(冪等證據)
This commit is contained in:
@@ -221,7 +221,13 @@ func runDirectOnceRoot(cfg *DirectConfig, root string, dryRun bool) ([]DirectRes
|
||||
}
|
||||
payload, err := Scan(absRoot, m, ScanOptions{
|
||||
MaxRemovedRatio: cfg.MaxRemoved,
|
||||
SkipPaths: map[string]bool{absManifest: true},
|
||||
SkipPaths: map[string]bool{
|
||||
absManifest: true,
|
||||
// template 代裝的根層 CLAUDE.md 是 CC 設定檔,永遠不是用戶知識(task 2)
|
||||
filepath.Join(absRoot, "CLAUDE.md"): true,
|
||||
},
|
||||
// template 代裝後 system-dev/(wiki 產物區)不得被當原稿掃進 ingest(task 2)
|
||||
SkipDirNames: map[string]bool{"system-dev": true},
|
||||
})
|
||||
if err != nil {
|
||||
return append(results, DirectResult{Status: "failed", Error: err.Error()}), 1, nil
|
||||
@@ -332,6 +338,21 @@ func runDirect(args []string) int {
|
||||
return exit
|
||||
}
|
||||
|
||||
// 四步定稿第 1 步:daemon 代裝 template——常駐看守前確保每根都鋪好(冪等,不覆寫既有檔)。
|
||||
// dry-run/--once 測試情境不代裝(不留副作用),由 template-install 子命令顯式做。
|
||||
if !*once && !*dryRun {
|
||||
for _, root := range cfg.Folders() {
|
||||
if TemplateInstalled(root) {
|
||||
continue
|
||||
}
|
||||
if res, ierr := InstallTemplate(root); ierr != nil {
|
||||
fmt.Fprintf(os.Stderr, "template 代裝失敗(%s):%v\n", root, ierr)
|
||||
} else {
|
||||
fmt.Fprintf(os.Stderr, "template v%s 已鋪進 %s(新 %d 檔)\n", res.Version, root, len(res.Installed))
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if *once {
|
||||
return runOne()
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user