3.5 KiB
3.5 KiB
user-system review 修复收口(2026-05-28)
结论
本轮已完成 review 报告相关最高优先级前端/E2E blocker 修复,并完成后端、前端、E2E 三层验证。
当前状态:
- 最高优先级 blocker:已修复
- Go 全量测试:通过
- 前端全量测试:通过(82 files, 522 tests)
- Playwright CDP 全链路 E2E:通过
本轮修复项
1. 会话恢复 / refresh 竞态
- 问题:
AuthProvider初始恢复会话与 HTTP client 401 重试路径会并发触发/auth/refresh,在 refresh token 轮换模型下导致401。 - 修复:前端改为共享 single-flight refresh。
- 涉及文件:
frontend/admin/src/lib/http/client.tsfrontend/admin/src/services/auth.tsfrontend/admin/src/services/auth.test.ts
2. 用户列表响应结构漂移
- 问题:后端
/users返回{ users, total, limit, offset },前端只按items读取,导致页面空表。 - 修复:增加 users 列表 normalize,兼容
items/users和page_size/limit/offset。 - 涉及文件:
frontend/admin/src/services/users.tsfrontend/admin/src/services/users.test.ts
3. Webhooks 列表响应结构漂移
- 问题:Webhooks 页加载时报
Cannot read properties of undefined (reading 'map')。 - 修复:兼容
data/items/webhooks多种列表包裹形状。 - 涉及文件:
frontend/admin/src/services/webhooks.tsfrontend/admin/src/services/webhooks.test.ts
4. Social accounts 响应结构漂移
- 问题:ProfileSecurityPage 报
socialAccounts.map is not a function。 - 修复:兼容
array/items/accounts/social_accounts形状。 - 涉及文件:
frontend/admin/src/services/social-accounts.tsfrontend/admin/src/services/social-accounts.test.ts
5. Playwright CDP E2E harness 漂移
- 修复点包括:
- refresh token 断言从可读 cookie 改为 HttpOnly cookie / session presence 真相
创建用员文案 typo- responsive 场景后 viewport 未恢复
- drawer 选择器 strict mode 冲突
- delete confirm 由 modal 漂移为 popconfirm
- 菜单分组/路由漂移:设备、审计日志、Webhooks、profile/security
- 多处页面断言从宽文本改为更稳定选择器
- 涉及文件:
frontend/admin/scripts/run-playwright-cdp-e2e.mjsfrontend/admin/scripts/run-playwright-auth-e2e.sh
6. E2E 限流误伤
- 问题:测试流量触发 API rate limit,导致后续场景误报。
- 修复:为 E2E backend 增加
DISABLE_RATE_LIMIT=1开关,仅用于测试启动脚本。 - 涉及文件:
internal/api/middleware/ratelimit.gofrontend/admin/scripts/run-playwright-auth-e2e.sh
验证结果
后端
- 命令:
go test ./... - 结果:通过
前端
- 命令:
npm test -- --runInBand - 结果:通过
- 统计:
82 passed,522 passed
E2E
- 命令:
npm run e2e:full - 结果:通过
- 结论:
Playwright CDP E2E completed successfully
闭环判断
实现闭环
已完成。本轮识别出的真实 blocker 均已修复。
证据闭环
已完成。Go 全量测试、前端全量测试、CDP E2E 全部通过。
文档真相闭环
已完成。本文件记录了问题、修复、验证与当前结论。
防复发闭环
已部分完成:
- 已为 users/webhooks/social-accounts 响应结构漂移补 service-level normalize + tests
- 已把 refresh 单飞与 E2E harness 漂移修复固化
- 后续建议:把 E2E 页面导航/断言进一步抽象为页面对象或稳定 helper,减少文案/菜单变动带来的连锁断言漂移