docs(pending-changes): 提案——認證儲存搬回 D1/KV(撤 D61 的儲存層決定,留其明顯失敗語意)
arcrun-rag#99 止血修法(安裝精靈傳 OAuth token 給 cypher 建第一個帳號)只解一格, 之後的寫入(換密碼/加使用者/存金鑰)仍永久 writable:false,是留債。 查證(讀碼+讀本機重打的 .worker-builds/manifest.json,非猜測):D61 想解的病根 (重裝時 binding 被照名字重新指到新建空資源)已在 2026-08-13 被更通用的 shared/resource-rule(Arcrun#97)解掉——SESSIONS_KV、KBDB 的 D1 都在 cypher 的 requires 清單裡,且 runInstall:1762 每次安裝/更新都會走這條規則。技術前提成立。 提案:認證資料搬回 D1/KV(走 binding,零外部 CF token、零過期、零新 OAuth scope、 零手動步驟),保留 D61 加的三個明顯失敗機制。附影響分析、遷移考量、信心水位 (靜態推論,未動態實測)、D84 三段式驗法(③ uninstall 目前做不到,如實標記)。 ⏸ 等 leo/總管 confirm,本 commit 不動任何架構程式碼。 順手修:writeAuthStore 的錯誤訊息移除誤導的「/ CF_ACCOUNT_ID」(已查證全新實例 一定有這個 var,installer worker.js:1354 無條件注入,列兩項只會讓下一個人白工)。 Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
@@ -215,8 +215,11 @@ export async function writeAuthStore(env: Bindings, data: AuthStoreData, tokenOv
|
||||
// 都不保證成立——安裝/更新從來不會把 CF_SECRETS_API_TOKEN 種成一個常駐的值。
|
||||
// 對一個做不到的動作下指令=把人導向死路(他會以為自己操作錯誤,反覆重試)。
|
||||
// 改成誠實描述現況+給得出去的下一步(回報支援),不再承諾一個我們自己都不確定會生效的動作。
|
||||
// 只列 CF_SECRETS_API_TOKEN:CF_ACCOUNT_ID 已查證全新實例一定有
|
||||
//(installer/oauth-prototype/worker.js:1354 無條件注入每一顆部署的 worker),
|
||||
// 列兩項只會讓下一個人以為兩項都要查,白工一次。
|
||||
throw new AuthStoreWriteError(
|
||||
'這台實例目前寫不進認證儲存(缺可用的 Cloudflare 寫入憑證:CF_SECRETS_API_TOKEN / CF_ACCOUNT_ID)。' +
|
||||
'這台實例目前寫不進認證儲存(缺可用的 Cloudflare 寫入憑證:CF_SECRETS_API_TOKEN)。' +
|
||||
'這是平台端的已知限制,不是你操作錯誤——目前沒有你自己在畫面上能做的下一步,' +
|
||||
'請把這則訊息完整截圖/複製給支援,並註明你剛才在做什麼(例如:安裝精靈裡建立第一個帳號、' +
|
||||
'事後新增使用者、或修改密碼),會需要人工協助排除。',
|
||||
|
||||
Reference in New Issue
Block a user