video-shuoshan/docs/changelog.md
zyc c1f29cbf85
All checks were successful
Build and Deploy / build-and-deploy (push) Successful in 3m46s
feat: integrate Seedance API key via K8s Secret and auto-create admin user
- CI/CD creates K8s Secret from Gitea Secrets (ARK_API_KEY not in code)
- Backend deployment reads ARK_API_KEY from secretKeyRef
- Enable SEEDANCE_ENABLED=true in production
- Auto-create admin superuser on container startup if not exists
- Update CLAUDE.md and agent-auto memory docs

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-15 00:41:22 +08:00

150 lines
5.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 需求变更日志 (Changelog)
> 按日期倒序记录每次需求变更。每条记录在开发完成、测试验收通过后归档。
---
## 2026-03-13 — 异常上报体系优化 + 轮询策略调整
**状态**: ✅ 已完成 | **验收**: ✅ 通过
### 变更内容
1. **LogCenterMiddleware** — 新增 Django 中间件,捕获 DRF 之外的异常导入错误、中间件异常、URL 解析失败),上报日志中台
2. **custom_exception_handler 优化** — 未处理异常返回 JSON `{'error': '...'}` 而非 HTML 500
3. **轮询间隔调整** — 前端视频生成任务轮询从 5 秒改为 3 分钟Seedance 生成耗时 2-5 分钟)
4. **CLAUDE.md 更新** — 增量开发指南从 "Autonomous Skill" 修正为 "agent-auto"
### 变更文件
| 文件 | 改动 |
|------|------|
| `backend/utils/log_center.py` | 新增 LogCenterMiddleware + 优化 custom_exception_handler |
| `backend/config/settings.py` | MIDDLEWARE 列表首位加入中间件 |
| `web/src/store/generation.ts` | 轮询间隔 5000ms → 180000ms |
| `CLAUDE.md` | 增量开发指南更新 |
### 触发原因
- 线上 `/api/v1/video/tasks` 返回 500日志中台未收到错误上报
- 视频生成轮询过于频繁,增加后端负载
---
## 2026-03-13 — Phase 4: TOS 存储 + Seedance API 集成
**状态**: ✅ 已完成 | **验收**: ✅ 通过
### 变更内容
1. **TOS 文件上传** — 火山引擎 TOSS3 兼容)上传,`POST /api/v1/media/upload`
2. **Seedance API 对接** — 火山方舟 Seedance 视频生成 API异步 create_task + query_task
3. **数据库持久化** — GenerationRecord 新增 ark_task_id、result_url、error_message、reference_urls
4. **前端重写** — generation store 完全重写TOS 上传 → API 调用 → 轮询 → 展示结果
5. **页面刷新持久化**`loadTasks()` 从数据库加载历史任务
### 新增/变更 API
| 端点 | 方法 | 说明 |
|------|------|------|
| `/api/v1/media/upload` | POST | 上传文件到 TOS |
| `/api/v1/video/generate` | POST | 创建 Seedance 任务(改写) |
| `/api/v1/video/tasks` | GET | 用户任务列表(新增) |
| `/api/v1/video/tasks/<uuid>` | GET | 单任务状态轮询(新增) |
### 变更文件
| 文件 | 改动 |
|------|------|
| `backend/utils/tos_client.py` | 新增TOS 上传客户端 |
| `backend/utils/seedance_client.py` | 新增Seedance API 客户端 |
| `backend/config/settings.py` | TOS + ARK 配置 |
| `backend/apps/generation/models.py` | 4 个新字段 |
| `backend/apps/generation/views.py` | 3 个新端点 + 重写 generate |
| `backend/apps/generation/urls.py` | 3 条新路由 |
| `backend/apps/generation/serializers.py` | references 字段 |
| `backend/requirements.txt` | tos>=2.7, requests>=2.31 |
| `web/src/store/generation.ts` | 完全重写 |
| `web/src/types/index.ts` | BackendTask 接口 |
| `web/src/lib/api.ts` | mediaApi + videoApi |
| `web/src/components/VideoGenerationPage.tsx` | loadTasks on mount |
| `web/src/components/GenerationCard.tsx` | 视频播放器 + 错误态 |
---
## 2026-03-13 — 测试隔离 + Mock 数据清理
**状态**: ✅ 已完成 | **验收**: ✅ 通过
### 变更内容
1. **测试 DB 隔离**`TESTING=true` 环境变量切换到 `test_db.sqlite3`Playwright 自动启动测试后端
2. **移除 Mock 数据兜底** — DashboardPage 图表仅显示真实数据,无 mock fallback
### 触发原因
- E2E 测试会污染开发数据库
- Dashboard 应展示真实数据而非虚假 Mock
---
## 2026-03-12 — Phase 3: 秒数计量 + 管理后台重做 + 个人中心
**状态**: ✅ 已完成 | **验收**: ✅ 通过agent-auto 自动测试)
### 变更内容
1. **计量单位变更** — 所有「调用次数」改为「生成秒数」(daily_seconds_limit / monthly_seconds_limit)
2. **管理后台重做** — Sidebar 多页面布局4 个子路由:
- `/admin/dashboard` — 仪表盘 + ECharts 折线图 + 排行柱状图
- `/admin/users` — 用户管理(分页、搜索、配额编辑、启用/禁用)
- `/admin/records` — 消费记录(时间筛选、导出 CSV
- `/admin/settings` — 系统设置 + 公告管理
3. **用户个人中心** (`/profile`) — ECharts 环形进度条 + Sparkline + 消费记录
4. **8 个新 API 端点** — admin: stats/users/users/:id/quota/status/records + profile: overview/records
### 设计规范
- 深色主题Linear/Vercel 风格)
- ECharts + echarts-for-react
- Arco Design 组件库优先
---
## 2026-03-12 — Phase 2: 后端 + 用户认证 + 管理面板
**状态**: ✅ 已完成 | **验收**: ✅ 通过agent-auto 自动测试)
### 变更内容
1. **Django 后端** — Django 4.2 + DRF + MySQL 云数据库
2. **JWT 认证** — SimpleJWT + 前端 Token 自动刷新
3. **用户系统** — 登录 `/login` + 注册 `/register`
4. **管理后台** — 基础仪表盘 + 用户配额管理
5. **9 个新 API 端点** — 认证 4 个 + 管理 3 个 + 已有接口认证 2 个
---
## 2025 — Phase 1: 核心视频生成 UI
**状态**: ✅ 已完成 | **验收**: ✅ 通过92 单元测试 + 14 E2E 测试)
### 变更内容
1. **视频生成页** — 全能参考/首尾帧双模式
2. **InputBar** — contentEditable 富文本 + @ mention
3. **深色主题 UI**`#0a0a0f` 背景 + Arco Design
4. **状态管理** — Zustand store
---
## 模板(新增变更请复制此模板)
```markdown
## YYYY-MM-DD — 变更标题
**状态**: 🔲 开发中 / ✅ 已完成 | **验收**: 🔲 待验收 / ✅ 通过 / ❌ 未通过
### 变更内容
1. ...
### 变更文件
| 文件 | 改动 |
|------|------|
| `path/to/file` | 描述 |
### 触发原因
- ...
### 备注
- ...
```