session-keepalive
=== S · Pubsite/sessionKeepalive 与 SESSION_EXPIRE ===
PASS S1 匿名 → 401
PASS S2 GET → 405(只收 POST)
PASS S3 登录后拿到 PHPSESSID
PASS S4 有登录态 → 204
PASS S5 夹具:session 文件 mtime 已拨到 30 分钟前(差 1800s)
PASS 🔴 S6 空闲 30 分钟仍是登录态(旧上限 1440 秒这里会 401)
PASS 🔴 S7 保活把 mtime 刷新到刚才(差 0s)—— 续命真的发生了
PASS 🔴 S8 守卫:空闲 5 小时 → 401(上限没有被改成永不过期)
=== K · 编辑器里每 10 分钟保活,401 挂横幅,重新登录后撤掉 ===
PASS K0 父页面给出了 AlbumMaker 地址
PASS K1 keepalive 模块已装载
PASS 🔴 K2 推进 10 分钟:保活请求发出且 204
PASS 🔴 K3 session 文件 mtime 被刷新(编辑器空闲也不会掉登录)
PASS K4 此时没有横幅
PASS 🔴 K5 会话没了:保活 401
PASS 🔴 K6 横幅出现
PASS K7 横幅文案说明「登录已失效」
PASS K8 页面标记 __jncSessionLost=true(save.js 据此说人话)
PASS 🔴 K9 重新登录后保活 204
PASS 🔴 K10 横幅撤掉
=== G · 保活不是保存 ===
PASS 🔴 G1 xml_map 版本数不变(1)
PASS 20 FAIL 0