20c7610371
leo 2026-07-20 明令:「已經改用 cf 自己的 secrets,不要再說它了」 「我希望以後再也看不到這個詞再出現」 背景:credential 早已遷移至 CF Workers per-script Secrets + D1 目錄, 舊的自管金鑰(client 端 AES-GCM + KV 密文 + crypto_decrypt)是遷移期遺留。 本次連根移除,含一併作廢的死 SaaS 碼。 移除: - 舊 KV 密文解密路徑(credential-injector.ts 整檔、dual-read fallback) 前置驗證:leo21c / youlin 兩帳號 CREDENTIALS_KV 實測 *:cred:* 皆 0 筆 - migrate-to-workers-secrets 搬家端點(回填已完成,無可回填) - /register 路由與 generateApiKey(HMAC 產 ak_ key 是 SaaS 遺物; self-hosted 走 namespace 明碼 D21,已無人使用) - platform_crypto component(三帳號實測 404 已退役,無 workflow 引用) 保留(附理由): - crypto_decrypt 保留為永遠回失敗的 stub——現役三個 auth .wasm 仍宣告該 import,缺項會讓 WASM instantiate 直接失敗。待零件重編後可真正刪除。 順帶修復(原不在範圍,但會實際壞事): - /auth/callback 有 `if (!key) redirect(server_error)` 閘,未設該 secret 的 實例會登入直接失敗 → 已移除 - OAuth 兩處把 provider token 寫進舊加密 KV(租戶鍵與實際 api_key 在 rotate 後必然分歧,已失效)→ 改導向 Workers Secrets,包 try/catch 不影響登入 - acr init Standard 模式呼叫已刪除的 /register → 改引導 OAuth 取 key - .claude/rules 與 system-dev/docs 是同一規範的兩份鏡像,先前只改 rules 導致鏡像仍在教舊做法 → 已同步(此類雙檔同步應納入檢查) 新用戶安裝從此零 secret 前置。 測試 187/188(唯一 fail 為 pre-existing,stash 驗證與本次無關); cypher-executor 與 cli typecheck 全綠。 Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2.0 KiB
2.0 KiB
架構決策
桶子索引(容器:只連不重寫)。一決策一卡,自包含 + trade-off。 新決策由 /wiki-capture 寫進本桶並在此 append 一行。 權威全文:
system-dev/docs/2-architecture/decisions/DECISIONS.md;本桶是 AI 改寫過的可檢索版。
零件 / 工作流 / 能力補丁
- 工作流是default零件是例外 — 自用→工作流,全生態重用→才零件;「能包」≠「該包」
- 自力救濟階梯-缺能力怎麼補 — 自家API缺→補API/第三方→workflow補丁/純計算→code-node
- 薄殼原則-能力長在API — CLI/MCP/lib 只暴露,齊的單位是「能力」不是「端點」
- 薄殼規則晚於實作-MCP漂移是歷史債 — 為何 MCP/CLI 不一致:紀律 2026-06-07 才補、補前漂移
- 薄殼防複發-能力對照表加smoke — 防死端點假綠:對照清單 + 本機 smoke(非 CI),自驗能攔
- 零件退役要清三源 — 退役/降級零件清示例+parts.ts+(validate是設計);沒對應 recipe 留 TODO 不硬塞 id(issue #13)
串接 / 部署
- service-binding-vs-cypher-binding — 零件走 HTTP URL,禁新增 service binding
- same-zone-1042用flag解不用binding — self-hosted cypher 加 global_fetch_strictly_public
- R2用途-平台零件不從R2讀 — 平台零件 bundle 進 Worker,R2 只 Phase 5 用戶自製
- self-hosted部署-共享install加指紋跳過 — root 共享 install + manifest content-hash 跳過未變動
- 不依賴CI-執行鏈路vs零件投稿 — 執行鏈路走 local script,零件投稿才走 PR/CI
credential / recipe
- Recipe-UUID市場模型 — canonical+uuid+author 多維身份,per-uuid 市場數據
kbdb
- embedding是base-optional模組 — binding 開才啟用,預設關降級 LIKE,精耕只 embed:true
- 碰舊Mira需求先查頂層覆寫 — mira 蒸發→當普世缺口,先查頂層 mira-dissolve 覆寫
平台目標
- Haiku能驅動是設計目標 — Haiku 過=設計達成;撞牆是介面缺陷訊號非換模型