# Changelog — BUG Batch 6:Refresh 重用 / 文件浏览 ETag(2026-06-04) ## 摘要 补齐刷新令牌重用检测(吊销全部会话)、区分 Redis 故障与无效令牌,并修复文件管理器在本地缓存命中时跳过 ETag 校验的问题。 ## 动机 - 已轮换的 refresh token 被重放时,原逻辑仅返回 401,不提升 `token_version`,无法踢掉攻击者仍有效的新会话。 - Redis 短暂不可用时,合法用户 refresh 被误判为无效令牌。 - 远程目录变更后(含 Batch 5 服务端 ETag 失效),前端 5s 内仍可能只读本地缓存、不发 `If-None-Match`。 ## 变更 | 文件 | 说明 | |------|------| | `server/application/services/auth_service.py` | `_refresh_token_membership`、`_handle_refresh_token_reuse` | | `frontend/src/composables/files/useFilesBrowse.ts` | 缓存仅乐观展示,始终条件 GET | | `tests/test_auth_refresh_reuse.py` | 重用检测与 Redis 不可用单测 | | `docs/reports/audit-bug-line-walk-2026-06-04-batch6.md` | BUG Batch 6 报告 | ## 迁移 / 重启 - 需重启 `nexus`;前端需重新构建部署。 ## 验证 ```bash ruff check server/application/services/auth_service.py pytest tests/test_auth_refresh_reuse.py tests/ -q cd frontend && npm run type-check ``` ## 关联 - Batch 5:`docs/changelog/2026-06-04-bug-batch5-agent-etag.md`