# 需求分析 — 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`
- 上传完成后项目列表自动刷新并显示新项目
