feat: 前端对接确认生成 API (POST /tasks/{task_id}/confirm) #1310

Merged
auto-approve-bot merged 5 commits from feat/confirm-generation-api-frontend into develop 2026-08-09 09:11:01 +08:00
Owner

概述

对接后端 PR #1308 新增的确认生成 API。

改动

1. 新增 API 调用 (confirm.ts)

  • confirmGeneration(taskId, params) 调用 POST /tasks/{task_id}/confirm

2. 新增类型定义

  • ConfirmGenerationRequest: output_width, output_height, cover_url, custom_title
  • ConfirmGenerationResponse, ConfirmGenerationTaskItem

3. 修改 useGenerateVideo.ts

  • previewTaskId 时使用新 API(确认生成流程)
  • previewTaskId 时使用旧 API(向后兼容)
  • 传递 cover_url 和 custom_title 参数

请求体格式

interface ConfirmGenerationRequest {
  output_width?: number  // 默认 1080
  output_height?: number // 默认 1920
  cover_url?: string     // 自定义封面 URL
  custom_title?: string  // 自定义标题
}

前置条件

⚠️ 此 PR 依赖后端 PR #1308 同步到 develop 分支

后端 PR #1308 目前合并到了 main,需要先同步到 develop 后此 PR 才能正常构建和合并。

@saas后端程序 请先将 PR #1308 的改动同步到 develop 分支(cherry-pick 或新 PR)。

关联

  • 后端 PR #1308: 确认生成 API 改为复用 worker.generate_video 渲染路径
## 概述 对接后端 PR #1308 新增的确认生成 API。 ## 改动 ### 1. 新增 API 调用 (`confirm.ts`) - `confirmGeneration(taskId, params)` 调用 `POST /tasks/{task_id}/confirm` ### 2. 新增类型定义 - `ConfirmGenerationRequest`: output_width, output_height, cover_url, custom_title - `ConfirmGenerationResponse`, `ConfirmGenerationTaskItem` ### 3. 修改 `useGenerateVideo.ts` - 有 `previewTaskId` 时使用新 API(确认生成流程) - 无 `previewTaskId` 时使用旧 API(向后兼容) - 传递 cover_url 和 custom_title 参数 ## 请求体格式 ```typescript interface ConfirmGenerationRequest { output_width?: number // 默认 1080 output_height?: number // 默认 1920 cover_url?: string // 自定义封面 URL custom_title?: string // 自定义标题 } ``` ## 前置条件 ⚠️ **此 PR 依赖后端 PR #1308 同步到 develop 分支** 后端 PR #1308 目前合并到了 main,需要先同步到 develop 后此 PR 才能正常构建和合并。 @saas后端程序 请先将 PR #1308 的改动同步到 develop 分支(cherry-pick 或新 PR)。 ## 关联 - 后端 PR #1308: 确认生成 API 改为复用 worker.generate_video 渲染路径
xiaoxia added 1 commit 2026-08-08 21:07:55 +08:00
feat: 前端对接确认生成 API (POST /tasks/{task_id}/confirm)
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 / Deploy Staging (Watchtower auto-deploy) (pull_request) Has been skipped
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 / Validate - Type Check (mypy) (pull_request) Successful in 40s
CI/CD Pipeline / Check if frontend-only change (pull_request) Successful in 46s
CI/CD Pipeline / Unit Tests (pull_request) Has been skipped
CI/CD Pipeline / PR Build API Image (pull_request) Has been skipped
CI/CD Pipeline / PR Build Worker Image (pull_request) Has been skipped
CI/CD Pipeline / Validate - Migration (alembic) (pull_request) Successful in 56s
Preview Deploy / Deploy Preview Environment (pull_request) Failing after 1m9s
CI/CD Pipeline / Frontend Unit Tests (pull_request) Successful in 29s
CI/CD Pipeline / Frontend Lint (pull_request) Failing after 40s
PR Automation / Auto Approve on CI Green (pull_request) Successful in 1m32s
PR Automation / Auto Merge on CI Green + Approved (pull_request) Successful in 1m46s
AI Code Review / AI Code Review (pull_request) Failing after 2m14s
CI/CD Pipeline / PR Build Web Image (pull_request) Failing after 1m59s
CI/CD Pipeline / Validate - Code Quality (pull_request) Successful in 3m29s
CI/CD Pipeline / Integration Tests (pull_request) Has been skipped
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) Failing after 6s
13ca16b940
对接后端 PR #1308 新增的确认生成 API:

