272 lines
9.5 KiB
Markdown
272 lines
9.5 KiB
Markdown
# 当前发布面清单
|
||
|
||
最后更新:2026-06-23
|
||
生产基线:`v0.1.50`
|
||
公网 Web:`https://saas.xiaoxiajianji.com/`
|
||
公网 API:`https://saas-api.xiaoxiajianji.com/`
|
||
|
||
---
|
||
|
||
## 1. 当前定位
|
||
|
||
当前 SaaS 版是视频处理/自动生成 MVP,已打通:
|
||
|
||
登录 → 工作空间 → 项目 → 素材库 → 上传素材 → 素材诊断 → 标题库 → 剪辑计划预览 → 确认生成真实 MP4 → 任务中心追踪 → 成片中心复核/预览/下载。
|
||
|
||
当前版本不是完整智能自动剪辑平台。旧版桌面软件中的模板编排、ASR/TTS/BGM/转场等能力,已进入后续升级路线,但不属于当前已开放能力。
|
||
|
||
---
|
||
|
||
## 2. 已开放并已验证
|
||
|
||
### 2.1 账号与认证
|
||
|
||
- 用户注册。
|
||
- 用户登录。
|
||
- 获取当前用户 `/auth/me`。
|
||
- 401 时清理前端过期登录态。
|
||
- 刷新/直接进入受保护页面时校验本地 token。
|
||
|
||
生产验证:
|
||
|
||
- `public_auth_flow=ok`
|
||
|
||
### 2.2 工作空间
|
||
|
||
- 创建工作空间。
|
||
- 查询工作空间列表。
|
||
- 进入工作空间详情。
|
||
- 工作空间成员基础权限校验。
|
||
|
||
生产验证:
|
||
|
||
- 公网 auth smoke 中 `/workspaces` 返回 200。
|
||
|
||
### 2.3 项目
|
||
|
||
- 创建项目。
|
||
- 查询项目。
|
||
- 通过项目详情恢复 workspace 上下文。
|
||
- 进入项目素材页、生成页、结果页。
|
||
|
||
生产验证:
|
||
|
||
- 项目详情 smoke 已通过。
|
||
- 直接 URL/刷新后的项目上下文恢复已修复并发布。
|
||
|
||
### 2.4 素材与素材库
|
||
|
||
- 创建项目级素材库。
|
||
- 上传单个素材。
|
||
- 批量上传素材。
|
||
- 上传后创建 ingest job。
|
||
- 查询 ingest job 状态。
|
||
- 素材上传会校验 workspace/project/library 归属关系。
|
||
|
||
生产验证:
|
||
|
||
- `public_upload_flow=ok`
|
||
- `public_batch_upload_flow=ok`
|
||
|
||
### 2.5 标题库
|
||
|
||
- 项目级标题库。
|
||
- 新增、启用/停用、常用标记。
|
||
- 搜索和分类筛选。
|
||
- 生成页可手选标题。
|
||
- 未手选时自动优先选择常用且低使用次数标题。
|
||
- 生成成功后回写标题使用次数。
|
||
|
||
生产验证:
|
||
|
||
- 浏览器 E2E `core-titles.spec.ts` 通过。
|
||
- 浏览器 E2E `core-generation.spec.ts` 验证标题选择和使用次数回写。
|
||
|
||
### 2.6 视频生成
|
||
|
||
- 创建生成任务。
|
||
- Worker 异步执行生成。
|
||
- 轮询生成任务状态。
|
||
- 生成真实 MP4。
|
||
- 生成失败提示已初步人话化。
|
||
- Worker 生产默认并发限制为 1,降低小机器 FFmpeg 并发风险。
|
||
|
||
生产验证:
|
||
|
||
- `public_generation_flow=ok`
|
||
|
||
### 2.7 成片中心
|
||
|
||
- 成片列表。
|
||
- 生成参数记录:素材库、标题、输出参数。
|
||
- 成片预览入口:暂无封面时使用成片文件预览。
|
||
- 签名下载。
|
||
- 批量获取下载地址。
|
||
- 复核状态:待复核、可发布、需返工。
|
||
|
||
生产验证:
|
||
|
||
- 浏览器 E2E `core-generation.spec.ts` 验证成片列表、预览入口、复核状态、生成参数、签名下载。
|
||
|
||
### 2.8 任务中心
|
||
|
||
- 项目级统一任务列表。
|
||
- 支持素材导入任务和视频生成任务。
|
||
- 展示任务类型、状态、进度、当前步骤、原始错误和用户可读错误。
|
||
- 失败任务可重新排队重试。
|
||
- 任务中心按项目 workspace 成员权限隔离。
|
||
|
||
生产验证:
|
||
|
||
- 浏览器 E2E `core-generation.spec.ts` 验证生成任务进入任务中心并显示完成状态。
|
||
|
||
### 2.9 模板与剪辑计划
|
||
|
||
- 项目级基础节奏模板。
|
||
- EditPlan 和 EditPlanClip 数据模型。
|
||
- 按素材状态和质量分自动选片。
|
||
- 生成页先展示剪辑计划预览。
|
||
- 用户确认剪辑计划后再发起生成。
|
||
- 生成任务和成片参数绑定 `edit_plan_id`。
|
||
- 剪辑计划按项目 workspace 成员权限隔离。
|
||
|
||
生产验证:
|
||
|
||
- 浏览器 E2E `core-generation.spec.ts` 验证剪辑计划预览、确认生成、成片参数回写 `edit_plan_id`。
|
||
|
||
### 2.10 权限边界
|
||
|
||
当前已验证:
|
||
|
||
- 匿名访问 `/auth/me` 返回 401。
|
||
- 匿名访问工作空间返回 401。
|
||
- 匿名访问项目详情返回 401。
|
||
- 非成员访问他人项目返回 403。
|
||
- 非成员访问他人素材库返回 404。
|
||
- 非成员上传到他人项目/素材库返回 403。
|
||
- 匿名访问素材列表返回 401。
|
||
- 非成员访问他人素材列表返回 403。
|
||
- 匿名访问生成任务返回 401。
|
||
- 非成员访问他人生成任务返回 403。
|
||
- 非成员访问他人生成结果返回 403。
|
||
- 非成员访问他人成片详情/下载 URL 返回 403 或 404。
|
||
|
||
生产验证:
|
||
|
||
- `public_boundary_flow=ok`,覆盖 project、asset-library、assets、upload、generation task、generation results、generated video download 边界。
|
||
|
||
### 2.9 生产发布与监控
|
||
|
||
- 生产发布使用 tag 触发。
|
||
- runtime-builder 构建 API/Worker 镜像和 Web 产物。
|
||
- 生产机只接收 artifact、`docker load`、迁移数据库、重启容器和健康检查。
|
||
- 生产 API `/health` 返回真实发布版本。
|
||
- 生产 Worker 默认 `WORKER_CONCURRENCY=1`。
|
||
- 生产资源巡检 cron 已启用,每 5 分钟写入 `/var/lib/xiaoxia-ci/duty_report.json`。
|
||
|
||
生产验证:
|
||
|
||
- `https://saas-api.xiaoxiajianji.com/health` 返回 `version: v0.1.50`。
|
||
- 最新巡检报告显示 API/Web/容器/版本正常,无 alerts。
|
||
|
||
---
|
||
|
||
## 3. 明确暂未开放
|
||
|
||
这些功能未完成后端闭环,必须禁用或显示“暂未开放”,不得假成功。
|
||
|
||
- 订阅升级、支付、配额变更。
|
||
- 账单、发票、账单下载。
|
||
- Admin 后台:用户管理、数据分析、系统监控、日志查看。
|
||
- Profile 高级设置:资料编辑、通知偏好、账号安全、会话管理。
|
||
- 全局项目列表。
|
||
- 全局成员管理。
|
||
- 素材智能视图/缺口诊断已开放基础版:推荐、慎用、高风险、未分类、最近上传、未使用、已使用、待复核、配音统计、准备度评分、生成前 critical 缺口拦截。
|
||
- 复核操作入口已开放基础版:素材页支持通过/拒绝,拒绝素材计入高风险。
|
||
- 成片中心已开放基础版:成片列表、生成参数、预览入口、签名下载、批量下载入口、复核状态。
|
||
- 统一任务中心和任务重试。
|
||
- 模板与剪辑计划已开放基础版:基础节奏模板、自动选片、剪辑计划预览、确认后生成、成片参数绑定计划。
|
||
- ASR 字幕、TTS 配音、BGM 混音、转场包装。
|
||
|
||
---
|
||
|
||
## 4. 发布门禁
|
||
|
||
- 生产 Web 使用预构建 artifact,不在生产机执行前端构建。
|
||
- 生产部署默认跳过 API/Worker 镜像构建。
|
||
- API/Worker 只能由 runtime-builder 构建运行时镜像。
|
||
- 生产 Web `/api` 必须代理到 `xiaoxia-api-production:8000`。
|
||
- API/Worker 发布后必须 force recreate Web,避免 Nginx 静态 upstream 缓存旧 API 容器 IP。
|
||
- 未实现后端的功能不得接入 UI 调用;按钮必须禁用或页面必须显示“暂未开放”。
|
||
- 公网发布后必须至少运行:
|
||
- `python scripts\smoke_public_auth_flow.py`
|
||
- `python scripts\smoke_public_upload_flow.py`
|
||
- 公开生成 smoke。
|
||
- `python scripts\smoke_public_boundary_flow.py`
|
||
- `/health` 版本必须等于当前生产 tag。
|
||
- 资源巡检报告如有 `alerts`,不得忽略。
|
||
|
||
---
|
||
|
||
## 5. 已有防回归测试
|
||
|
||
- `apps/web/src/api/auth.test.ts`:认证用户字段归一化,防止 `user_id/email_verified` 与 `id/is_email_verified` 漂移。
|
||
- `tests/unit/test_release_scripts.py`:生产 artifact 部署、生产 Nginx 代理、Web recreate、runtime builder、版本注入、Worker 并发限制等门禁。
|
||
- `tests/unit/test_production_resource_monitoring.py`:生产资源巡检脚本和 heartbeat 报告契约。
|
||
- `tests/integration/test_projects.py`:项目详情和 workspace 上下文恢复。
|
||
- `scripts/smoke_public_auth_flow.py`:公网注册、登录、`/auth/me`、`/workspaces` smoke。
|
||
- `scripts/smoke_public_upload_flow.py`:公网工作空间、项目、素材库、上传和 ingest smoke。
|
||
- `scripts/smoke_public_boundary_flow.py`:公网匿名/非成员访问 project、asset-library、assets、upload、generation task、generation results、generated video download 边界 smoke。
|
||
- `tests/unit/test_asset_diagnosis.py`:项目素材准备度、缺口诊断和智能视图计数规则。
|
||
- `tests/unit/test_generation_preflight.py`:API 创建生成任务前必须存在 ready 视频素材。
|
||
- `apps/web/e2e/core-upload.spec.ts`:真实浏览器上传 MOV 后验证素材 ready、智能诊断展示和复核入口。
|
||
- `apps/web/e2e/core-titles.spec.ts`:真实浏览器新增标题、常用标记和搜索筛选。
|
||
- `apps/web/e2e/core-generation.spec.ts`:真实浏览器上传有效 MP4、选择标题、生成成片、回写标题使用次数、签名下载并校验 `video/mp4`。
|
||
|
||
---
|
||
|
||
## 6. 当前已知风险
|
||
|
||
### 6.1 生产机规格偏小
|
||
|
||
现状:
|
||
|
||
- CPU:2 核。
|
||
- 内存:约 1.7GiB。
|
||
- swap:已补 2GiB。
|
||
- 根分区:约 40GiB,彻底清理后巡检约 45%。
|
||
|
||
影响:
|
||
|
||
- 资源抖动可能导致 TLS/SSH/业务入口超时。
|
||
- swap 和 Worker 并发限制是缓解,不是长期扩容替代。
|
||
|
||
建议:
|
||
|
||
- 生产机升级到至少 4GiB,推荐 8GiB。
|
||
|
||
### 6.2 Gitea 已拆离生产业务机
|
||
|
||
现状:
|
||
|
||
- 构建任务运行在 runtime-builder。
|
||
- Gitea 服务本体已迁移到 runtime-builder 主机,生产业务机不再承载 Gitea。
|
||
|
||
影响:
|
||
|
||
- 生产业务机资源压力显著降低。
|
||
- 仍需持续关注小规格生产机磁盘和内存。
|
||
|
||
建议:
|
||
|
||
- 保持部署后 Docker artifact 自动清理。
|
||
- 中期仍建议扩容生产机磁盘/内存。
|
||
|
||
---
|
||
|
||
## 7. 下一步
|
||
|
||
1. 执行真实浏览器 UAT:登录 → 工作空间 → 项目 → 批量上传 → 智能诊断 → 复核 → 生成 → 下载。
|
||
2. 进入开发包 7:智能增强。
|
||
3. 处理生产资源长期风险:扩容生产机磁盘/内存或继续收紧 artifact 保留策略。
|