fix(backend): P0 #1911后自动创建默认模板避免剪辑页卡死 #1914

Merged
auto-approve-bot merged 2 commits from fix/p0-auto-create-default-template into develop 2026-09-15 01:23:30 +08:00
Owner

问题

前端 #1911 删除模板选择UI(6步→5步),改为后台自动选第一个有效模板。真实用户账号下 templates 表没有属于该用户的模板时,前端 GET /templates?valid_only=true 返回空数组 → selectedTemplate 永远为空 → 选片请求不发 → 页面永远转圈。

修改

  1. GET /templates (list_templates, valid_only=true):当用户无任何有效模板时,自动创建一条默认 voice_over 模式模板(name=默认配音模板, mode=voice_over, category=default, 含1个 order=0 的通用片段配置),返回给前端。
  2. POST /generation/variant-plans
    • 放宽 VariantPlanRequest schema 校验,template_id 和 source_edit_plan_id 可均不传
    • 路由层新增 _get_or_create_default_template_id():无参时为用户查找/创建默认模板,再查最新 plan;模板无历史 plan 时返回400(需要先有一次预览生成)

测试

  • 新增2个单测:schema允许空template_id、空参时自动创建默认模板并继续选片
  • 现有 555 个模板相关测试全部通过
  • 本地 1176 个相关单测全部通过

Refs #1899, 前端 #1911

## 问题 前端 #1911 删除模板选择UI(6步→5步),改为后台自动选第一个有效模板。真实用户账号下 templates 表没有属于该用户的模板时,前端 GET /templates?valid_only=true 返回空数组 → selectedTemplate 永远为空 → 选片请求不发 → 页面永远转圈。 ## 修改 1. **GET /templates** (list_templates, valid_only=true):当用户无任何有效模板时,自动创建一条默认 voice_over 模式模板(name=默认配音模板, mode=voice_over, category=default, 含1个 order=0 的通用片段配置),返回给前端。 2. **POST /generation/variant-plans**: - 放宽 VariantPlanRequest schema 校验,template_id 和 source_edit_plan_id 可均不传 - 路由层新增 `_get_or_create_default_template_id()`:无参时为用户查找/创建默认模板,再查最新 plan;模板无历史 plan 时返回400(需要先有一次预览生成) ## 测试 - 新增2个单测:schema允许空template_id、空参时自动创建默认模板并继续选片 - 现有 555 个模板相关测试全部通过 - 本地 1176 个相关单测全部通过 Refs #1899, 前端 #1911
xiaoxia added 1 commit 2026-09-15 01:00:48 +08:00
fix(backend): P0 前端#1911 删除模板选择UI后自动创建默认模板兜底
CI/CD Pipeline / Check push changed paths (pull_request) Has been skipped
CI/CD Pipeline / Check if frontend-only change (pull_request) Successful in 3s
CI/CD Pipeline / Dedup Check - skip PR tests when covered by push pipeline (pull_request) Successful in 3s
CI/CD Pipeline / Build Staging API Image (pull_request) Has been skipped
CI/CD Pipeline / Build Staging Web Image (pull_request) Has been skipped
CI/CD Pipeline / Build Staging Worker Image (pull_request) Has been skipped
CI/CD Pipeline / PR Build Web Image (pull_request) Has been skipped
CI/CD Pipeline / PR Build API Image (pull_request) Successful in 49s
CI/CD Pipeline / Frontend Lint (pull_request) Has been skipped
CI/CD Pipeline / Frontend Unit Tests (pull_request) Has been skipped
CI/CD Pipeline / Retag skipped Staging API Image (pull_request) Has been skipped
CI/CD Pipeline / Retag skipped Staging Web Image (pull_request) Has been skipped
CI/CD Pipeline / Retag skipped Staging Worker Image (pull_request) Has been skipped
CI/CD Pipeline / Deploy Staging (Watchtower auto-deploy) (pull_request) Has been skipped
CI/CD Pipeline / PR Build Worker Image (pull_request) Successful in 2m18s
CI/CD Pipeline / Staging E2E Tests (pull_request) Has been skipped
CI/CD Pipeline / Staging API Integration Tests (pull_request) Has been skipped
CI/CD Pipeline / ACR Image Cleanup (pull_request) Has been skipped
Preview Deploy / Deploy Preview Environment (pull_request) Successful in 2m54s
PR Automation / Auto Approve on CI Green (pull_request) Successful in 3m14s
CI/CD Pipeline / Unit Tests (pull_request) Successful in 4m42s
CI/CD Pipeline / Validate - Python (mypy + alembic) (pull_request) Successful in 5m21s
CI/CD Pipeline / Integration Tests (pull_request) Successful in 4m46s
AI Code Review / AI Code Review (pull_request) Successful in 6m55s
CI/CD Pipeline / Validate - Style (pull_request) Has been cancelled
CI/CD Pipeline / Validate - Security (pull_request) Has been cancelled
CI/CD Pipeline / Build Production API Image (pull_request) Has been cancelled
CI/CD Pipeline / Build Production Web Image (pull_request) Has been cancelled
CI/CD Pipeline / Build Production Worker Image (pull_request) Has been cancelled
CI/CD Pipeline / Deploy Production (pull_request) Has been cancelled
CI/CD Pipeline / Production Browser E2E (pull_request) Has been cancelled
CI/CD Pipeline / Canary Release to Production (pull_request) Has been cancelled
CI/CD Pipeline / CI Gate (pull_request) Has been cancelled
PR Automation / Auto Merge on CI Green + Approved (pull_request) Has been cancelled
6804749da6
- list_templates(valid_only=true):用户无任何有效模板时自动创建默认 voice_over 模板(含1个通用片段),避免前端selectedTemplate永远为空导致卡死
- POST /generation/variant-plans:放宽 schema 校验(template_id/source_edit_plan_id 均可不传),路由层自动为用户查找/创建默认模板
- 新增2个单测:schema允许空template_id、空参时自动创建默认模板并继续选片
- Refs #1899

