# 2026-06-02 保持后台会话免刷新

## 摘要

修复长时间空闲后点击菜单提示「请 Ctrl+F5 强制刷新」：部署保留 14 天旧前端 chunk；路由懒加载失败时自动 reload 一次。

## 动机

`prune_frontend_assets.py` 在每次部署删除全部未引用 assets，旧标签页懒加载旧哈希 chunk 返回 404，触发 `router.onError` 强刷提示。用户期望不关浏览器即可继续使用。

## 涉及文件

- `deploy/prune_frontend_assets.py` — `--retention-days`（默认 14）
- `frontend/src/router/index.ts` — chunk 失败静默 reload + `afterEach` 清标志
- `docs/design/specs/2026-06-02-keep-session-no-refresh-design.md`

## 迁移 / 重启

- 前端需重新 `vite build` 并部署 `web/app/`
- 更新服务器上 `deploy/prune_frontend_assets.py`（下次 deploy-frontend 自动使用）
- 无需 DB 迁移；后端无需改代码

## 验证

```bash
python deploy/prune_frontend_assets.py --dry-run --retention-days=14
# 应输出 retained_orphans=... would_remove=...

ssh nexus "curl -s -o /dev/null -w '%{http_code}' http://127.0.0.1:8600/app/"
# 预期 200
```

浏览器：登录后闲置，再点击各菜单不应再出现「请 Ctrl+F5」；关浏览器再开仍保持登录（refresh cookie）。
