c24edbbdb6
POST/PUT /credentials 改寫:密文值 PUT 進 CF Workers per-script Secrets (唯寫,D19 不持有內容物),D1 credentials 表只存目錄(不含密文)。 secret_ref = CRED_<NAME>_<sha256(api_key)[:8]>,避免跨租戶撞名。 DELETE/GET /credentials 本次不動(仍走舊 KV,T9 範圍),已誠實標注。 新增 CREDENTIALS_DB D1 binding(與 KBDB base 共用同一顆 arcrun-kbdb, 沿用既有 database_id 注入機制)+ CF_SECRETS_API_TOKEN/CF_ACCOUNT_ID env vars(CF_ACCOUNT_ID 由 deploy.ts 自動注入,同 WORKER_SUBDOMAIN 模式)。 §2.4 選項甲落地:client 不再加密,明文值經 TLS 傳輸,cypher 短暫經手 明文不落地不持金鑰——與舊版 01-tech-stack.md 傳輸格式不同,是本 SDD 對舊格式的刻意取代(§6 Q-b 仍需 leo 明確接受)。 驗證:tsc --noEmit exit 0;vitest 26/27(1 pre-existing 無關失敗)。 端到端:真實部署 leo21c arcrun-cypher-executor,POST/PUT /credentials 成功寫入 Workers Secrets + D1 row(CF API + D1 query 雙重確認), 清理測試資料後 restore wrangler.toml(無帳號專屬 id 殘留 git)。 Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_018D6QoC5waFkcjc2N7csJBB