c76e10d314
#66(三條,斷言的是「session 有沒有被刪掉」而不只是狀態碼) - 傳播空窗(加速器 key 還在)+讀不到 record → 503 auth_store_propagating,**KV 那筆還在** - 非空窗+讀不到 record → 401 擋下,**KV 那筆仍然還在**(刪是清潔工,清掉的卻是唯一憑據) - session 內容本身壞掉 → 401 且**該刪**(那是確定的事實,不是暫時讀不到) ⇒ 前兩條在舊碼上必紅:舊碼在這兩個情況都會 SESSIONS_KV.delete() D62(五條) - 帶 reset_token 呼叫 /portal/password/change:**不必登入、不必現有密碼**; 且「先刪再回」=同一條連結第二次必定 400 reset_token_invalid,KV 裡也真的沒了 - 先「看一眼」票(GET /portal/password/reset)不會消耗它 - 亂猜 / 格式不對的 token → 400 - 沒 reset_token 又沒登入 → 401(修改密碼那一格仍要身分) - 沒設代寄服務 → /portal/password/forgot 誠實 503 mail_relay_not_configured(不假裝寄出去了) 擺放順序有註解說明:#66 那組會故意把 per-isolate overlay 灌成空的(模擬空窗), 而 overlay 是模組級全域變數不隨 test 重置,故必須排在檔案最後。 Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01R8vF2zS2XpaZjzkC75Fjss