88b7fbf409
Phase b:把 ingest 從手動直驅升級成真無人值守。drainer/ 是 workflow km_wiki_ingest_drain 的可部署執行體(Cloudflare Worker),復用已 live 的 arcrun-code/kbdb/graph、不改 cypher-executor。 - 兩觸發共用 processCard 核心:(A) cron drain(Gitea tree 列卡→游標後取一小批→ 逐卡處理→進游標→到底回捲;撐 5,083 檔);(B) Gitea push webhook→只處理 delta。 - 游標存 KBDB 一個 ingest_cursor entry(走 API、零建表)。冪等:未改卡 entry (page_name+content_hash)/triplet(uri+hash) 皆 skip,只有新/改卡真寫。 - src/usercode.ts 由 workflow.yaml parse_card.code 抽出(單一真相源 card-to-envelope.mjs)。 - 維持非-auto:wrangler.toml 的 cron trigger 預設註解(不自走),drain 走 POST /drain。 scheduled handler 已在 code,leo 過閘後取消註解即開自走。README 記部署/secret/webhook 設定。 已部署 leo21c:arcrun-km-wiki-drainer.leo21c.workers.dev。以 wrangler dev(本地 miniflare + .dev.vars token,非 secret 寫入)對 live 服務驗證:cron drain 冪等全 skip、游標前進+回捲、 webhook delta 只寫變更卡、三模式命中新卡。GITEA_TOKEN secret 需 leo 於互動模式設(auto 擋 secret 寫入)。 Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01HJiLCRUU2o3aSpPEzVCt2o
14 lines
380 B
JSON
14 lines
380 B
JSON
{
|
||
"name": "arcrun-km-wiki-drainer",
|
||
"version": "0.1.0",
|
||
"private": true,
|
||
"type": "module",
|
||
"description": "km_wiki_ingest_drain 的無人值守 runtime(cron drain + Gitea webhook delta)",
|
||
"scripts": { "deploy": "wrangler deploy" },
|
||
"devDependencies": {
|
||
"@cloudflare/workers-types": "^4.20250408.0",
|
||
"typescript": "^5.7.0",
|
||
"wrangler": "^4.0.0"
|
||
}
|
||
}
|