feat(t73): manifest 記錄 extracted_by——換萃取器時才分辨得出哪些卡是舊的
leo 07-27 三問查證後補的缺口。查證結果(已用測試釘死,下次不必再讀碼推論): ① 已萃過它知道嗎 → 知道。ingested_hash vs content_hash,相同就跳過; 只有 2xx 成功才回寫(direct.go:405),失敗下輪自動重試不漏檔。 ② gemma 會重萃 claude 萃過的嗎 → 不會重萃(hash 相同),但原本**分辨不出誰萃的** =換萃取器後兩種品質的卡混在同一知識庫,想重萃也不知該重萃哪些。← 這次補的 ③ 誰負責萃 → cfg.Extractor 一個資料夾一個設定(direct.go:346),無自動判斷。 做法(純記錄不改行為、可逆,故自裁): - ManifestEntry 加 ExtractedBy(omitempty) - 另開 MarkIngestedBy 而非改 MarkIngested 簽名——後者有多處呼叫(direct 兩處+ trigger.go MarkIngestedEvents+測試),改簽名會擴散破壞 測試 7/7:萃過不重萃/改了要重萃/失敗下輪重試/記得誰萃的/ 舊簽名仍可用/舊 manifest 讀得進來且空值不污染 JSON/有值真的存進檔案。 未做(屬品味題待 leo 裁):B 自動偵測有無 claude 優先用用戶訂閱、C ChatGPT 路。
This commit is contained in:
@@ -383,7 +383,8 @@ func runDirectOnceRoot(cfg *DirectConfig, root string, dryRun bool) ([]DirectRes
|
||||
}
|
||||
if ok {
|
||||
res.Status = "ingested"
|
||||
m.MarkIngested(ev.Path, ev.SourceHash, now)
|
||||
// 記下是誰萃的(t73/leo 07-27):換萃取器時才分辨得出哪些卡是舊的。
|
||||
m.MarkIngestedBy(ev.Path, ev.SourceHash, now, cfg.Extractor)
|
||||
} else {
|
||||
exit = 1
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user