Files
Arcrun/registry/examples/km-wiki-ingest/drainer/DEPRECATED.md
T
kbdb-cc c6932b0088 feat(km-wiki-ingest): 重做成跑在 cypher 上的 workflow(走 cypher binding,汰換 service-binding drainer,D28)
把知識庫 ingest 從 standalone drainer(誤用 Service Bindings)重表達為 cypher workflow:

- workflow.yaml(Phase 0 cron drain):watch_cron→load_cursor→list_cards→pick_card(code)
  →fetch_card→parse_card(code)→upsert_entry→save_cursor→post_envelopes→post_one_envelope。
  線性 pipe,跨-worker 全走 cypher binding(零件節點),零 service binding。
- workflow.delta.yaml(Gitea webhook 穩態):collect_changed(code)→foreach card→fetch/parse/upsert/foreach envelope。
- code/kbdb/graph 接法:code=canonical `code` 零件(arcrun-code);kbdb/graph=http_request 零件打
  /entries/ingest、/triplets/ingest(server 端冪等);Gitea=http_request。
- 平台端最小補丁(各需 gated 部署):
  1) cypher-executor component-loader:WASM_HTTP_RUNNER_IDS 加 'code'(canonical→arcrun-code,cypher binding 正解)。
  2) kbdb base:POST /entries/ingest(page_name+content_hash 冪等 upsert,對稱 graph /triplets/ingest;
     因 flow DSL 無資料條件分支,把 create/patch/skip 冪等推到 server 端)。
- drainer/DEPRECATED.md:標舊 standalone worker 退役計畫(新版穩定後 wrangler delete)。
- DEPLOY.md:部署順序、cron/webhook 掛法、subdomain 對齊、驗收與退役。

本輪不部署(待總管/leo 審架構)。

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01HJiLCRUU2o3aSpPEzVCt2o
2026-07-06 12:59:13 +00:00

1.7 KiB
Raw Blame History

DEPRECATED — 此 standalone drainer 架構錯誤(D28),改用 cypher workflow

別部署這個。 arcrun-km-wiki-drainer 是 standalone Worker,對同帳號 worker 用 Service BindingsSVC_CODE/SVC_KBDB/SVC_GRAPH)呼叫 code/kbdb/graph。

leo 拍板(D28):Service Bindings 一般禁用,唯一例外是「零件等級:把幾個 wasm 綁成複合零件」。 工作流/recipe 等級的跨-worker 編排ingest 串 code+kbdb+graph 正是)→ 走 cypher binding =跑成 cypher 上的 workflow。這也是 D27「Arcrun workflow」的本意。

前一 subagent 因 workflow.yaml 當時是 skeleton,就抄捷徑自建這個 standalone worker worker-to-worker 撞 CF 1042 → 又錯用 service binding 補),一步歪步步歪。

正解(本目錄上一層)

  • ../workflow.yamlPhase 0 cron drain)+ ../workflow.delta.yamlGitea webhook 穩態) =跑在 cypher-executor 上的 workflow,全走 cypher binding,零 service binding。
  • 部署見 ../DEPLOY.md

為什麼 standalone 版當初「看起來能動」卻是錯的

  • 它把 1042 歸因成「同帳號 worker-to-worker 必須用 service binding」——。 cypher-executor 靠 global_fetch_strictly_public compat flag 讓 fetch 走公網前門, sibling worker 呼叫本就通;standalone worker 沒這個 flag 才撞牆,而正解是「別自建 standalone worker 把編排交回 cypher」,不是加 service binding。
  • 它還把 URL 寫成 *.leo21c.workers.dev,與 cypher 的 WORKER_SUBDOMAIN=uncle6-me 不一致。

退役步驟

新版全 drain 完 + delta 穩定後:wrangler delete arcrun-km-wiki-drainer,再刪本 drainer/ 目錄。 保留一個週期供逐卡輸出對照。