fix(voices): AI配音标识兼容旧素材,增加 tts_job_id 降级判断 #1666

Merged
xiaoxia merged 1 commits from fix/ai-badge-fallback into develop 2026-09-03 20:49:32 +08:00
Owner

改动

  • MaterialVoiceTab.tsx:AI 标识判断从仅检查 metadata.source === "tts_job" 改为同时检查 metadata.tts_job_id 是否存在
  • 旧素材在 source 字段引入之前创建,metadata 中没有 source 但有 tts_job_id,通过降级判断让旧素材也能显示 AI 标签

影响范围

  • 仅前端一处判断逻辑变更,无后端改动
## 改动 - `MaterialVoiceTab.tsx`:AI 标识判断从仅检查 `metadata.source === "tts_job"` 改为同时检查 `metadata.tts_job_id` 是否存在 - 旧素材在 `source` 字段引入之前创建,metadata 中没有 `source` 但有 `tts_job_id`,通过降级判断让旧素材也能显示 AI 标签 ## 影响范围 - 仅前端一处判断逻辑变更,无后端改动
auto-approve-bot approved these changes 2026-09-03 19:41:16 +08:00
auto-approve-bot left a comment
Collaborator

CI全绿,自动审批通过。

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

CI全绿,自动审批通过。

CI全绿,自动审批通过。

🚀 预览环境已部署

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

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

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

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

🚀 **预览环境已部署** | 项目 | 详情 | |------|------| | PR号 | #1666 | | 预览链接 | [https://pr-1666.preview.xiaoxiajianji.com](https://pr-1666.preview.xiaoxiajianji.com) | | API环境 | staging | > 💡 预览环境使用 staging API 数据,请勿在预览环境中操作重要数据。 > > 🔄 每次提交新代码后预览环境会自动更新。 > > 🗑️ PR 关闭或合并后,预览环境会自动清理。
xiaoxia added 1 commit 2026-09-03 20:41:08 +08:00
fix(voices): AI配音标识兼容旧素材,增加 tts_job_id 降级判断
CI/CD Pipeline / Check if frontend-only change (pull_request) Successful in 3s
CI/CD Pipeline / Check push changed paths (pull_request) Has been skipped
CI/CD Pipeline / Dedup Check - skip PR tests when covered by push pipeline (pull_request) Successful in 5s
AI Code Review / AI Code Review (pull_request) Successful in 1m35s
PR Automation / Auto Approve on CI Green (pull_request) Successful in 2m46s
Preview Deploy / Deploy Preview Environment (pull_request) Successful in 2m48s
CI/CD Pipeline / Unit Tests (pull_request) Has been skipped
CI/CD Pipeline / Integration Tests (pull_request) Has been skipped
CI/CD Pipeline / Validate - Style (pull_request) Successful in 1m15s
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 / 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 Lint (pull_request) Successful in 1m3s
CI/CD Pipeline / PR Build Web Image (pull_request) Successful in 45s
CI/CD Pipeline / Frontend Unit Tests (pull_request) Successful in 1m13s
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
PR Automation / Auto Merge on CI Green + Approved (pull_request) Successful in 35s
CI/CD Pipeline / Deploy Staging (Watchtower auto-deploy) (pull_request) Has been skipped
ACR Cleanup / ACR Image Cleanup (pull_request_target) Successful in 5s
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 - Python (mypy + alembic) (pull_request) Successful in 4m41s
Preview Cleanup / Cleanup Preview Environment (pull_request) Successful in 1m46s
CI/CD Pipeline / Validate - Security (pull_request) Successful in 28m47s
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 / CI Gate (pull_request) Successful in 2s
CI/CD Pipeline / Production Browser E2E (pull_request) Has been skipped
e64bfb0ad7
旧素材 metadata 无 source 字段但有 tts_job_id,通过检查两者任一存在来显示 AI 标签
xiaoxia force-pushed fix/ai-badge-fallback from 1d4029948f to e64bfb0ad7 2026-09-03 20:41:08 +08:00 Compare
Collaborator

【阻塞级判定】

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

📊 审查概览

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

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

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

良好实践

  1. 增强向后兼容性:代码修改增加了对旧数据结构的兼容处理,通过检查 meta?.tts_job_id 来识别旧版 AI 生成素材,有效避免了因数据模型升级导致的历史数据识别错误。
  2. 提升代码可读性:将 asset.metadata 提取为局部变量 meta,不仅减少了重复的类型断言代码,也使得后续的条件判断逻辑更加简洁清晰。

🤖 由 AI 代码审查机器人自动生成 | 2026-09-03 12:44:56 | 模型:

### 【阻塞级判定】 - 是否存在阻塞级问题:否 - 阻塞级问题数量:0 个 ### 📊 审查概览 - 整体评价:通过 - 建议级问题数量:0 个 ### 🔴 阻塞级问题(必须修复) 无 ### 💡 改进建议(不阻塞合并) 无 ### ✅ 良好实践 1. **增强向后兼容性**:代码修改增加了对旧数据结构的兼容处理,通过检查 `meta?.tts_job_id` 来识别旧版 AI 生成素材,有效避免了因数据模型升级导致的历史数据识别错误。 2. **提升代码可读性**:将 `asset.metadata` 提取为局部变量 `meta`,不仅减少了重复的类型断言代码,也使得后续的条件判断逻辑更加简洁清晰。 --- <sub>🤖 由 AI 代码审查机器人自动生成 | 2026-09-03 12:44:56 | 模型: </sub> <!-- AI_CODE_REVIEW_AUTO_COMMENT -->
xiaoxia merged commit ee4fff42f0 into develop 2026-09-03 20:49:32 +08:00

🗑️ 预览环境已清理

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

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

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