🚀 预览环境已部署

项目 详情
PR号 #1914
预览链接 https://pr-1914.preview.xiaoxiajianji.com
API环境 staging

💡 预览环境使用 staging API 数据,请勿在预览环境中操作重要数据。

🔄 每次提交新代码后预览环境会自动更新。

🗑️ PR 关闭或合并后,预览环境会自动清理。

🚀 **预览环境已部署** | 项目 | 详情 | |------|------| | PR号 | #1914 | | 预览链接 | [https://pr-1914.preview.xiaoxiajianji.com](https://pr-1914.preview.xiaoxiajianji.com) | | API环境 | staging | > 💡 预览环境使用 staging API 数据,请勿在预览环境中操作重要数据。 > > 🔄 每次提交新代码后预览环境会自动更新。 > > 🗑️ PR 关闭或合并后,预览环境会自动清理。
auto-approve-bot added 1 commit 2026-09-15 01:10:49 +08:00
style: auto-format with black + isort + ruff + prettier [skip ci-format-check]
CI/CD Pipeline / Dedup Check - skip PR tests when covered by push pipeline (pull_request) Successful in 3s
CI/CD Pipeline / Check push changed paths (pull_request) Has been skipped
CI/CD Pipeline / Check if frontend-only change (pull_request) Successful in 3s
CI/CD Pipeline / Build Staging API Image (pull_request) Has been skipped
CI/CD Pipeline / Build Staging Web Image (pull_request) Has been skipped
CI/CD Pipeline / Build Staging Worker Image (pull_request) Has been skipped
CI/CD Pipeline / Frontend Unit Tests (pull_request) Has been skipped
CI/CD Pipeline / Frontend Lint (pull_request) Has been skipped
CI/CD Pipeline / PR Build Web Image (pull_request) Has been skipped
CI/CD Pipeline / Retag skipped Staging API Image (pull_request) Has been skipped
CI/CD Pipeline / Retag skipped Staging Web Image (pull_request) Has been skipped
CI/CD Pipeline / Retag skipped Staging Worker Image (pull_request) Has been skipped
CI/CD Pipeline / Deploy Staging (Watchtower auto-deploy) (pull_request) Has been skipped
Preview Deploy / Deploy Preview Environment (pull_request) Successful in 1m7s
CI/CD Pipeline / Staging E2E Tests (pull_request) Has been skipped
CI/CD Pipeline / Staging API Integration Tests (pull_request) Has been skipped
CI/CD Pipeline / ACR Image Cleanup (pull_request) Has been skipped
CI/CD Pipeline / PR Build API Image (pull_request) Successful in 13s
CI/CD Pipeline / PR Build Worker Image (pull_request) Successful in 15s
PR Automation / Auto Approve on CI Green (pull_request) Successful in 3m13s
CI/CD Pipeline / Validate - Style (pull_request) Successful in 4m34s
CI/CD Pipeline / Integration Tests (pull_request) Successful in 3m53s
CI/CD Pipeline / Unit Tests (pull_request) Successful in 4m35s
CI/CD Pipeline / Validate - Python (mypy + alembic) (pull_request) Successful in 4m53s
AI Code Review / AI Code Review (pull_request) Successful in 6m36s
CI/CD Pipeline / Validate - Security (pull_request) Successful in 11m45s
CI/CD Pipeline / Build Production API Image (pull_request) Has been skipped
CI/CD Pipeline / Build Production Web Image (pull_request) Has been skipped
CI/CD Pipeline / Build Production Worker Image (pull_request) Has been skipped
CI/CD Pipeline / Deploy Production (pull_request) Has been skipped
CI/CD Pipeline / Canary Release to Production (pull_request) Has been skipped
CI/CD Pipeline / Production Browser E2E (pull_request) Has been skipped
CI/CD Pipeline / CI Gate (pull_request) Successful in 4s
PR Automation / Auto Merge on CI Green + Approved (pull_request) Successful in 8m48s
ACR Cleanup / ACR Image Cleanup (pull_request_target) Successful in 15s
Preview Cleanup / Cleanup Preview Environment (pull_request) Successful in 42s
f30083c58b
auto-approve-bot merged commit a56b3f7b42 into develop 2026-09-15 01:23:30 +08:00
auto-approve-bot deleted branch fix/p0-auto-create-default-template 2026-09-15 01:23:31 +08:00

🗑️ 预览环境已清理

PR #1914 已关闭或合并,对应的预览环境已被清理。

如有需要,可以重新打开 PR 来重新生成预览环境。

🗑️ **预览环境已清理** PR #1914 已关闭或合并,对应的预览环境已被清理。 > 如有需要,可以重新打开 PR 来重新生成预览环境。
Sign in to join this conversation.