feat(collector): 結構先行——掃描完幾秒內就能問「資料夾裡有什麼」,不等 LLM 不等額度(InkStoneCo#43)
leo 08-15 量測:266 檔真正算的 ~20 分鐘/<$0.5,使用者卻等 ~4 天(多在等 Workers AI 每日額度);而「有哪些檔案/最近改了什麼」本地掃一遍就有答案 (1,335 檔實測 0.254s),卻因 part_of 只在雲端 parse_card(萃取之後)生成 而排同一條隊、撞同一面額度牆。 - collector/inventory.go:Scan() 後、萃取迴圈前(額度冷卻閘之外),把 manifest 現況做成機械總覽卡(檔案清單/最近改動/目錄 part_of)POST 既有 rag_ingest_card ——零 LLM、零新 workflow、既有實例直接受益;自帶同頁名 upsert 防重複 - 冪等:內容 sha256 記 manifest.inventory_hash;失敗 10 分鐘退避(防 t195 同款 每 5 秒重撞);額度失敗訊息人話化,不裸露 4006/502 - 清單 ≤200 逐檔、關聯 ≤10 條:守 Workers 免費層 50 subrequests 天花板 - 不寫本機檔案、不動使用者原稿 實測(youlin stage yuga3bse,刻意無金鑰=零萃取):總覽卡 200 送達、rag_chat 正確回答「有哪些檔案/最近改了什麼」;重掃不重複(blocks 恆 5、triplets 恆 2); go test collector+supervisor+arcrun-app 全綠(新增 inventory_test.go 6 案)。 Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
@@ -72,6 +72,15 @@ type Manifest struct {
|
||||
FolderID string `json:"folder_id"`
|
||||
Root string `json:"root"`
|
||||
Entries map[string]*ManifestEntry `json:"entries"`
|
||||
// InventoryHash=最後一次**成功送達雲端**的資料夾總覽卡內容雜湊(結構先行,
|
||||
// InkStoneCo#43,見 inventory.go)。與 entries 的跨輪 carry 陷阱無關——這是
|
||||
// Manifest 層欄位,Scan() 的 rebuild 只重建 Entries,不會碰它,天然跨輪存活。
|
||||
InventoryHash string `json:"inventory_hash,omitempty"`
|
||||
// InventoryFailHash/InventoryNextRetry=總覽卡上一次送失敗的內容雜湊與下次可重試
|
||||
// 時間(unix)。存在理由=t195 同款:積壓卡住時每輪都有事件,沒有這道退避,
|
||||
// 雲端一壞就是每 5 秒撞一次。內容變了(雜湊不同)視同新卡,立即可再試。
|
||||
InventoryFailHash string `json:"inventory_fail_hash,omitempty"`
|
||||
InventoryNextRetry int64 `json:"inventory_next_retry,omitempty"`
|
||||
}
|
||||
|
||||
// newUUID 產生 RFC 4122 v4 UUID(純 stdlib)。
|
||||
|
||||
Reference in New Issue
Block a user