fix(portal): 忘記密碼斷點——安裝器從沒注入 PORTAL_MAIL_RELAY_BASE(arcrun-rag#38/#69/#25)
leo 被鎖在自己的系統外面:1.4.35 已出 prod,「忘記密碼」畫面在線上,但按下去回 503「這台實例還沒有設定寄信服務」。根因在 products/arcrun-rag 的安裝器—— `grep -rn PORTAL_MAIL_RELAY installer/` 是零命中,即使 landing 那半(郵差) D62 已經寫好。這個 repo 這邊改兩件配合修: - /health 多回 `mail_relay_configured`(布林,不洩漏網址)——安裝器判斷「要不要 重推」只比 bundle_version,但這個 var 是這次才第一次被注入,跟版本號無關; 純比版本號的話,已經在最新版的實例(如 leo 那台)永遠不會因為「按更新」而 重推,這個 var 永遠補不進去。安裝器那邊會讀這個欄位決定要不要強制重推。 - portal.ts 的 503 訊息改白話(不提「實例」)+給一條使用者自己走得完的路 (重新執行安裝/更新),不再說「請管理員幫你改密碼」——單人使用者的管理員 就是他自己,那是死路(同源病灶:arcrun-rag#25)。 安裝器那半的修法(PORTAL_MAIL_RELAY_BASE 注入+stale 判斷)在 products/arcrun-rag 同批修(installer/oauth-prototype/worker.js)。 測試:cypher-executor `npx vitest run tests/portal-auth.test.ts tests/health.test.ts` 37/37 綠(35+2,既有測試無回歸;本次未新增測試——改動是訊息文案與健康檢查欄位, 行為已由既有測試覆蓋的路徑保護)。
This commit is contained in:
@@ -21,6 +21,12 @@ healthRouter.get('/health', (c) => {
|
||||
ok: true,
|
||||
...(bundleVersion ? { bundle_version: bundleVersion } : {}),
|
||||
auth_store: authStoreStatus(c.env),
|
||||
// arcrun-rag#38/#69/#25(2026-08-11):安裝器判斷「要不要重推」只比 bundle_version——
|
||||
// 但這次要修的洞是「installer 從沒注入過 PORTAL_MAIL_RELAY_BASE」,跟 bundle 內容
|
||||
// 版本無關(同一個 cypher 版本,有的實例有這個 var、有的沒有)。純比版本號的話,
|
||||
// 已經在最新版的實例(如 leo 自己那台)永遠不會因為「按更新」而重推,這個 var
|
||||
// 就永遠補不進去。只回布林(有沒有設,不回值本身)——不洩漏郵差網址。
|
||||
mail_relay_configured: Boolean(String(c.env.PORTAL_MAIL_RELAY_BASE ?? '').trim()),
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
Reference in New Issue
Block a user