fix(p0): #1922 from-assets 空 templateId 双斜杠 404 兜底 #1926
Merged
auto-approve-bot
merged 2 commits from 2026-09-15 11:54:06 +08:00
fix/p0-from-assets-default-template-fallback-v2 into develop
2 Commits
| Author | SHA1 | Message | Date | |
|---|---|---|---|---|
|
|
d0937a6f29 |
style: auto-format with black + isort + ruff + prettier [skip ci-format-check]
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 / PR Build Worker Image (pull_request) Successful in 39s
Preview Deploy / Deploy Preview Environment (pull_request) Successful in 1m46s
CI/CD Pipeline / PR Build API Image (pull_request) Successful in 1m43s
CI/CD Pipeline / Integration Tests (pull_request) Successful in 2m43s
PR Automation / Auto Approve on CI Green (pull_request) Successful in 3m5s
CI/CD Pipeline / Validate - Style (pull_request) Successful in 4m17s
CI/CD Pipeline / Unit Tests (pull_request) Successful in 4m19s
CI/CD Pipeline / Validate - Python (mypy + alembic) (pull_request) Successful in 4m39s
AI Code Review / AI Code Review (pull_request) Successful in 6m36s
CI/CD Pipeline / Validate - Security (pull_request) Successful in 10m33s
CI/CD Pipeline / CI Gate (pull_request) Successful in 1s
CI/CD Pipeline / Production Browser E2E (pull_request) Has been skipped
PR Automation / Auto Merge on CI Green + Approved (pull_request) Successful in 8m10s
ACR Cleanup / ACR Image Cleanup (pull_request_target) Successful in 23s
Preview Cleanup / Cleanup Preview Environment (pull_request) Successful in 47s
CI/CD Pipeline / Deploy Production (pull_request) Failing after 27h30m15s
CI/CD Pipeline / Build Production API Image (pull_request) Failing after 27h30m17s
CI/CD Pipeline / PR Build Web Image (pull_request) Failing after 27h40m51s
CI/CD Pipeline / Build Staging Worker Image (pull_request) Failing after 27h40m55s
CI/CD Pipeline / Retag skipped Staging Worker Image (pull_request) Failing after 27h40m12s
CI/CD Pipeline / Retag skipped Staging API Image (pull_request) Failing after 27h40m12s
CI/CD Pipeline / Build Staging Web Image (pull_request) Failing after 27h40m18s
CI/CD Pipeline / Build Staging API Image (pull_request) Failing after 27h40m18s
CI/CD Pipeline / Check push changed paths (pull_request) Failing after 27h40m20s
CI/CD Pipeline / Build Production Web Image (pull_request) Failing after 27h29m39s
CI/CD Pipeline / Staging E2E Tests (pull_request) Failing after 27h40m9s
CI/CD Pipeline / ACR Image Cleanup (pull_request) Failing after 27h40m7s
CI/CD Pipeline / Build Production Worker Image (pull_request) Failing after 27h29m39s
CI/CD Pipeline / Staging API Integration Tests (pull_request) Failing after 27h40m7s
CI/CD Pipeline / Retag skipped Staging Web Image (pull_request) Failing after 27h40m12s
CI/CD Pipeline / Frontend Unit Tests (pull_request) Failing after 27h40m13s
CI/CD Pipeline / Canary Release to Production (pull_request) Failing after 27h29m38s
CI/CD Pipeline / Frontend Lint (pull_request) Failing after 27h40m13s
CI/CD Pipeline / Deploy Staging (Watchtower auto-deploy) (pull_request) Failing after 28h15m46s
|
||
|
|
f10106bc51 |
fix(p0): #1922 from-assets 空 templateId 双斜杠 404 兜底
CI/CD Pipeline / Dedup Check - skip PR tests when covered by push pipeline (pull_request) Successful in 1s
CI/CD Pipeline / Check if frontend-only change (pull_request) Successful in 2s
Preview Deploy / Deploy Preview Environment (pull_request) Successful in 1m52s
CI/CD Pipeline / PR Build API Image (pull_request) Successful in 2m29s
PR Automation / Auto Approve on CI Green (pull_request) Successful in 3m5s
CI/CD Pipeline / PR Build Worker Image (pull_request) Successful in 3m18s
CI/CD Pipeline / Integration Tests (pull_request) Successful in 3m49s
CI/CD Pipeline / Unit Tests (pull_request) Successful in 4m7s
CI/CD Pipeline / Validate - Style (pull_request) Has been cancelled
CI/CD Pipeline / Validate - Security (pull_request) Has been cancelled
CI/CD Pipeline / Validate - Python (mypy + alembic) (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
AI Code Review / AI Code Review (pull_request) Has been cancelled
PR Automation / Auto Merge on CI Green + Approved (pull_request) Has been cancelled
CI/CD Pipeline / Staging API Integration Tests (pull_request) Failing after 27h45m43s
CI/CD Pipeline / Retag skipped Staging API Image (pull_request) Failing after 27h45m52s
CI/CD Pipeline / PR Build Web Image (pull_request) Failing after 27h45m55s
CI/CD Pipeline / Deploy Staging (Watchtower auto-deploy) (pull_request) Failing after 27h45m9s
CI/CD Pipeline / Retag skipped Staging Web Image (pull_request) Failing after 27h45m11s
CI/CD Pipeline / Build Staging Worker Image (pull_request) Failing after 27h45m16s
CI/CD Pipeline / Build Staging Web Image (pull_request) Failing after 27h45m17s
CI/CD Pipeline / Build Staging API Image (pull_request) Failing after 27h45m17s
CI/CD Pipeline / Check push changed paths (pull_request) Failing after 27h45m24s
CI/CD Pipeline / ACR Image Cleanup (pull_request) Failing after 27h45m5s
CI/CD Pipeline / Retag skipped Staging Worker Image (pull_request) Failing after 27h45m11s
CI/CD Pipeline / Staging E2E Tests (pull_request) Failing after 27h45m5s
CI/CD Pipeline / Frontend Unit Tests (pull_request) Failing after 27h45m18s
CI/CD Pipeline / Frontend Lint (pull_request) Failing after 27h45m19s
根因: 1. PR#1918 清理模板管理 API 时误删了 GET /templates 自动创建默认模板兜底逻辑; 2. 前端 PR#1913 去掉空 tid 拦截后,新用户首次进入生成页 templateId='', 拼出 URL /templates//editor/clips/from-assets(双斜杠)→ FastAPI 404, 阻断首次生成流程。 修复(三层兜底): - 新增 _default_template.py,提供共享函数 get_or_create_default_template_id: 查有效模板 → 无则 CreateTemplateUseCase 创建默认 voice_over 模板 → 创建异常回滚后重查(防并发唯一键冲突)。 - GET /templates 列表查询前调用兜底,确保生成页首次拉模板列表时一定有数据。 - 新增独立端点 POST /api/v1/clips/from-assets(tags=[Clips]),template_id 从 body 传入(可选),为空时后端自动兜底,彻底消除双斜杠路径问题。 - dependencies.py 抽出纯函数 resolve_draft_plan_id(支持 auto_create_default), 原 get_draft_plan_id Depends 改为薄封装。 - router.py 注册 clips_standalone_router。 配套:16 个单元测试覆盖兜底函数/resolve/list端点/standalone端点/路由注册, 保证 diff coverage ≥ 40% 过 CI 门禁。 |