All checks were successful
Build and Deploy / build-and-deploy (push) Successful in 3m46s
- 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>
5.6 KiB
5.6 KiB
需求变更日志 (Changelog)
按日期倒序记录每次需求变更。每条记录在开发完成、测试验收通过后归档。
2026-03-13 — 异常上报体系优化 + 轮询策略调整
状态: ✅ 已完成 | 验收: ✅ 通过
变更内容
- LogCenterMiddleware — 新增 Django 中间件,捕获 DRF 之外的异常(导入错误、中间件异常、URL 解析失败),上报日志中台
- custom_exception_handler 优化 — 未处理异常返回 JSON
{'error': '...'}而非 HTML 500 - 轮询间隔调整 — 前端视频生成任务轮询从 5 秒改为 3 分钟(Seedance 生成耗时 2-5 分钟)
- 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 集成
状态: ✅ 已完成 | 验收: ✅ 通过
变更内容
- TOS 文件上传 — 火山引擎 TOS(S3 兼容)上传,
POST /api/v1/media/upload - Seedance API 对接 — 火山方舟 Seedance 视频生成 API,异步 create_task + query_task
- 数据库持久化 — GenerationRecord 新增 ark_task_id、result_url、error_message、reference_urls
- 前端重写 — generation store 完全重写:TOS 上传 → API 调用 → 轮询 → 展示结果
- 页面刷新持久化 —
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 数据清理
状态: ✅ 已完成 | 验收: ✅ 通过
变更内容
- 测试 DB 隔离 —
TESTING=true环境变量切换到test_db.sqlite3,Playwright 自动启动测试后端 - 移除 Mock 数据兜底 — DashboardPage 图表仅显示真实数据,无 mock fallback
触发原因
- E2E 测试会污染开发数据库
- Dashboard 应展示真实数据而非虚假 Mock
2026-03-12 — Phase 3: 秒数计量 + 管理后台重做 + 个人中心
状态: ✅ 已完成 | 验收: ✅ 通过(agent-auto 自动测试)
变更内容
- 计量单位变更 — 所有「调用次数」改为「生成秒数」(daily_seconds_limit / monthly_seconds_limit)
- 管理后台重做 — Sidebar 多页面布局,4 个子路由:
/admin/dashboard— 仪表盘 + ECharts 折线图 + 排行柱状图/admin/users— 用户管理(分页、搜索、配额编辑、启用/禁用)/admin/records— 消费记录(时间筛选、导出 CSV)/admin/settings— 系统设置 + 公告管理
- 用户个人中心 (
/profile) — ECharts 环形进度条 + Sparkline + 消费记录 - 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 自动测试)
变更内容
- Django 后端 — Django 4.2 + DRF + MySQL 云数据库
- JWT 认证 — SimpleJWT + 前端 Token 自动刷新
- 用户系统 — 登录
/login+ 注册/register - 管理后台 — 基础仪表盘 + 用户配额管理
- 9 个新 API 端点 — 认证 4 个 + 管理 3 个 + 已有接口认证 2 个
2025 — Phase 1: 核心视频生成 UI
状态: ✅ 已完成 | 验收: ✅ 通过(92 单元测试 + 14 E2E 测试)
变更内容
- 视频生成页 — 全能参考/首尾帧双模式
- InputBar — contentEditable 富文本 + @ mention
- 深色主题 UI —
#0a0a0f背景 + Arco Design - 状态管理 — Zustand store
模板(新增变更请复制此模板)
## YYYY-MM-DD — 变更标题
**状态**: 🔲 开发中 / ✅ 已完成 | **验收**: 🔲 待验收 / ✅ 通过 / ❌ 未通过
### 变更内容
1. ...
### 变更文件
| 文件 | 改动 |
|------|------|
| `path/to/file` | 描述 |
### 触发原因
- ...
### 备注
- ...