From ca1ed2aaf6525df247e8bbac5277bb77dc78ba6b Mon Sep 17 00:00:00 2001 From: uncle6me-web Date: Fri, 14 Aug 2026 11:56:59 +0800 Subject: [PATCH] =?UTF-8?q?fix(auth):=20=E9=8C=AF=E8=AA=A4=E8=A8=8A?= =?UTF-8?q?=E6=81=AF=E4=B8=8D=E5=86=8D=E5=8F=AB=E7=94=A8=E6=88=B6=E5=81=9A?= =?UTF-8?q?=E5=81=9A=E4=B8=8D=E5=88=B0=E7=9A=84=E4=BA=8B=EF=BC=88arcrun-ra?= =?UTF-8?q?g#99=EF=BC=8Cleo=20=E5=82=B3=E5=AF=A6=E6=B8=AC=E7=95=AB?= =?UTF-8?q?=E9=9D=A2=E9=BB=9E=E7=A0=B4=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit leo 傳了封測者實際看到的畫面:撞牆訊息叫他「重新執行安裝/更新讓它就緒」, 但安裝/更新從來不會把 CF_SECRETS_API_TOKEN 種成一個常駐的值——這句話在 訊息會出現的所有情況下都不保證成立(尤其是安裝精靈本身之外的路徑,如事後 新增使用者、改密碼)。使用者照做 → 回到同一畫面 → 以為是自己操作錯誤 → 無限迴圈。這比「訊息不夠白話」嚴重一個級數:不是難懂,是死路。 改:不再承諾一個我們自己都不確定會生效的動作,改成誠實描述現況+給得出去 的下一步(回報支援並附上下情境)。訊息集中在 writeAuthStore 單一出處, console-auth.ts/portal.ts 的 502 回應共用同一份文字,不會各說各話。 測試:全套 vitest 443/457(14 個既存失敗與本檔無關,已用 git stash 對照 clean checkout 確認);tsc --noEmit 無新增錯誤。 Co-Authored-By: Claude Opus 5 --- cypher-executor/src/lib/portal-auth-store.ts | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/cypher-executor/src/lib/portal-auth-store.ts b/cypher-executor/src/lib/portal-auth-store.ts index 70ee20e..84b13f1 100644 --- a/cypher-executor/src/lib/portal-auth-store.ts +++ b/cypher-executor/src/lib/portal-auth-store.ts @@ -210,9 +210,16 @@ export function newAuthUserId(): string { */ export async function writeAuthStore(env: Bindings, data: AuthStoreData, tokenOverride?: string): Promise { if (!authStoreWritable(env, tokenOverride)) { + // arcrun-rag#99(2026-08-14,leo 傳實測畫面點破):舊文案叫用戶「重新執行安裝/更新」, + // 但在這個訊息會出現的所有情況下(包含安裝精靈本身,若它沒能把 install token 帶到)那句話 + // 都不保證成立——安裝/更新從來不會把 CF_SECRETS_API_TOKEN 種成一個常駐的值。 + // 對一個做不到的動作下指令=把人導向死路(他會以為自己操作錯誤,反覆重試)。 + // 改成誠實描述現況+給得出去的下一步(回報支援),不再承諾一個我們自己都不確定會生效的動作。 throw new AuthStoreWriteError( - '這台實例還不能寫入認證儲存(缺 CF_SECRETS_API_TOKEN / CF_ACCOUNT_ID)。' + - '認證分離需要這兩項才寫得進 Workers Secrets——請重新執行安裝/更新讓它就緒。', + '這台實例目前寫不進認證儲存(缺可用的 Cloudflare 寫入憑證:CF_SECRETS_API_TOKEN / CF_ACCOUNT_ID)。' + + '這是平台端的已知限制,不是你操作錯誤——目前沒有你自己在畫面上能做的下一步,' + + '請把這則訊息完整截圖/複製給支援,並註明你剛才在做什麼(例如:安裝精靈裡建立第一個帳號、' + + '事後新增使用者、或修改密碼),會需要人工協助排除。', ); }