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

5.6 KiB
Raw Blame History

需求变更日志 (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.sqlite3Playwright 自动启动测试后端
  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

模板(新增变更请复制此模板)

## YYYY-MM-DD — 变更标题

**状态**: 🔲 开发中 / ✅ 已完成 | **验收**: 🔲 待验收 / ✅ 通过 / ❌ 未通过

### 变更内容
1. ...

### 变更文件
| 文件 | 改动 |
|------|------|
| `path/to/file` | 描述 |

### 触发原因
- ...

### 备注
- ...