fix(drainer): 同帳號 worker-to-worker 改走 Service Bindings(修 CF 1042)
Production bug(本地 miniflare 未抓到、真端點才爆):部署後 drainer 對同帳號
arcrun-code/arcrun-kbdb/kbdb-graph-plugin 做 fetch("https://*.leo21c.workers.dev")
→ CF 1042(同帳號 worker 互打限制),被 error handler 包成 "not valid JSON"。
修法=比照 cypher-executor(wrangler.toml [[services]] 綁零件):
- wrangler.toml 加 [[services]] SVC_CODE→arcrun-code / SVC_KBDB→arcrun-kbdb /
SVC_GRAPH→kbdb-graph-plugin;移除 CODE_WORKER_URL/KBDB_URL/GRAPH_URL vars。
- index.ts:所有 code/kbdb/graph 呼叫改 env.SVC_X.fetch()(svc() 輔助);Gitea
(git.uncle6.me,非 CF)維持 plain fetch。
驗收(強制對部署後真端點、禁 miniflare):POST /drain?batch=2 回真 JSON、notes 3 卡
冪等全 skip、無 1042;游標前進+回捲;加測試卡→真端點 /webhook 只寫該 delta(entry
create 進 live KBDB)→三模式 curl 命中(含 Arcrun#11 修後語意 owner+type 過濾生效)→
測試卡清除。deploy version 95562b3e。
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01HJiLCRUU2o3aSpPEzVCt2o
This commit is contained in:
@@ -57,10 +57,13 @@ printf '%s' "$GITEA_TOKEN" | npx wrangler secret put GITEA_TOKEN
|
||||
- Secret:若設,同步 `GITEA_WEBHOOK_SECRET` secret(本 Worker 驗 `X-Gitea-Signature` HMAC-SHA256)
|
||||
- Gitea 的 ping event → Worker 回 `{ok:true,pong:true}`(測連通)
|
||||
|
||||
## config(wrangler.toml [vars])
|
||||
## config
|
||||
|
||||
`REPO=Leo/notes REF=main OWNER=leo CARDS_ROOT=system-dev/wiki/cards BATCH_SIZE=2`
|
||||
`CODE_WORKER_URL / KBDB_URL / GRAPH_URL / GRAPH_KEY`(皆 leo21c live 服務)。
|
||||
- **vars**:`REPO=Leo/notes REF=main OWNER=leo CARDS_ROOT=system-dev/wiki/cards GRAPH_KEY=leo BATCH_SIZE=2`
|
||||
- **Service Bindings(`[[services]]`)**:`SVC_CODE→arcrun-code`、`SVC_KBDB→arcrun-kbdb`、`SVC_GRAPH→kbdb-graph-plugin`。
|
||||
⚠️ 同帳號 worker-to-worker **必須走 Service Binding**(`env.SVC_X.fetch()`)——直接 `fetch("https://arcrun-*.leo21c.workers.dev")`
|
||||
會撞 **CF 1042**(同帳號 worker 互打限制)。Gitea(`git.uncle6.me`,非 CF)才用 plain `fetch`。
|
||||
註:`wrangler dev` 本地 miniflare **不強制** 1042,故本地測會假綠 → 一律對部署後真端點驗收。
|
||||
|
||||
## 規模備註(5,083 檔)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user