sync: collector/ 同步自 inkstone/arcrun-rag@4982b50(桌面小幫手 0.18.43)

This commit is contained in:
2026-08-28 01:48:25 +08:00
parent 3d1cb83110
commit ef5fe1df6f
16 changed files with 1026 additions and 45 deletions
+31 -1
View File
@@ -119,7 +119,37 @@ func collectCardItems(absRoot string) []TidyItem {
for _, relDir := range cardDirsToScan() {
base := filepath.Join(absRoot, filepath.FromSlash(relDir))
_ = filepath.WalkDir(base, func(p string, d fs.DirEntry, err error) error {
if err != nil || d.IsDir() {
if err != nil {
return nil
}
// 🔴 inkstone/Arcrun#1342026-08-28 實測):**隱藏目錄整棵跳過。**
//
// `<node>/.wiki/` 是規範定的卡片正式落點(machinemark.go 例外 ③),
// 而卡片產物區 `system-dev/wiki/cards/` 底下也會長出一個。少了這一行,
// 這支就把 `cards/.wiki/換柱.md`「歸位」成 `cards/arcrun-換柱.md`
// ——把**產物搬回 Scan 看得見的地方**,於是下一輪它被當成新原稿再萃一次,
// 產出「卡片的卡片」,再被搬出來⋯⋯迴圈不會停。
// 實測 `youlinhsieh-test1``cards/` 20 分鐘內從 9 個檔長到 55 個,
// 出現 `arcrun-換柱(arcrun-換柱).md` 這種第三代檔名。
//
// `collectTemplateItems` 同一輪(f71e5a2)就寫了同一行同一個理由
// (「收容處自己就在 `.arcrun-rag/` 底下,不跳過的話第二次跑會把
// 搬過去的東西再搬一次」)——這支漏掉了。當時 `.wiki/` 還不存在
// 2026-08-15 才隨 ef5e6c5 進來),所以不是被否決,是沒人回來補。
//
// 📌 `inkstone/Arcrun#180` 從**另一面**撞到同一個洞,兩件事一起記著:
// · #134 看到的是「產物被搬出去 ⇒ 下一輪再萃 ⇒ 卡萃卡」
// · #180 看到的是「萃取端**讀不到自己一秒前寫的卡**」——
// 8 份文件全部 `讀卡片失敗:open …/.wiki/結晶管線.md: no such file`
// 於是 `system-dev/wiki/cards/` 底下那 9 張現成的卡一張都上不了雲端。
// ⇒ 同一行修好兩個症狀。
// ⚠️ 只跳**子**目錄(`p != base`):`.arcrun-rag/wiki/cards` 是 base 自己,
// #60 第三輪正是把卡搬進那裡——連 base 一起跳掉等於把上一輪的修復關掉。
// `TestMigrateCardNames_收容處自己仍然掃得到` 守這一格。
if d.IsDir() {
if p != base && strings.HasPrefix(d.Name(), ".") {
return filepath.SkipDir
}
return nil
}
name := d.Name()