20260429_231526-fix: upload field mismatch, WebSocket StrictMode crash, project list refresh after upload

This commit is contained in:
2026-04-29 23:17:09 +08:00
parent 4ec917efe7
commit d7d1e3225f
12 changed files with 260 additions and 10 deletions

View File

@@ -0,0 +1,21 @@
# 需求分析 — 2026-04-28
## 问题背景
用户报告三个活跃 Bug
1. 上传后显示 `undefined`(字段名不匹配)
2. React StrictMode 下 WebSocket 断开报错
3. 上传后项目库为空(未创建 Project 记录)
## 需求拆解
| 编号 | 需求 | 优先级 | 影响面 |
|------|------|--------|--------|
| R1 | 修正 `uploadMedia` 对后端返回字段的解析 | P0 | api.ts |
| R2 | 修正 `uploadMedia` 返回值结构 | P0 | api.ts + 调用方 |
| R3 | 在 upload 成功后自动刷新项目列表 | P0 | ProjectLibrary.tsx |
| R4 | 修复 WebSocket `disconnect()` 在 CONNECTING 状态调用 `.close()` 崩溃 | P0 | websocket.ts |
| R5 | 修复 StrictMode 下 cleanup 函数二次调用导致的竞态 | P1 | Dashboard.tsx + websocket.ts |
## 验收标准
- 上传成功后在控制台打印正确 URL不再出现 `undefined`
- WebSocket 连接/断开循环不再抛出 `InvalidStateError`
- 上传完成后项目列表自动刷新并显示新项目