0100ab2582
Move line-walk/delta/phase2/frontend audits and legacy memory into docs/archive/, add functional development SSOT, thin AGENTS/CLAUDE stubs, and regenerate changelog/audit indexes via consolidate_docs.py.
3.0 KiB
3.0 KiB
BUG 专项逐行走读 — Batch 6(2026-06-04)
标准: docs/project/line-walk-audit-standard.md · 八类仅列 BUG
范围(5 文件,全文 Read)
| 文件 | N | Read |
|---|---|---|
server/api/auth_jwt.py |
275 | 中间件 + _verify_token |
server/application/services/auth_service.py |
refresh / Redis | 196–620 |
server/background/script_execution_flush.py |
46 | 1–46 |
frontend/src/composables/files/useFilesBrowse.ts |
272 | ETag 流程 |
frontend/src/stores/files.ts |
129 | 目录缓存 |
Step 3 规则扫描(BUG 相关)
| 文件 | 命中 |
|---|---|
| auth_service.py | refresh 重用、Redis 故障 |
| auth_jwt.py | token_version、公共路由 |
| script_execution_flush.py | Redis→MySQL 批量 |
| useFilesBrowse.ts | 304 / 本地 TTL 短路 |
| files.ts | etag 与 invalidate |
Closure 表(BUG)
| 文件 | 行号 | 判定 | 严重度 | 理由 |
|---|---|---|---|---|
| auth_service.py | 239-246 | FINDING | P1 | 已轮换 refresh 不在 Redis 时仅 401,不升 token_version,被盗旧 token 与合法新会话可并存 |
| auth_service.py | 597-598 | FINDING | P2 | Redis 异常时 _check_refresh_token 曾返回 False,误拒合法刷新 |
| useFilesBrowse.ts | 187-195 | FINDING | P2 | 5s 内命中本地缓存直接 return,跳过后端 ETag,变更后仍显示旧列表 |
| auth_jwt.py | 217-226 | SAFE | — | tv 与 DB 严格比对 |
| script_execution_flush.py | 19-45 | SAFE | — | flush/stuck 分工清晰;update_status 内 commit |
| files.ts | 85-98 | SAFE | — | invalidateCache 与 mutation 联动 |
FINDING 列表
BUG-06-04-13 · P1 · auth_service refresh 重用
现象:轮换后旧 refresh 重放仅返回 invalid,不注销其他设备。
修复:membership is False → _handle_refresh_token_reuse()(token_version++ + 清空 Redis refresh set)。
BUG-06-04-14 · P2 · auth Redis 不可用
现象:Redis 异常与「令牌不在集合」同为 False。
修复:_refresh_token_membership 返回 Optional[bool];None → service_unavailable。
BUG-06-04-15 · P2 · useFilesBrowse 本地缓存短路
现象:有 fresh 缓存时不发 If-None-Match,服务端失效 ETag 后 UI 仍旧。
修复:缓存仅作乐观展示,始终继续条件请求。
Step 7 统计
auth_service.py 2 FINDING(已修)
useFilesBrowse.ts 1 FINDING(已修)
auth_jwt.py 0
script_execution_flush.py 0
files.ts 0
Step 8 DoD
- 5 文件覆盖
- Closure 全表
- 3 项已修 + pytest
验证
ruff check server/application/services/auth_service.py
pytest tests/test_auth_refresh_reuse.py tests/ -q --tb=no
cd frontend && npm run type-check
Changelog: docs/changelog/2026-06-04-bug-batch6-auth-files-etag.md
下一批 / 收尾
- BUG 专项 Batch 1–6 汇总报告(可选)
- 部署:重启 nexus + 前端构建