feat: 选择视频库后自动触发 AI 智能匹配 (#1256 前端部分) #1269

Closed
xiaoxia wants to merge 3 commits from feat/issue-1256-auto-smart-match into develop
Owner

改动内容

#1256 前端部分:用户选择视频库后自动触发 AI 素材匹配。

改动

  • useStep2Materials.ts 新增 useEffect,在 auto 模式下自动触发 handleSmartMatch()
  • 触发条件:auto 模式 + 视频库已选 + 素材加载完成 + 素材数>0
  • 使用 autoTriggeredRef 防止同一视频库重复触发
  • 切换视频库后会重新触发匹配

用户体验变化

  • 选择视频库后自动执行 AI 匹配,无需手动点击「让AI帮你选」
  • 匹配过程中按钮显示「AI 选择中…」
  • 匹配完成后按钮变为「重新选择」,支持换一批

Related to #1256

## 改动内容 #1256 前端部分:用户选择视频库后自动触发 AI 素材匹配。 ### 改动 - `useStep2Materials.ts` 新增 `useEffect`,在 `auto` 模式下自动触发 `handleSmartMatch()` - 触发条件:auto 模式 + 视频库已选 + 素材加载完成 + 素材数>0 - 使用 `autoTriggeredRef` 防止同一视频库重复触发 - 切换视频库后会重新触发匹配 ### 用户体验变化 - 选择视频库后自动执行 AI 匹配,无需手动点击「让AI帮你选」 - 匹配过程中按钮显示「AI 选择中…」 - 匹配完成后按钮变为「重新选择」,支持换一批 Related to #1256
xiaoxia added 1 commit 2026-08-07 18:48:27 +08:00
feat: 选择视频库后自动触发 AI 智能匹配 (#1256)
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 / Check if frontend-only change (pull_request) Successful in 59s
CI/CD Pipeline / Validate - Migration (alembic) (pull_request) Successful in 57s
CI/CD Pipeline / Validate - Type Check (mypy) (pull_request) Successful in 1m12s
PR Automation / Auto Merge on CI Green + Approved (pull_request) Successful in 1m20s
AI Code Review / AI Code Review (pull_request) Failing after 2m29s
PR Automation / Auto Approve on CI Green (pull_request) Successful in 3m22s
CI/CD Pipeline / Deploy Staging (Watchtower auto-deploy) (pull_request) Has been skipped
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 - Code Quality (pull_request) Has been cancelled
CI/CD Pipeline / Integration Tests (pull_request) Has been cancelled
CI/CD Pipeline / Frontend Lint (pull_request) Has been cancelled
CI/CD Pipeline / Frontend Unit Tests (pull_request) Has been cancelled
CI/CD Pipeline / PR Build Web Image (pull_request) Has been cancelled
CI/CD Pipeline / Staging E2E Tests (pull_request) Has been cancelled
CI/CD Pipeline / Staging API Integration Tests (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 / ACR Image Cleanup (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
Preview Deploy / Deploy Preview Environment (pull_request) Has been cancelled
305f054d4c
- useStep2Materials 添加 useEffect,auto 模式下选择视频库自动调用 handleSmartMatch
- 使用 autoTriggeredRef 防止同一视频库重复触发
- 条件:auto 模式 + 视频库已选 + 素材加载完成 + 素材数>0
- 用户不再需要手动点击「让AI帮你选」按钮
- 已有匹配结果后按钮自动变为「重新选择」
xiaoxia added 1 commit 2026-08-07 18:53:44 +08:00
fix: 修复 AI Code Review 提出的3个阻塞问题
CI/CD Pipeline / Check if frontend-only change (pull_request) Successful in 42s
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 / Validate - Migration (alembic) (pull_request) Successful in 45s
CI/CD Pipeline / Validate - Type Check (mypy) (pull_request) Successful in 1m0s
PR Automation / Auto Merge on CI Green + Approved (pull_request) Successful in 1m30s
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 / 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 - Code Quality (pull_request) Successful in 4m39s
PR Automation / Auto Approve on CI Green (pull_request) Successful in 3m12s
CI/CD Pipeline / Integration Tests (pull_request) Has been skipped
CI/CD Pipeline / PR Build Web Image (pull_request) Successful in 1m38s
AI Code Review / AI Code Review (pull_request) Failing after 4m37s
CI/CD Pipeline / Frontend Lint (pull_request) Has been cancelled
CI/CD Pipeline / Frontend Unit Tests (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
Preview Deploy / Deploy Preview Environment (pull_request) Has been cancelled
516aeab8de
1. 模式切换失效:使用复合 triggerKey (libraryId_mode) 替代单一 libraryId
   模式切换时 key 变化会重新触发自动匹配
2. 闭包陷阱:将 handleSmartMatch 从 smartMatch 解构并加入依赖项
   handleSmartMatch 由 useCallback 包装,引用稳定
3. 依赖粒度:materials.items 替代 materials.items.length
   素材内容变化也能正确触发重新匹配
xiaoxia added 1 commit 2026-08-07 19:00:30 +08:00
fix: 修复模式切换时自动匹配失效
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 33s
CI/CD Pipeline / Unit Tests (pull_request) Has been skipped
CI/CD Pipeline / Validate - Migration (alembic) (pull_request) Successful in 46s
CI/CD Pipeline / PR Build API Image (pull_request) Has been skipped
CI/CD Pipeline / Validate - Type Check (mypy) (pull_request) Successful in 1m4s
CI/CD Pipeline / PR Build Worker Image (pull_request) Has been skipped
AI Code Review / AI Code Review (pull_request) Successful in 1m56s
PR Automation / Auto Merge on CI Green + Approved (pull_request) Successful in 1m55s
CI/CD Pipeline / PR Build Web Image (pull_request) Successful in 1m26s
PR Automation / Auto Approve on CI Green (pull_request) Successful in 3m10s
CI/CD Pipeline / Validate - Code Quality (pull_request) Successful in 4m53s
CI/CD Pipeline / Integration Tests (pull_request) Has been skipped
Preview Deploy / Deploy Preview Environment (pull_request) Failing after 13m4s
CI/CD Pipeline / Frontend Unit Tests (pull_request) Failing after 14m55s
CI/CD Pipeline / Frontend Lint (pull_request) Failing after 15m22s
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
ACR Cleanup / ACR Image Cleanup (pull_request_target) Successful in 12s
Preview Cleanup / Cleanup Preview Environment (pull_request) Successful in 18s
34b19d2aaa
离开 auto 模式时重置 autoTriggeredRef,确保每次进入 auto 模式
(包括从 manual 切回 auto)都能重新触发智能匹配
Collaborator

【阻塞级判定】

  • 是否存在阻塞级问题:否
  • 阻塞级问题数量:0 个

📊 审查概览

  • 整体评价:通过
  • 建议级问题数量:0 个

🔴 阻塞级问题(必须修复)

💡 改进建议(不阻塞合并)

良好实践

  1. 防重复触发机制:使用 useRef (autoTriggeredRef) 配合 selectedLibraryId 进行判断,有效防止了在同一视频库下多次触发智能匹配,逻辑严密。
  2. 前置条件检查:在 useEffect 中对 materialModeselectedLibraryIdmaterialsLoadingmaterials.items.length 进行了完整的前置校验,避免了无效调用和潜在的错误。
  3. 状态重置逻辑:在离开 auto 模式时重置 ref,确保再次进入模式时能正常响应,状态管理清晰。

格式检查通过 | 逻辑审查通过 | 性能良好


🤖 由 AI 代码审查机器人自动生成 | 2026-08-07 11:02:19 | 模型:

### 【阻塞级判定】 - 是否存在阻塞级问题:否 - 阻塞级问题数量:0 个 ### 📊 审查概览 - 整体评价:通过 - 建议级问题数量:0 个 ### 🔴 阻塞级问题(必须修复) 无 ### 💡 改进建议(不阻塞合并) 无 ### ✅ 良好实践 1. **防重复触发机制**:使用 `useRef` (`autoTriggeredRef`) 配合 `selectedLibraryId` 进行判断,有效防止了在同一视频库下多次触发智能匹配,逻辑严密。 2. **前置条件检查**:在 `useEffect` 中对 `materialMode`、`selectedLibraryId`、`materialsLoading` 和 `materials.items.length` 进行了完整的前置校验,避免了无效调用和潜在的错误。 3. **状态重置逻辑**:在离开 `auto` 模式时重置 ref,确保再次进入模式时能正常响应,状态管理清晰。 --- ✅ 格式检查通过 | ✅ 逻辑审查通过 | ✅ 性能良好 --- <sub>🤖 由 AI 代码审查机器人自动生成 | 2026-08-07 11:02:19 | 模型: </sub> <!-- AI_CODE_REVIEW_AUTO_COMMENT -->
xiaoxia closed this pull request 2026-08-07 19:18:44 +08:00

🗑️ 预览环境已清理

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

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

🗑️ **预览环境已清理** PR #1269 已关闭或合并,对应的预览环境已被清理。 > 如有需要,可以重新打开 PR 来重新生成预览环境。
Some checks are pending
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 33s
CI/CD Pipeline / Unit Tests (pull_request) Has been skipped
CI/CD Pipeline / Validate - Migration (alembic) (pull_request) Successful in 46s
CI/CD Pipeline / PR Build API Image (pull_request) Has been skipped
CI/CD Pipeline / Validate - Type Check (mypy) (pull_request) Successful in 1m4s
CI/CD Pipeline / PR Build Worker Image (pull_request) Has been skipped
AI Code Review / AI Code Review (pull_request) Successful in 1m56s
PR Automation / Auto Merge on CI Green + Approved (pull_request) Successful in 1m55s
CI/CD Pipeline / PR Build Web Image (pull_request) Successful in 1m26s
PR Automation / Auto Approve on CI Green (pull_request) Successful in 3m10s
CI/CD Pipeline / Validate - Code Quality (pull_request) Successful in 4m53s
CI/CD Pipeline / Integration Tests (pull_request) Has been skipped
Preview Deploy / Deploy Preview Environment (pull_request) Failing after 13m4s
CI/CD Pipeline / Frontend Unit Tests (pull_request) Failing after 14m55s
CI/CD Pipeline / Frontend Lint (pull_request) Failing after 15m22s
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
ACR Cleanup / ACR Image Cleanup (pull_request_target) Successful in 12s
Preview Cleanup / Cleanup Preview Environment (pull_request) Successful in 18s

Pull request closed

Sign in to join this conversation.