1. 新增 API 调用函数 confirm.ts
   - confirmGeneration(taskId, params) 调用 POST /tasks/{task_id}/confirm

2. 新增类型定义
   - ConfirmGenerationRequest: output_width, output_height, cover_url, custom_title
   - ConfirmGenerationResponse, ConfirmGenerationTaskItem

3. 修改 useGenerateVideo.ts
   - 有 previewTaskId 时使用新 API(确认生成流程)
   - 无 previewTaskId 时使用旧 API(向后兼容)
   - 传递 cover_url 和 custom_title 参数

前置条件:后端 PR #1308 同步到 develop 分支后此 PR 才可合并

关联:PR #1308 (后端确认生成 API)
xiaoxia added 1 commit 2026-08-09 08:54:28 +08:00
chore: trigger CI re-run after backend sync (#1312)
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 / Deploy Staging (Watchtower auto-deploy) (pull_request) Has been skipped
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 / Check if frontend-only change (pull_request) Successful in 40s
CI/CD Pipeline / Unit Tests (pull_request) Has been skipped
CI/CD Pipeline / PR Build API Image (pull_request) Has been skipped
CI/CD Pipeline / PR Build Worker Image (pull_request) Has been skipped
CI/CD Pipeline / Validate - Type Check (mypy) (pull_request) Successful in 1m1s
CI/CD Pipeline / Validate - Migration (alembic) (pull_request) Successful in 1m8s
Preview Deploy / Deploy Preview Environment (pull_request) Failing after 1m11s
PR Automation / Auto Merge on CI Green + Approved (pull_request) Successful in 1m41s
CI/CD Pipeline / Frontend Unit Tests (pull_request) Successful in 1m7s
CI/CD Pipeline / Frontend Lint (pull_request) Failing after 1m35s
PR Automation / Auto Approve on CI Green (pull_request) Successful in 2m21s
CI/CD Pipeline / Validate - Code Quality (pull_request) Successful in 3m3s
CI/CD Pipeline / Build Production API Image (pull_request) Has been skipped
CI/CD Pipeline / Integration Tests (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 / Production Browser E2E (pull_request) Has been skipped
CI/CD Pipeline / Canary Release to Production (pull_request) Has been skipped
CI/CD Pipeline / PR Build Web Image (pull_request) Failing after 2m23s
CI/CD Pipeline / CI Gate (pull_request) Failing after 11s
AI Code Review / AI Code Review (pull_request) Has been cancelled
e62da06a27
xiaoxia added 1 commit 2026-08-09 08:58:09 +08:00
fix: 修复 CoverConfig 属性名 imageUrl → upload_url (TS2339)
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 / Deploy Staging (Watchtower auto-deploy) (pull_request) Has been skipped
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 / Validate - Migration (alembic) (pull_request) Successful in 43s
CI/CD Pipeline / Check if frontend-only change (pull_request) Successful in 46s
CI/CD Pipeline / Unit Tests (pull_request) Has been skipped
CI/CD Pipeline / PR Build API Image (pull_request) Has been skipped
CI/CD Pipeline / PR Build Worker Image (pull_request) Has been skipped
CI/CD Pipeline / Validate - Type Check (mypy) (pull_request) Successful in 1m15s
Preview Deploy / Deploy Preview Environment (pull_request) Successful in 1m42s
PR Automation / Auto Merge on CI Green + Approved (pull_request) Successful in 1m56s
CI/CD Pipeline / Frontend Unit Tests (pull_request) Successful in 1m30s
AI Code Review / AI Code Review (pull_request) Failing after 2m22s
CI/CD Pipeline / Frontend Lint (pull_request) Failing after 1m45s
CI/CD Pipeline / PR Build Web Image (pull_request) Successful in 1m47s
PR Automation / Auto Approve on CI Green (pull_request) Successful in 2m35s
CI/CD Pipeline / Validate - Code Quality (pull_request) Successful in 3m35s
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 / Integration Tests (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) Failing after 15s
f149c9d9b3

🚀 预览环境已部署

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

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

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

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

🚀 **预览环境已部署** | 项目 | 详情 | |------|------| | PR号 | #1310 | | 预览链接 | [https://pr-1310.preview.xiaoxiajianji.com](https://pr-1310.preview.xiaoxiajianji.com) | | API环境 | staging | > 💡 预览环境使用 staging API 数据,请勿在预览环境中操作重要数据。 > > 🔄 每次提交新代码后预览环境会自动更新。 > > 🗑️ PR 关闭或合并后,预览环境会自动清理。
xiaoxia added 1 commit 2026-08-09 09:02:12 +08:00
style: prettier format confirm.ts (trailing newline)
CI/CD Pipeline / Build Staging Web Image (pull_request) Has been skipped
CI/CD Pipeline / Build Staging API Image (pull_request) Has been skipped
CI/CD Pipeline / Build Staging Worker Image (pull_request) Has been skipped
CI/CD Pipeline / Deploy Staging (Watchtower auto-deploy) (pull_request) Has been skipped
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 / Validate - Migration (alembic) (pull_request) Successful in 55s
CI/CD Pipeline / Check if frontend-only change (pull_request) Successful in 56s
CI/CD Pipeline / Validate - Type Check (mypy) (pull_request) Successful in 56s
CI/CD Pipeline / Unit Tests (pull_request) Has been skipped
CI/CD Pipeline / PR Build API Image (pull_request) Has been skipped
CI/CD Pipeline / PR Build Worker Image (pull_request) Has been skipped
Preview Deploy / Deploy Preview Environment (pull_request) Successful in 1m14s
CI/CD Pipeline / Frontend Unit Tests (pull_request) Successful in 35s
PR Automation / Auto Merge on CI Green + Approved (pull_request) Successful in 1m46s
CI/CD Pipeline / Validate - Code Quality (pull_request) Successful in 2m42s
CI/CD Pipeline / Integration Tests (pull_request) Has been skipped
CI/CD Pipeline / Frontend Lint (pull_request) Failing after 1m46s
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 / PR Build Web Image (pull_request) Successful in 1m48s
PR Automation / Auto Approve on CI Green (pull_request) Successful in 2m50s
CI/CD Pipeline / CI Gate (pull_request) Failing after 13s
AI Code Review / AI Code Review (pull_request) Has been cancelled
33e650e917
xiaoxia added 1 commit 2026-08-09 09:06:17 +08:00
style: fix trailing newline in confirm.ts
CI/CD Pipeline / Build Staging Web Image (pull_request) Has been skipped
CI/CD Pipeline / Build Staging API Image (pull_request) Has been skipped
CI/CD Pipeline / Build Staging Worker Image (pull_request) Has been skipped
CI/CD Pipeline / Deploy Staging (Watchtower auto-deploy) (pull_request) Has been skipped
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 / Validate - Migration (alembic) (pull_request) Successful in 51s
CI/CD Pipeline / Check if frontend-only change (pull_request) Successful in 52s
CI/CD Pipeline / Unit Tests (pull_request) Has been skipped
CI/CD Pipeline / PR Build API Image (pull_request) Has been skipped
CI/CD Pipeline / PR Build Worker Image (pull_request) Has been skipped
CI/CD Pipeline / Validate - Type Check (mypy) (pull_request) Successful in 1m1s
Preview Deploy / Deploy Preview Environment (pull_request) Successful in 1m19s
CI/CD Pipeline / Frontend Unit Tests (pull_request) Successful in 34s
CI/CD Pipeline / Frontend Lint (pull_request) Successful in 55s
PR Automation / Auto Approve on CI Green (pull_request) Successful in 1m52s
PR Automation / Auto Merge on CI Green + Approved (pull_request) Successful in 1m52s
AI Code Review / AI Code Review (pull_request) Successful in 2m24s
CI/CD Pipeline / Validate - Code Quality (pull_request) Successful in 2m25s
CI/CD Pipeline / Integration Tests (pull_request) Has been skipped
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 / PR Build Web Image (pull_request) Successful in 1m39s
CI/CD Pipeline / CI Gate (pull_request) Successful in 11s
ACR Cleanup / ACR Image Cleanup (pull_request_target) Successful in 55s
Preview Cleanup / Cleanup Preview Environment (pull_request) Successful in 1m42s
6262f6c5c3
auto-approve-bot approved these changes 2026-08-09 09:08:07 +08:00
auto-approve-bot left a comment
Collaborator

CI全绿,自动审批通过。

CI全绿,自动审批通过。
auto-approve-bot approved these changes 2026-08-09 09:08:07 +08:00
auto-approve-bot left a comment
Collaborator

CI全绿,自动审批通过。

CI全绿,自动审批通过。
Collaborator

代码审查结果 - PR #1310

⚠️ 问题(1个需要修改)

  1. apps/web/src/pages/generate/hooks/useGenerateVideo.ts 第66-70行:逻辑错误,忽略了新创建的任务ID。
    • 问题描述confirmGeneration API 返回了 ConfirmGenerationResponse,其中包含 items 数组,数组内的对象应当包含新创建的正式生成任务的 id。代码当前直接丢弃了返回值并调用 startPolling()。如果 startPolling 默认继续轮询 previewTaskId(预览任务),由于预览任务已完成且状态已固定,轮询将无法获取到新任务的进度,导致前端状态停滞或显示错误。
    • 后果:用户无法看到正式生成任务的进度,功能失效。
    • 修改建议:从 response.data.items[0].id 获取新任务 ID,并更新用于轮询的任务 ID 状态(或将其传给 startPolling)。

💡 建议(2个可选)

  1. apps/web/src/pages/generate/hooks/useGenerateVideo.ts 第62行:建议优化分辨率解析逻辑。
    • 具体内容:使用 split("x") 解析分辨率较为脆弱,如果 props.videoRatio 格式异常(如包含空格、非 'x' 分隔符)可能导致解析不符合预期。虽然当前有默认值兜底,但建议使用正则表达式提取数字,或增加对分隔符的校验。
  2. apps/web/src/pages/generate/hooks/useGenerateVideo.ts 第67-69行:建议区分“未设置”与“空字符串”。
    • 具体内容:代码使用 || ""undefined 转换为空字符串。如果后端 API 语义中,不传字段表示“使用默认值”,而传空字符串表示“强制清空”,则此逻辑可能导致用户未设置封面/标题时,后端错误地将其清空。建议仅在值存在时才传递字段,或明确后端对空字符串的处理逻辑。

格式检查通过 | 逻辑审查需修改 | 性能无明显问题


🤖 由 AI 代码审查机器人自动生成 | 2026-08-09 01:08:42 | 模型:

## 代码审查结果 - PR #1310 ### ⚠️ 问题(1个需要修改) 1. **apps/web/src/pages/generate/hooks/useGenerateVideo.ts 第66-70行**:逻辑错误,忽略了新创建的任务ID。 - **问题描述**:`confirmGeneration` API 返回了 `ConfirmGenerationResponse`,其中包含 `items` 数组,数组内的对象应当包含新创建的正式生成任务的 `id`。代码当前直接丢弃了返回值并调用 `startPolling()`。如果 `startPolling` 默认继续轮询 `previewTaskId`(预览任务),由于预览任务已完成且状态已固定,轮询将无法获取到新任务的进度,导致前端状态停滞或显示错误。 - **后果**:用户无法看到正式生成任务的进度,功能失效。 - **修改建议**:从 `response.data.items[0].id` 获取新任务 ID,并更新用于轮询的任务 ID 状态(或将其传给 `startPolling`)。 ### 💡 建议(2个可选) 1. **apps/web/src/pages/generate/hooks/useGenerateVideo.ts 第62行**:建议优化分辨率解析逻辑。 - **具体内容**:使用 `split("x")` 解析分辨率较为脆弱,如果 `props.videoRatio` 格式异常(如包含空格、非 'x' 分隔符)可能导致解析不符合预期。虽然当前有默认值兜底,但建议使用正则表达式提取数字,或增加对分隔符的校验。 2. **apps/web/src/pages/generate/hooks/useGenerateVideo.ts 第67-69行**:建议区分“未设置”与“空字符串”。 - **具体内容**:代码使用 `|| ""` 将 `undefined` 转换为空字符串。如果后端 API 语义中,不传字段表示“使用默认值”,而传空字符串表示“强制清空”,则此逻辑可能导致用户未设置封面/标题时,后端错误地将其清空。建议仅在值存在时才传递字段,或明确后端对空字符串的处理逻辑。 --- ✅ 格式检查通过 | ❌ 逻辑审查需修改 | ✅ 性能无明显问题 --- <sub>🤖 由 AI 代码审查机器人自动生成 | 2026-08-09 01:08:42 | 模型: </sub> <!-- AI_CODE_REVIEW_AUTO_COMMENT -->
auto-approve-bot merged commit 2c4fabb585 into develop 2026-08-09 09:11:01 +08:00
auto-approve-bot deleted branch feat/confirm-generation-api-frontend 2026-08-09 09:11:01 +08:00

🗑️ 预览环境已清理

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

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

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