docs: 交叉检查修复文档疏漏与不一致

- 修复 api.md 修改密码接口混入注册场景的 409 错误
- 补充 api.md WebSocket 示例缺失的 quality_supervisor running 消息
- 补充 api.md 注册接口格式校验错误响应、缓存接口详细说明
- 补充 frontend.md Task 接口缺失的 error 字段
- 补充 frontend.md 错误处理章节(API 错误、WebSocket 断连、加载状态)
- frontend.md 风格键表改为引用 style-keys.md,消除重复
- async-tasks.md 去重/文件存储改为引用 database.md,消除重复
- backend.md ER 图改为引用 database.md,消除重复
- 补充 backend.md 目录结构中缺失的 auth/project handler 和 user model
- 补充 backend.md 缓存层设计说明
- 补充 database.md GEN2D_SERVER_PORT 环境变量和迁移文件归属说明
- 补充 multi-agent-pipeline.md 到 backend.md 和 async-tasks.md 的交叉引用
- 补充 async-tasks.md 超时控制说明
This commit is contained in:
2026-05-24 10:47:00 +08:00
parent 5a6bcaffaf
commit f4c1a10403
6 changed files with 102 additions and 37 deletions
+23 -10
View File
@@ -136,6 +136,27 @@ sequenceDiagram
API-->>SP: 保存成功
```
## 错误处理
### API 请求错误
- `api/client.ts` 统一拦截 `code !== 0` 的响应,抛出业务异常
- 401:自动清除本地 Token,跳转到登录页(或提示重新登录)
- 403:提示无权访问,不自动跳转
- 429:提示请求过于频繁,稍后重试
- 500:展示通用错误提示
### WebSocket 断连
- 连接断开后自动重连(指数退避,最大间隔 10 秒)
- 重连失败超过 3 次后,降级为轮询模式(`GET /api/v1/tasks/:taskId`,间隔 2-3 秒)
- 连接恢复后自动切回 WebSocket
### 加载状态
- 页面级加载(如 ProjectPage 进入时):展示骨架屏或 Loading 指示器
- 操作级提交(如保存风格、提交生成):按钮置为 loading 态,防止重复提交
## 状态管理
### zustand stores
@@ -248,6 +269,7 @@ interface Task {
stage?: PipelineStage;
progress?: number;
retryCount?: number;
error?: string | null;
createdAt: string;
updatedAt: string;
}
@@ -281,16 +303,7 @@ interface PipelineProgress {
## 预设风格键分类
前端 StyleSelector 以分类标签组织,用户点选:
| 分类 | 键名 | 可选值 |
|------|------|--------|
| 美术风格 | `artStyle` | pixel, cartoon, hand-drawn, vector, flat |
| 色调 | `palette` | warm, cool, neutral, vibrant, muted, monochrome |
| 线条 | `lineWeight` | none, thin, medium, thick |
| 场景 | `scene` | forest, dungeon, city, space, underwater, desert |
| 光照 | `lighting` | bright, dim, dramatic, ambient, neon |
| 情绪 | `mood` | cheerful, dark, mysterious, epic, calm |
前端 StyleSelector 以分类标签组织,完整键值表见 [预设风格键](style-keys.md)。
StyleSelector 两种使用场景:
1. **工程风格**(ProjectPage):全量编辑,保存到后端