feat(arcrun): http_request body_json + error heuristic; mira feed fire-and-forget

http_request 零件擴展(registry/components/http_request):
- 加 body_json 物件欄位(內部 JSON.stringify),yaml 端不用手組 JSON 字串
- 新增 JSON 回應的 error 欄位偵測 → 若 body 含 `{"error":"..."}` 則零件回 success=false
  解 cascade bug:mira_feed_watcher 用 http_request trigger wiki_synthesis,
  原本 4xx response 也被當 success,ON_SUCCESS 鏈會誤觸發
  根因架構債:host fn 沒回 HTTP status code(arcrun.md 列為 P1 follow-up)

landing 河道 feed (landing/app/mira/feed/page.tsx):
- 加回 triggerWikiSynthesis fire-and-forget 對 cypher.arcrun.dev/webhooks/named/
  wiki_synthesis/trigger 公開觸發 endpoint(arcrun-native,非 mira-specific route)
- 不走 watcher 是因為 cypher-executor 自己 fetch 自己 workers.dev URL = CF 1042
  self-fetch 擋

watcher 仍存在當 cron backup,但目前因 self-fetch 1042 不會真正觸發下游
wiki_synthesis(arcrun.md 列為 P1 follow-up)。
This commit is contained in:
2026-05-14 16:06:46 +08:00
parent 8ab6f8a66b
commit bc6360ccfc
3 changed files with 65 additions and 8 deletions
@@ -31,7 +31,11 @@ input_schema:
additionalProperties:
type: string
body:
description: 請求 body(任意 JSON
type: string
description: 模式 A — body 字串(自行 stringify 後傳)
body_json:
type: object
description: 模式 B — body 物件,零件內部 JSON.stringifyyaml 端不用手組字串)
output_schema:
type: object
properties: