Files
xiaoxia-saas/docs/PHASE7-PROGRESS.md
T
Xiaoxia AI ebb141994f
CI/CD Pipeline / Validate Code Quality And Tests (push) Successful in 58s
Deploy / Deploy Staging (push) Successful in 1m3s
Deploy / Deploy Production (push) Has been skipped
docs(phase7): record real ffmpeg closure
2026-06-21 00:02:23 +08:00

6.5 KiB
Raw Blame History

PHASE7-PROGRESS.md

Phase: Phase 7 - 核心视频剪辑业务 状态: 已完成(P0/P1/CI-CD/真实 FFmpeg 生成已生产验证闭环) 最后更新: 2026-06-21 00:01 GMT+8


一、Phase 目标

根据 F:\openclaw-saas\docs\PHASE7-DESIGN.mdPhase 7 的目标是打通从:

  • 上传素材
  • 素材分类
  • 发起生成
  • 查看并下载成片

即完成 SaaS MVP 的核心视频剪辑主链路。


二、已完成交付清单

1. 核心业务能力

  • 素材管理:上传、分类、查询、标签管理
  • 视频生成:任务创建、自动触发 worker、真实 FFmpeg 生成、生成结果管理
  • 成片下载:公网 video/mp4 成片 URL、规范化存储路径、宿主持久化
  • 前端联调:生成页、结果页已接入并验证

2. 基础设施完善

  • 完整工业化开发体系文档已建立
  • 8 Agent 角色体系已定义
  • Git 工作流规范已确定并执行
  • Gitea Runner 已运行并通过真实任务验证
  • CI/CD 流水线已稳定(.gitea/workflows/ci-cd.yml
  • Staging 自动部署已验证成功
  • Production tag 发布门禁已验证为非 tag 正常跳过
  • 开发环境防跑偏收敛方案已建立
  • 启动链文档已修正到新标准

3. 技术债务清理

  • 代码 TODO 全部处理完成(session_id in JWT, repository injection
  • CI/CD 稳定性专项完成并合并
  • 领域模型收口完成
  • Repository 注入改为真实实现
  • 前端类型检查和构建链恢复

4. 测试验证

  • tests/integration/test_asset_tags.py 通过
  • tests/integration/test_ingest_pipeline.py 通过
  • tests/integration/test_upload_pipeline.py 通过
  • tests/integration/test_classification_pipeline.py 通过
  • tests/integration/test_projects.py 通过
  • tests/integration/test_generation_pipeline.py 通过
  • 前端 type-check 通过
  • 前端 build 通过
  • 真实 P1 smoke flow 通过:注册、登录、项目、素材库、上传、生成任务、成片结果
  • 真实 FFmpeg smoke flow 通过:running → completedresult_count=1、生成 5 秒 MP4
  • 公网成片下载验证通过:HTTP 200Content-Type: video/mp4、MP4 文件头包含 ftypisom
  • 公网 /health 返回 200,服务版本 0.1.0

三、生产验证闭环(2026-06-20)

1. P0 部署链路

  • split infrastructure 部署脚本已收口:infra.yml 管 Postgres/Rediscompose.yml 管 API/Worker/Web
  • bugfix/deploy-split-infra-ci 已合并到 develop
  • Staging 自动部署验证成功:Gitea Runner task 528task 532task 535
  • 非 tag push 下 Production 部署按规则跳过:task 529task 533task 536
  • 当前公网健康地址为 /health/api/v1/health 返回 404 属于预期

2. P1 业务主链路

  • 修复 worker 未注册 worker.generate_video 导致生成任务卡在 pending 的问题
  • bugfix/worker-generate-video-task 已合并到 develop
  • worker.generate_video 已从 generated://... 最小基线升级为真实 FFmpeg 生成
  • 真实 P1 smoke flow 已验证 GenerationTaskcompletedprogress=100.0result_count=1

3. 真实 FFmpeg 生成闭环

  • feature/real-ffmpeg-generation 已合并到 develop
  • Worker 使用 FFmpeg 生成真实 MP4 文件:5 秒、1280x720、25fps
  • 无 OSS 配置时回退到本地 generated 文件持久化,不再因 OSS_ACCESS_KEY_ID 缺失失败
  • Nginx 已暴露 /generated-files/ 静态路径,避免成片 URL 命中前端 HTML 假 200
  • Docker generated 文件卷已绑定到宿主机 /var/lib/xiaoxia-saas-staging/generated
  • 真实 smoke 验证结果:公网 URL 返回 HTTP 200Content-Type: video/mp4、文件头包含 ftypisom

4. CI 根治优化

  • 诊断出 CI 慢根因:服务器到 PyPI 下载慢,mypy==2.1.0 大 wheel 造成 20+ 分钟等待
  • 新增预构建校验镜像 xiaoxia-ci-python:3.12
  • .gitea/workflows/ci-cd.yml.github/workflows/ci-cd.yml 已同步使用预构建镜像
  • chore/ci-prebuilt-python-image 已合并到 developmerge commit ba06c95
  • Gitea Runner task 534 已在真实 CI 环境验证使用 xiaoxia-ci-python:3.12
  • CI 校验阶段从 20+ 分钟降到约 57 秒

四、遗留后续专项

以下问题不阻塞 Phase 7 完成,已纳入后续专项治理清单:

  1. 数据库字段重命名(当前通过映射兼容)
  2. 测试覆盖率提升
  3. 监控告警体系完善
  4. 前端构建优化
  5. OpenClaw 子 Agent runtime 修复(当前暂停使用)

参考文档:docs/SaaS-后续专项整治清单-2026-06-18.md


五、执行策略总结

Phase 7 执行过程中的关键决策:

  • 暂停 Agent 实跑OpenClaw runtime 存在 continuation 问题,但不阻塞主线开发
  • 保留全部开发规范:文档链、Git/CI/环境规则、质量门禁全部保持运作
  • 主会话直接推进:在保持规范的前提下,由主会话直接完成开发
  • CI/CD 专项独立:发现的 CI 问题单独立项修复,不混入业务提交

六、验证清单

如果新会话启动后问:

  1. 当前 Phase 是什么?

    • 答:Phase 7 已完成
  2. Phase 7 交付了什么?

    • 答:核心视频剪辑主链路(上传→分类→生成→下载),CI/CD 稳定性修复,代码 TODO 清理
  3. 下一步做什么?

    • 答:Phase 7 已收口;下一步进入 Phase 8/运营后台/监控告警/测试覆盖率等后续专项规划(参考 docs/SaaS-后续专项整治清单-2026-06-18.md
  4. 当前进度文档路径是什么?

    • 答:F:\openclaw-saas\docs\PHASE7-PROGRESS.md

七、完成总结

Phase 7 已全部完成,核心视频剪辑业务主链路、P0 部署链路、P1 真实 smoke flow、CI/CD 自动化主链路、真实 FFmpeg 生成与公网成片下载均已打通并验证通过。

关键成果

  • SaaS MVP 核心功能可用
  • CI/CD 从不稳定收敛为可靠基础设施
  • 代码质量债务清理完成
  • 开发规范和文档体系建立完善

技术实现

  • 领域模型:Asset / AssetLibrary / ClassificationJob / GenerationTask / GeneratedVideo
  • 应用层:完整的 use case 和 repository 接口
  • 基础设施:SQLAlchemy 持久化、Celery worker、MinIO 存储、预签名 URL
  • 前端:React + TypeScript,生成页和结果页联调完成

Phase 7 正式收口,可以进入下一阶段规划。