Commit Graph

173 Commits

Author SHA1 Message Date
CI Bot 351de916e3 style: auto-format with black + isort + prettier [skip ci-format-check]
CI/CD Pipeline / Check if frontend-only change (pull_request) Successful in 19s
CI/CD Pipeline / PR Build API Image (pull_request) Successful in 29s
CI/CD Pipeline / PR Build Worker Image (pull_request) Successful in 34s
Preview Deploy / Deploy Preview Environment (pull_request) Successful in 1m46s
PR Automation / Auto Approve on CI Green (pull_request) Successful in 3m9s
AI Code Review / AI Code Review (pull_request) Successful in 6m34s
CI/CD Pipeline / Dedup Check - skip PR tests when covered by push pipeline (pull_request) Failing after 14m3s
PR Automation / Auto Merge on CI Green + Approved (pull_request) Successful in 11m6s
CI/CD Pipeline / Validate - Python (mypy + alembic) (pull_request) Successful in 1m58s
CI/CD Pipeline / Unit Tests (pull_request) Successful in 1m58s
CI/CD Pipeline / Integration Tests (pull_request) Successful in 2m26s
CI/CD Pipeline / Validate - Style (pull_request) Failing after 2m58s
CI/CD Pipeline / Validate - Security (pull_request) Successful in 5m20s
CI/CD Pipeline / CI Gate (pull_request) Failing after 3s
CI/CD Pipeline / Production Browser E2E (pull_request) Has been skipped
CI/CD Pipeline / Canary Release to Production (pull_request) Failing after 301h59m35s
CI/CD Pipeline / Build Production API Image (pull_request) Failing after 301h59m38s
CI/CD Pipeline / Deploy Production (pull_request) Failing after 301h59m35s
CI/CD Pipeline / Build Production Worker Image (pull_request) Failing after 301h59m38s
CI/CD Pipeline / Frontend Unit Tests (pull_request) Failing after 302h4m59s
CI/CD Pipeline / Frontend Lint (pull_request) Failing after 302h4m59s
CI/CD Pipeline / ACR Image Cleanup (pull_request) Failing after 302h17m40s
CI/CD Pipeline / Deploy Staging (Watchtower auto-deploy) (pull_request) Failing after 302h17m46s
CI/CD Pipeline / Staging API Integration Tests (pull_request) Failing after 302h17m41s
CI/CD Pipeline / Retag skipped Staging Worker Image (pull_request) Failing after 302h17m52s
CI/CD Pipeline / Retag skipped Staging API Image (pull_request) Failing after 302h17m55s
CI/CD Pipeline / Build Staging Worker Image (pull_request) Failing after 302h18m1s
CI/CD Pipeline / Build Staging Web Image (pull_request) Failing after 302h18m2s
CI/CD Pipeline / Build Staging API Image (pull_request) Failing after 302h18m5s
CI/CD Pipeline / PR Build Web Image (pull_request) Failing after 302h18m33s
CI/CD Pipeline / Check push changed paths (pull_request) Failing after 302h18m47s
CI/CD Pipeline / Build Production Web Image (pull_request) Failing after 302h34m3s
CI/CD Pipeline / Staging E2E Tests (pull_request) Failing after 302h52m6s
CI/CD Pipeline / Retag skipped Staging Web Image (pull_request) Failing after 302h52m17s
2026-09-03 17:04:19 +00:00
xiaoxia 35bebb2cd5 fix: 直方图 None 防御改为显式判断 + 负值保护
CI/CD Pipeline / Dedup Check - skip PR tests when covered by push pipeline (pull_request) Successful in 2s
CI/CD Pipeline / Check if frontend-only change (pull_request) Successful in 2s
CI/CD Pipeline / PR Build API Image (pull_request) Successful in 36s
CI/CD Pipeline / PR Build Worker Image (pull_request) Successful in 37s
CI/CD Pipeline / Unit Tests (pull_request) Successful in 1m31s
CI/CD Pipeline / Validate - Python (mypy + alembic) (pull_request) Successful in 1m43s
Preview Deploy / Deploy Preview Environment (pull_request) Successful in 1m53s
CI/CD Pipeline / Integration Tests (pull_request) Successful in 1m58s
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
AI Code Review / AI Code Review (pull_request) Has been cancelled
PR Automation / Auto Approve on CI Green (pull_request) Has been cancelled
PR Automation / Auto Merge on CI Green + Approved (pull_request) Has been cancelled
CI/CD Pipeline / ACR Image Cleanup (pull_request) Failing after 302h33m49s
CI/CD Pipeline / Staging E2E Tests (pull_request) Failing after 302h33m51s
CI/CD Pipeline / Deploy Staging (Watchtower auto-deploy) (pull_request) Failing after 302h33m57s
CI/CD Pipeline / Retag skipped Staging API Image (pull_request) Failing after 302h33m58s
CI/CD Pipeline / Build Staging Worker Image (pull_request) Failing after 302h33m59s
CI/CD Pipeline / Build Staging API Image (pull_request) Failing after 302h34m1s
CI/CD Pipeline / PR Build Web Image (pull_request) Failing after 302h34m1s
CI/CD Pipeline / Frontend Lint (pull_request) Failing after 302h34m4s
CI/CD Pipeline / Retag skipped Staging Worker Image (pull_request) Failing after 302h33m57s
CI/CD Pipeline / Check push changed paths (pull_request) Failing after 302h34m6s
CI/CD Pipeline / Staging API Integration Tests (pull_request) Failing after 303h8m16s
CI/CD Pipeline / Retag skipped Staging Web Image (pull_request) Failing after 303h8m24s
CI/CD Pipeline / Build Staging Web Image (pull_request) Failing after 303h8m26s
CI/CD Pipeline / Frontend Unit Tests (pull_request) Failing after 303h8m29s
- chunk 直方图提取:ch if ch is not None else [],保留全零直方图
  (全黑视频 [0,0,...] 是有效数据,不能被 or [] 清空),仅 DB NULL 回退
- _bhattacharyya_coefficient: max(0.0, ai*bi) 防御异常负值导致 sqrt 报错
2026-09-04 00:50:15 +08:00
xiaoxia 43e648a0f9 fix: 直方图字段为 NULL 时的 None 防御 + ruff B905
CI/CD Pipeline / Dedup Check - skip PR tests when covered by push pipeline (pull_request) Successful in 6s
CI/CD Pipeline / Check if frontend-only change (pull_request) Successful in 5s
AI Code Review / AI Code Review (pull_request) Failing after 2m21s
CI/CD Pipeline / PR Build API Image (pull_request) Successful in 27s
CI/CD Pipeline / Validate - Python (mypy + alembic) (pull_request) Successful in 1m57s
CI/CD Pipeline / PR Build Worker Image (pull_request) Successful in 25s
Preview Deploy / Deploy Preview Environment (pull_request) Successful in 2m15s
CI/CD Pipeline / Unit Tests (pull_request) Successful in 1m43s
PR Automation / Auto Approve on CI Green (pull_request) Successful in 3m37s
CI/CD Pipeline / Integration Tests (pull_request) Successful in 2m9s
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
CI/CD Pipeline / ACR Image Cleanup (pull_request) Failing after 302h46m51s
CI/CD Pipeline / Retag skipped Staging Worker Image (pull_request) Failing after 302h47m1s
CI/CD Pipeline / Build Staging Worker Image (pull_request) Failing after 302h47m16s
CI/CD Pipeline / Staging API Integration Tests (pull_request) Failing after 302h46m52s
CI/CD Pipeline / Build Staging Web Image (pull_request) Failing after 302h47m16s
CI/CD Pipeline / Staging E2E Tests (pull_request) Failing after 302h46m53s
CI/CD Pipeline / Frontend Lint (pull_request) Failing after 302h47m45s
CI/CD Pipeline / Deploy Staging (Watchtower auto-deploy) (pull_request) Failing after 302h46m57s
CI/CD Pipeline / Retag skipped Staging Web Image (pull_request) Failing after 302h47m1s
CI/CD Pipeline / Check push changed paths (pull_request) Failing after 302h49m51s
CI/CD Pipeline / Retag skipped Staging API Image (pull_request) Failing after 302h47m3s
CI/CD Pipeline / Build Staging API Image (pull_request) Failing after 302h47m16s
CI/CD Pipeline / PR Build Web Image (pull_request) Failing after 302h47m29s
CI/CD Pipeline / Frontend Unit Tests (pull_request) Failing after 303h22m10s
- c.get("color_histogram", []) 在字段值为 None(DB NULL) 时返回 None,
  后续 len(None) 抛 TypeError。改用 c.get(...) or [](3处)
- zip() 添加 strict=True(a/b 已截断为 min_len,长度必然相等),修复 ruff B905
2026-09-04 00:33:38 +08:00
xiaoxia fece382c15 fix: _bhattacharyya_coefficient 用 x**0.5 替代 np.sqrt
CI/CD Pipeline / Check if frontend-only change (pull_request) Successful in 5s
CI/CD Pipeline / Dedup Check - skip PR tests when covered by push pipeline (pull_request) Successful in 5s
CI/CD Pipeline / PR Build API Image (pull_request) Successful in 25s
CI/CD Pipeline / PR Build Worker Image (pull_request) Successful in 25s
CI/CD Pipeline / Unit Tests (pull_request) Successful in 1m31s
CI/CD Pipeline / Validate - Python (mypy + alembic) (pull_request) Successful in 1m49s
CI/CD Pipeline / Integration Tests (pull_request) Successful in 1m49s
Preview Deploy / Deploy Preview Environment (pull_request) Successful in 1m45s
CI/CD Pipeline / Validate - Style (pull_request) Failing after 2m28s
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
AI Code Review / AI Code Review (pull_request) Has been cancelled
PR Automation / Auto Approve on CI Green (pull_request) Has been cancelled
PR Automation / Auto Merge on CI Green + Approved (pull_request) Has been cancelled
CI/CD Pipeline / ACR Image Cleanup (pull_request) Failing after 302h56m28s
CI/CD Pipeline / Staging E2E Tests (pull_request) Failing after 302h56m29s
CI/CD Pipeline / Deploy Staging (Watchtower auto-deploy) (pull_request) Failing after 302h56m35s
CI/CD Pipeline / Frontend Unit Tests (pull_request) Failing after 302h57m0s
CI/CD Pipeline / Frontend Lint (pull_request) Failing after 302h57m1s
CI/CD Pipeline / Retag skipped Staging Web Image (pull_request) Failing after 302h57m5s
CI/CD Pipeline / Retag skipped Staging API Image (pull_request) Failing after 302h57m6s
CI/CD Pipeline / Build Staging Web Image (pull_request) Failing after 302h57m8s
CI/CD Pipeline / Build Staging API Image (pull_request) Failing after 302h57m9s
CI/CD Pipeline / Check push changed paths (pull_request) Failing after 302h57m11s
CI/CD Pipeline / Staging API Integration Tests (pull_request) Failing after 303h30m54s
CI/CD Pipeline / PR Build Web Image (pull_request) Failing after 303h31m24s
CI/CD Pipeline / Retag skipped Staging Worker Image (pull_request) Failing after 303h31m30s
CI/CD Pipeline / Build Staging Worker Image (pull_request) Failing after 303h31m33s
回应 AI Code Review:虽然 numpy 已在模块顶部导入(第21行),
但该方法是纯标量计算,改用 Python 原生 ** 0.5 更清晰且无额外依赖。
直方图值均为非负,与 math.sqrt 数学等价。
2026-09-04 00:26:56 +08:00
xiaoxia 2c8337d71d fix: 修复 AI Code Review 3 个阻塞级问题
CI/CD Pipeline / Dedup Check - skip PR tests when covered by push pipeline (pull_request) Successful in 2s
CI/CD Pipeline / Check if frontend-only change (pull_request) Successful in 2s
CI/CD Pipeline / PR Build API Image (pull_request) Successful in 33s
CI/CD Pipeline / PR Build Worker Image (pull_request) Successful in 13s
CI/CD Pipeline / Unit Tests (pull_request) Failing after 1m4s
CI/CD Pipeline / Integration Tests (pull_request) Successful in 1m53s
Preview Deploy / Deploy Preview Environment (pull_request) Successful in 2m29s
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 / 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
AI Code Review / AI Code Review (pull_request) Has been cancelled
PR Automation / Auto Approve on CI Green (pull_request) Has been cancelled
PR Automation / Auto Merge on CI Green + Approved (pull_request) Has been cancelled
CI/CD Pipeline / Deploy Staging (Watchtower auto-deploy) (pull_request) Failing after 303h41m53s
CI/CD Pipeline / Retag skipped Staging Worker Image (pull_request) Failing after 303h42m15s
CI/CD Pipeline / PR Build Web Image (pull_request) Failing after 303h42m17s
CI/CD Pipeline / Retag skipped Staging Web Image (pull_request) Failing after 303h42m15s
CI/CD Pipeline / Frontend Unit Tests (pull_request) Failing after 303h42m38s
CI/CD Pipeline / Build Staging API Image (pull_request) Failing after 303h42m45s
CI/CD Pipeline / Check push changed paths (pull_request) Failing after 303h42m48s
CI/CD Pipeline / Frontend Lint (pull_request) Failing after 303h42m38s
CI/CD Pipeline / Build Staging Worker Image (pull_request) Failing after 303h42m45s
CI/CD Pipeline / Retag skipped Staging API Image (pull_request) Failing after 304h16m41s
CI/CD Pipeline / Build Staging Web Image (pull_request) Failing after 304h17m10s
1. KeyError 风险: c['color_histogram'] → c.get('color_histogram', [])
   防止存量数据缺少该字段时 Worker 崩溃

2. 直方图默认值不对称: 任一方无数据时统一返回 0.0
   旧逻辑: 已有视频无直方图→0.5, 新视频无直方图→0.0
   新逻辑: 任一方无数据→0.0(无法判定相似)

3. Bhattacharyya 输入已归一化(cv2.normalize 保证)
   compute_color_histogram 已用 cv2.normalize 处理,无需额外改动

测试:49/49 全绿
2026-09-03 23:41:15 +08:00
xiaoxia a2a0b478a5 fix: compute_duplicate_rate 使用纯得分计算,不经过阈值过滤
CI/CD Pipeline / Dedup Check - skip PR tests when covered by push pipeline (pull_request) Successful in 5s
CI/CD Pipeline / Check if frontend-only change (pull_request) Successful in 5s
AI Code Review / AI Code Review (pull_request) Failing after 1m54s
Preview Deploy / Deploy Preview Environment (pull_request) Successful in 2m16s
CI/CD Pipeline / Unit Tests (pull_request) Failing after 41s
PR Automation / Auto Approve on CI Green (pull_request) Successful in 2m43s
CI/CD Pipeline / PR Build API Image (pull_request) Successful in 11s
CI/CD Pipeline / PR Build Worker Image (pull_request) Successful in 13s
CI/CD Pipeline / Integration Tests (pull_request) Successful in 1m5s
CI/CD Pipeline / Validate - Python (mypy + alembic) (pull_request) Successful in 4m17s
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
CI/CD Pipeline / ACR Image Cleanup (pull_request) Failing after 303h54m5s
CI/CD Pipeline / Retag skipped Staging Worker Image (pull_request) Failing after 303h54m23s
CI/CD Pipeline / Retag skipped Staging Web Image (pull_request) Failing after 303h54m24s
CI/CD Pipeline / Staging API Integration Tests (pull_request) Failing after 303h54m5s
CI/CD Pipeline / PR Build Web Image (pull_request) Failing after 303h54m37s
CI/CD Pipeline / Staging E2E Tests (pull_request) Failing after 303h54m5s
CI/CD Pipeline / Build Staging Worker Image (pull_request) Failing after 303h55m20s
CI/CD Pipeline / Build Staging Web Image (pull_request) Failing after 303h55m20s
CI/CD Pipeline / Retag skipped Staging API Image (pull_request) Failing after 303h54m24s
CI/CD Pipeline / Check push changed paths (pull_request) Failing after 303h57m25s
CI/CD Pipeline / Frontend Unit Tests (pull_request) Failing after 303h54m39s
CI/CD Pipeline / Build Staging API Image (pull_request) Failing after 303h55m20s
CI/CD Pipeline / Deploy Staging (Watchtower auto-deploy) (pull_request) Failing after 304h28m34s
CI/CD Pipeline / Frontend Lint (pull_request) Failing after 304h29m4s
AI Code Review 发现的阻塞级问题:
- compute_duplicate_rate 之前复用 _check_fusion_duplicate,
  后者有 DUPLICATE_THRESHOLD(0.7) 硬过滤,
  导致相似度低于70%的视频返回0.0而不是真实值(如60.0)

修复方案:将「计算得分」和「阈值判定」分离为两个方法:
- _compute_fusion_score(): 纯计算,返回原始融合得分(无阈值过滤)
- _check_fusion_duplicate(): 调用 _compute_fusion_score + 阈值过滤

compute_duplicate_rate 改用 _compute_fusion_score 获取原始得分,
check_duplicate / check_batch_duplicate 继续使用 _check_fusion_duplicate。

新增 5 个 _compute_fusion_score 测试(TestComputeFusionScore 类),
修复 1 个 compute_duplicate_rate 测试(断言从0.0改为30.0)。

测试:49/49 全绿(39 + 10)
2026-09-03 23:23:56 +08:00
xiaoxia f3024e8e17 feat: pHash阈值校准+颜色直方图融合 #1658
CI/CD Pipeline / Dedup Check - skip PR tests when covered by push pipeline (pull_request) Successful in 2s
CI/CD Pipeline / Check if frontend-only change (pull_request) Successful in 3s
CI/CD Pipeline / PR Build API Image (pull_request) Successful in 14s
CI/CD Pipeline / Unit Tests (pull_request) Failing after 58s
CI/CD Pipeline / PR Build Worker Image (pull_request) Successful in 16s
CI/CD Pipeline / Integration Tests (pull_request) Successful in 1m30s
Preview Deploy / Deploy Preview Environment (pull_request) Successful in 2m39s
PR Automation / Auto Approve on CI Green (pull_request) Successful in 2m55s
AI Code Review / AI Code Review (pull_request) Failing after 4m13s
CI/CD Pipeline / Validate - Python (mypy + alembic) (pull_request) Successful in 4m54s
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
CI/CD Pipeline / ACR Image Cleanup (pull_request) Failing after 304h15m34s
CI/CD Pipeline / Staging E2E Tests (pull_request) Failing after 304h15m35s
CI/CD Pipeline / Retag skipped Staging Web Image (pull_request) Failing after 304h15m41s
CI/CD Pipeline / Deploy Staging (Watchtower auto-deploy) (pull_request) Failing after 304h15m41s
CI/CD Pipeline / Retag skipped Staging API Image (pull_request) Failing after 304h15m42s
CI/CD Pipeline / Frontend Unit Tests (pull_request) Failing after 304h15m59s
CI/CD Pipeline / Frontend Lint (pull_request) Failing after 304h15m59s
CI/CD Pipeline / Check push changed paths (pull_request) Failing after 304h16m44s
CI/CD Pipeline / Build Staging Worker Image (pull_request) Failing after 304h16m41s
CI/CD Pipeline / Build Staging Web Image (pull_request) Failing after 304h16m42s
CI/CD Pipeline / Staging API Integration Tests (pull_request) Failing after 304h49m59s
CI/CD Pipeline / Retag skipped Staging Worker Image (pull_request) Failing after 304h50m5s
CI/CD Pipeline / PR Build Web Image (pull_request) Failing after 304h50m9s
CI/CD Pipeline / Build Staging API Image (pull_request) Failing after 304h51m6s
Issue #1658: 提高查重检测精度

改动摘要:
- PHASH_THRESHOLD 从 10 收紧到 8
- 均值 → 中位数抵抗黑帧/转场干扰 (statistics.median)
- 新增帧匹配比例条件 MATCH_RATIO_THRESHOLD=0.7
- 新增 Bhattacharyya 系数融合颜色直方图 (0.7 pHash + 0.3 hist)
- 删除旧 _average_histogram_similarity()
- 提取 _check_fusion_duplicate() 共用方法
- 改造 compute_duplicate_rate() 使用融合逻辑
- reason 标记: phash_histogram_fusion / batch_phash_histogram_fusion
- 向后兼容: 无直方图数据时 hist_similarity 回退到 0.5

新增常量:
- PHASH_THRESHOLD = 8
- MATCH_RATIO_THRESHOLD = 0.7
- DUPLICATE_THRESHOLD = 0.70
- PHASH_WEIGHT = 0.7
- HISTOGRAM_WEIGHT = 0.3

测试:
- test_dedup_v2.py: 34 个新测试全绿
- test_dedup_pure.py: 删除10个引用已删除方法的旧测试, 剩余10个全绿
- 总计 44 个测试全部通过
2026-09-03 23:07:15 +08:00
saas-backend-agent cbca0c3584 feat: 分片指纹存储改造 + 存量指纹重建脚本 #1657
CI/CD Pipeline / Dedup Check - skip PR tests when covered by push pipeline (pull_request) Successful in 3s
CI/CD Pipeline / Check if frontend-only change (pull_request) Successful in 2s
Preview Deploy / Deploy Preview Environment (pull_request) Successful in 2m19s
PR Automation / Auto Approve on CI Green (pull_request) Successful in 2m43s
CI/CD Pipeline / Integration Tests (pull_request) Successful in 1m22s
CI/CD Pipeline / PR Build API Image (pull_request) Successful in 8s
CI/CD Pipeline / PR Build Worker Image (pull_request) Successful in 7s
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 / Unit Tests (pull_request) Has been cancelled
CI/CD Pipeline / Deploy Staging (Watchtower auto-deploy) (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
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 / Retag skipped Staging Worker Image (pull_request) Failing after 306h35m11s
CI/CD Pipeline / Retag skipped Staging Web Image (pull_request) Failing after 306h35m11s
CI/CD Pipeline / Retag skipped Staging API Image (pull_request) Failing after 306h35m11s
CI/CD Pipeline / Build Staging Worker Image (pull_request) Failing after 306h35m45s
CI/CD Pipeline / Build Staging Web Image (pull_request) Failing after 306h35m45s
CI/CD Pipeline / Frontend Lint (pull_request) Failing after 306h36m1s
CI/CD Pipeline / Build Staging API Image (pull_request) Failing after 306h35m46s
CI/CD Pipeline / PR Build Web Image (pull_request) Failing after 306h35m53s
CI/CD Pipeline / Check push changed paths (pull_request) Failing after 306h40m31s
CI/CD Pipeline / Frontend Unit Tests (pull_request) Failing after 307h10m24s
## 改动

### 1. 新建 video_fingerprint_chunks 表(Migration 063)
- 按时间分片存储 pHash + color_histogram
- 索引:video_id, project_id, user_id

### 2. 新增 VideoFingerprintChunkModel
- packages/adapters/sqlalchemy_impl/models.py

### 3. 改造 dedup.py 指纹计算
- compute_fingerprint() 改为按时间分片抽帧
  - 短视频(≤60s):每 2s 一片
  - 长视频(>60s):每 5s 一片
- VideoFingerprint 新增 chunks 字段(list of FingerprintChunk)
- 向后兼容:keyframe_phashes/color_histograms 保留
- to_chunk_models() 方法转换为 SQLAlchemy Model
- check_duplicate() 优先从分片表读取,回退到 JSON 字段
- check_duplicate_task() 写入分片表

### 4. 改造 dedup_helpers.py
- create_video_record_and_dedup() 同步写入分片表

### 5. 存量指纹重建脚本
- apps/api/scripts/rebuild_fingerprint_chunks.py
- 支持 --dry-run 和 --batch-size
- 幂等:已有分片数据的视频跳过

### 6. 单元测试(11 个)
- 分片策略:60s→30片,120s→24片
- to_chunk_models() 输出正确
- _save_fingerprint_chunks 幂等性
- to_dict() 向后兼容

Closes #1657
2026-09-03 20:41:11 +08:00
xiaoxia 4aeb1d5b66 fix(render): 修复生成视频时长短于模板要求时长 (#1614)
CI/CD Pipeline / Dedup Check - skip PR tests when covered by push pipeline (push) Successful in 2s
CI/CD Pipeline / Check push changed paths (push) Successful in 4s
CI/CD Pipeline / Validate - Style (push) Successful in 2m41s
CI/CD Pipeline / Integration Tests (push) Successful in 3m46s
CI/CD Pipeline / Build Staging API Image (push) Successful in 3m32s
CI/CD Pipeline / Build Staging Worker Image (push) Successful in 3m35s
CI/CD Pipeline / Build Staging Web Image (push) Successful in 4m27s
CI/CD Pipeline / Validate - Python (mypy + alembic) (push) Successful in 6m31s
CI/CD Pipeline / Frontend Unit Tests (push) Successful in 9m14s
CI/CD Pipeline / Deploy Staging (Watchtower auto-deploy) (push) Successful in 4m10s
CI/CD Pipeline / Unit Tests (push) Successful in 17m43s
CI/CD Pipeline / ACR Image Cleanup (push) Successful in 2m28s
CI/CD Pipeline / Staging API Integration Tests (push) Successful in 4m4s
CI/CD Pipeline / Staging E2E Tests (push) Successful in 6m2s
CI/CD Pipeline / Validate - Security (push) Has been cancelled
CI/CD Pipeline / Build Production API Image (push) Has been cancelled
CI/CD Pipeline / Build Production Web Image (push) Has been cancelled
CI/CD Pipeline / Build Production Worker Image (push) Has been cancelled
CI/CD Pipeline / Deploy Production (push) Has been cancelled
CI/CD Pipeline / Production Browser E2E (push) Has been cancelled
CI/CD Pipeline / Canary Release to Production (push) Has been cancelled
CI/CD Pipeline / CI Gate (push) Has been cancelled
CI/CD Pipeline / Retag skipped Staging Worker Image (push) Failing after 355h7m15s
CI/CD Pipeline / Retag skipped Staging API Image (push) Failing after 355h7m17s
CI/CD Pipeline / PR Build Worker Image (push) Failing after 355h18m16s
CI/CD Pipeline / PR Build API Image (push) Failing after 355h18m16s
CI/CD Pipeline / Frontend Lint (push) Failing after 355h18m16s
CI/CD Pipeline / Check if frontend-only change (push) Failing after 355h20m46s
CI/CD Pipeline / Retag skipped Staging Web Image (push) Failing after 355h41m35s
CI/CD Pipeline / PR Build Web Image (push) Failing after 355h52m34s
fix(render): 修复生成视频时长短于模板要求时长 (#1614)
2026-09-01 20:00:12 +08:00
xiaoxia 9ad729d917 fix(dedup): AI Review 阻塞问题修复——DB 层排除自身 + 文档修正
CI/CD Pipeline / Dedup Check - skip PR tests when covered by push pipeline (pull_request) Successful in 3s
CI/CD Pipeline / Check if frontend-only change (pull_request) Successful in 3s
Preview Deploy / Deploy Preview Environment (pull_request) Successful in 4m41s
PR Automation / Auto Merge on CI Green + Approved (pull_request) Successful in 4m51s
CI/CD Pipeline / Frontend Unit Tests (pull_request) Successful in 4m15s
CI/CD Pipeline / Validate - Python (mypy + alembic) (pull_request) Successful in 5m44s
CI/CD Pipeline / Integration Tests (pull_request) Successful in 5m20s
CI/CD Pipeline / PR Build API Image (pull_request) Successful in 4m15s
PR Automation / Auto Approve on CI Green (pull_request) Successful in 6m49s
CI/CD Pipeline / Frontend Lint (pull_request) Successful in 6m2s
CI/CD Pipeline / Unit Tests (pull_request) Successful in 6m32s
CI/CD Pipeline / PR Build Web Image (pull_request) Successful in 3m1s
CI/CD Pipeline / Validate - Style (pull_request) Has been cancelled
CI/CD Pipeline / Validate - Security (pull_request) Has been cancelled
CI/CD Pipeline / PR Build Worker Image (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
CI/CD Pipeline / ACR Image Cleanup (pull_request) Failing after 362h1m54s
CI/CD Pipeline / Staging E2E Tests (pull_request) Failing after 362h1m58s
CI/CD Pipeline / Deploy Staging (Watchtower auto-deploy) (pull_request) Failing after 362h2m4s
CI/CD Pipeline / Retag skipped Staging Worker Image (pull_request) Failing after 362h2m36s
CI/CD Pipeline / Retag skipped Staging Web Image (pull_request) Failing after 362h2m38s
CI/CD Pipeline / Build Staging Worker Image (pull_request) Failing after 362h7m25s
CI/CD Pipeline / Build Staging Web Image (pull_request) Failing after 362h7m25s
CI/CD Pipeline / Build Staging API Image (pull_request) Failing after 362h7m27s
CI/CD Pipeline / Check push changed paths (pull_request) Failing after 362h7m32s
CI/CD Pipeline / Staging API Integration Tests (pull_request) Failing after 362h36m13s
CI/CD Pipeline / Retag skipped Staging API Image (pull_request) Failing after 362h36m57s
1. DB 查询层排除 current_video_id:
   原实现在 Python 循环里排除自身,但 GeneratedVideo 记录在查重前已
   写入 DB(dedup_helpers L80 create → L126 compute_duplicate_rate),
   查询结果会包含自身 → MD5 完全匹配 → duplicate_rate 恒为 100%。
   现在在 query 构建时即排除:query.filter(id != current_video_id)

2. 文档修正:limit(200) → "遍历最近 200 个"(与实际实现一致)

3. 测试 mock 更新:filter() 现在被调用两次(scope + self-exclusion),
   所有测试改用 chainable query_mock 模式。
2026-09-01 13:17:19 +08:00
CI Bot 1225e65cc3 style: auto-format with black + isort + 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 if frontend-only change (pull_request) Successful in 2s
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 / Unit Tests (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 API Image (pull_request) Has been cancelled
CI/CD Pipeline / PR Build Web Image (pull_request) Has been cancelled
CI/CD Pipeline / PR Build Worker Image (pull_request) Has been cancelled
CI/CD Pipeline / Build Staging API Image (pull_request) Has been cancelled
CI/CD Pipeline / Build Staging Web Image (pull_request) Has been cancelled
CI/CD Pipeline / Build Staging Worker Image (pull_request) Has been cancelled
CI/CD Pipeline / Retag skipped Staging API Image (pull_request) Has been cancelled
CI/CD Pipeline / Retag skipped Staging Web Image (pull_request) Has been cancelled
CI/CD Pipeline / Retag skipped Staging Worker Image (pull_request) Has been cancelled
CI/CD Pipeline / Deploy Staging (Watchtower auto-deploy) (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
AI Code Review / AI Code Review (pull_request) Has been cancelled
PR Automation / Auto Approve on CI Green (pull_request) Has been cancelled
PR Automation / Auto Merge on CI Green + Approved (pull_request) Has been cancelled
Preview Deploy / Deploy Preview Environment (pull_request) Has been cancelled
CI/CD Pipeline / Check push changed paths (pull_request) Failing after 362h10m25s
2026-09-01 05:13:39 +00:00
xiaoxia 3a9a4334df feat(dedup): 自动查重率扩大到用户全局——跨项目比对
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 1s
PR Automation / Auto Merge on CI Green + Approved (pull_request) Successful in 3m54s
CI/CD Pipeline / PR Build API Image (pull_request) Successful in 3m52s
CI/CD Pipeline / Validate - Python (mypy + alembic) (pull_request) Successful in 4m46s
AI Code Review / AI Code Review (pull_request) Failing after 4m56s
CI/CD Pipeline / Integration Tests (pull_request) Successful in 4m53s
CI/CD Pipeline / PR Build Worker Image (pull_request) Successful in 2m16s
PR Automation / Auto Approve on CI Green (pull_request) Successful in 6m54s
Preview Deploy / Deploy Preview Environment (pull_request) Failing after 7m2s
CI/CD Pipeline / Validate - Style (pull_request) Failing after 7m10s
CI/CD Pipeline / Validate - Security (pull_request) Has been cancelled
CI/CD Pipeline / Unit Tests (pull_request) Has been cancelled
CI/CD Pipeline / Deploy Staging (Watchtower auto-deploy) (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
CI/CD Pipeline / Retag skipped Staging Worker Image (pull_request) Failing after 362h12m17s
CI/CD Pipeline / Retag skipped Staging Web Image (pull_request) Failing after 362h12m19s
CI/CD Pipeline / Retag skipped Staging API Image (pull_request) Failing after 362h12m21s
CI/CD Pipeline / Build Staging Worker Image (pull_request) Failing after 362h14m41s
CI/CD Pipeline / Build Staging Web Image (pull_request) Failing after 362h14m41s
CI/CD Pipeline / Build Staging API Image (pull_request) Failing after 362h14m43s
CI/CD Pipeline / PR Build Web Image (pull_request) Failing after 362h14m47s
CI/CD Pipeline / Frontend Unit Tests (pull_request) Failing after 362h18m36s
CI/CD Pipeline / Frontend Lint (pull_request) Failing after 362h18m38s
CI/CD Pipeline / Check push changed paths (pull_request) Failing after 362h18m42s
原 compute_duplicate_rate 仅按 project_id 比较,用户在不同项目/模板
下生成的视频互不可见,导致查重率始终为 0。

修改:
- dedup.py: compute_duplicate_rate 新增可选 user_id 参数;
  有 user_id 时按用户全局查询(跨项目),否则回退 project_id。
  查询上限从 100 提升到 200。
- dedup_helpers.py: create_video_record_and_dedup 传 user_id
  给 compute_duplicate_rate。

新增测试:
- test_duplicate_rate.py: +2 用例(跨项目匹配 / 空 user_id 回退)
- test_dedup_helpers_user_id.py: 3 用例(user_id 透传 / 空值兼容 /
  duplicate_rate 写回记录)

共 107 个相关测试全过。
2026-09-01 13:06:08 +08:00
xiaoxia afe78fb25f feat: 成片 duplicate_rate 百分比 + 素材高频使用自动排除 (#1573)
CI/CD Pipeline / Dedup Check - skip PR tests when covered by push pipeline (push) Successful in 1s
CI/CD Pipeline / Dedup Check - skip PR tests when covered by push pipeline (pull_request) Successful in 3s
CI/CD Pipeline / Check if frontend-only change (pull_request) Successful in 4m51s
Preview Deploy / Deploy Preview Environment (pull_request) Successful in 5m35s
CI/CD Pipeline / Validate - Migration (alembic) (push) Successful in 5m34s
CI/CD Pipeline / Validate - Type Check (mypy) (push) Successful in 6m15s
AI Code Review / AI Code Review (pull_request) Failing after 6m40s
CI/CD Pipeline / Check push changed paths (push) Successful in 7m8s
PR Automation / Auto Approve on CI Green (pull_request) Successful in 8m31s
CI/CD Pipeline / PR Build API Image (pull_request) Successful in 1m54s
CI/CD Pipeline / PR Build Worker Image (pull_request) Successful in 1m46s
CI/CD Pipeline / Build Staging API Image (push) Successful in 1m46s
CI/CD Pipeline / CI Gate (pull_request) Successful in 30s
CI/CD Pipeline / Build Staging Worker Image (push) Successful in 1m36s
CI/CD Pipeline / Retag skipped Staging Web Image (push) Successful in 34s
CI/CD Pipeline / Frontend Unit Tests (push) Successful in 10m14s
CI/CD Pipeline / Deploy Staging (Watchtower auto-deploy) (push) Successful in 1m14s
CI/CD Pipeline / Validate - Code Quality (push) Successful in 12m59s
CI/CD Pipeline / ACR Image Cleanup (push) Successful in 2m31s
CI/CD Pipeline / Staging API Integration Tests (push) Successful in 4m14s
CI/CD Pipeline / Staging E2E Tests (push) Successful in 6m14s
CI/CD Pipeline / Integration Tests (push) Successful in 5m41s
CI/CD Pipeline / Unit Tests (push) Successful in 19m12s
CI/CD Pipeline / Production Browser E2E (push) Failing after 382h9m8s
CI/CD Pipeline / Deploy Production (push) Failing after 382h9m9s
CI/CD Pipeline / CI Gate (push) Failing after 382h9m10s
CI/CD Pipeline / Build Production API Image (push) Failing after 382h9m10s
CI/CD Pipeline / Build Production Worker Image (push) Failing after 382h9m10s
CI/CD Pipeline / Retag skipped Staging Worker Image (push) Failing after 382h17m52s
CI/CD Pipeline / Production Browser E2E (pull_request) Failing after 382h18m18s
CI/CD Pipeline / Retag skipped Staging API Image (push) Failing after 382h17m53s
CI/CD Pipeline / Canary Release to Production (pull_request) Failing after 382h18m26s
CI/CD Pipeline / Build Production Worker Image (pull_request) Failing after 382h19m12s
CI/CD Pipeline / Deploy Production (pull_request) Failing after 382h18m28s
CI/CD Pipeline / Build Staging Web Image (push) Failing after 382h19m32s
CI/CD Pipeline / ACR Image Cleanup (pull_request) Failing after 382h19m46s
CI/CD Pipeline / Build Production Web Image (pull_request) Failing after 382h19m14s
CI/CD Pipeline / Staging E2E Tests (pull_request) Failing after 382h19m50s
CI/CD Pipeline / Build Production API Image (pull_request) Failing after 382h19m16s
CI/CD Pipeline / PR Build Web Image (pull_request) Failing after 382h20m18s
CI/CD Pipeline / Frontend Unit Tests (pull_request) Failing after 382h20m39s
CI/CD Pipeline / Unit Tests (pull_request) Failing after 382h20m45s
CI/CD Pipeline / Frontend Lint (pull_request) Failing after 382h20m41s
CI/CD Pipeline / Deploy Staging (Watchtower auto-deploy) (pull_request) Failing after 382h21m40s
CI/CD Pipeline / Retag skipped Staging Worker Image (pull_request) Failing after 382h25m18s
CI/CD Pipeline / Retag skipped Staging API Image (pull_request) Failing after 382h25m22s
CI/CD Pipeline / Validate - Migration (alembic) (pull_request) Failing after 382h25m52s
CI/CD Pipeline / Validate - Code Quality (pull_request) Failing after 382h25m56s
CI/CD Pipeline / Build Staging Worker Image (pull_request) Failing after 382h25m58s
CI/CD Pipeline / PR Build Worker Image (push) Failing after 382h26m4s
CI/CD Pipeline / Build Staging Web Image (pull_request) Failing after 382h26m0s
CI/CD Pipeline / Build Staging API Image (pull_request) Failing after 382h26m2s
CI/CD Pipeline / PR Build Web Image (push) Failing after 382h26m6s
CI/CD Pipeline / Frontend Lint (push) Failing after 382h27m31s
PR Automation / Auto Merge on CI Green + Approved (pull_request) Failing after 382h28m27s
CI/CD Pipeline / Check push changed paths (pull_request) Failing after 382h28m28s
CI/CD Pipeline / Check if frontend-only change (push) Failing after 382h28m29s
CI/CD Pipeline / Canary Release to Production (push) Failing after 382h43m22s
CI/CD Pipeline / Build Production Web Image (push) Failing after 382h43m22s
CI/CD Pipeline / Staging API Integration Tests (pull_request) Failing after 382h54m0s
CI/CD Pipeline / Integration Tests (pull_request) Failing after 382h54m55s
CI/CD Pipeline / Retag skipped Staging Web Image (pull_request) Failing after 382h59m32s
CI/CD Pipeline / Validate - Type Check (mypy) (pull_request) Failing after 383h0m6s
CI/CD Pipeline / PR Build API Image (push) Failing after 383h0m20s
Co-authored-by: xiaoxia <dev@xiaoxiajianji.com>
Co-committed-by: xiaoxia <dev@xiaoxiajianji.com>
2026-08-31 16:56:52 +08:00
CI Bot 1b19e17cb7 fix: AI Code Review 澄清注释 - job_id是方法参数 + thumbnail_url通过构造函数返回
CI/CD Pipeline / Check if frontend-only change (pull_request) Successful in 2m29s
Preview Deploy / Deploy Preview Environment (pull_request) Successful in 3m15s
CI/CD Pipeline / PR Build Worker Image (pull_request) Successful in 1m45s
CI/CD Pipeline / PR Build API Image (pull_request) Successful in 1m49s
CI/CD Pipeline / Validate - Type Check (mypy) (pull_request) Successful in 4m21s
PR Automation / Auto Merge on CI Green + Approved (pull_request) Successful in 4m24s
CI/CD Pipeline / Validate - Migration (alembic) (pull_request) Successful in 4m38s
AI Code Review / AI Code Review (pull_request) Successful in 4m57s
PR Automation / Auto Approve on CI Green (pull_request) Successful in 5m39s
CI/CD Pipeline / Validate - Code Quality (pull_request) Successful in 8m20s
CI/CD Pipeline / Unit Tests (pull_request) Successful in 5m50s
CI/CD Pipeline / Integration Tests (pull_request) Successful in 4m0s
CI/CD Pipeline / CI Gate (pull_request) Successful in 27s
Preview Cleanup / Cleanup Preview Environment (pull_request) Successful in 4m21s
ACR Cleanup / ACR Image Cleanup (pull_request_target) Successful in 4m34s
CI/CD Pipeline / Production Browser E2E (pull_request) Failing after 455h29m52s
CI/CD Pipeline / Build Production Web Image (pull_request) Failing after 455h29m53s
CI/CD Pipeline / Canary Release to Production (pull_request) Failing after 455h29m52s
CI/CD Pipeline / Build Production API Image (pull_request) Failing after 455h29m54s
CI/CD Pipeline / Deploy Production (pull_request) Failing after 455h29m52s
CI/CD Pipeline / Frontend Unit Tests (pull_request) Failing after 455h35m43s
CI/CD Pipeline / Frontend Lint (pull_request) Failing after 455h35m44s
CI/CD Pipeline / Deploy Staging (Watchtower auto-deploy) (pull_request) Failing after 455h38m13s
CI/CD Pipeline / ACR Image Cleanup (pull_request) Failing after 455h38m9s
CI/CD Pipeline / Build Staging Worker Image (pull_request) Failing after 455h38m15s
CI/CD Pipeline / Staging API Integration Tests (pull_request) Failing after 455h38m9s
CI/CD Pipeline / Build Staging API Image (pull_request) Failing after 455h38m15s
CI/CD Pipeline / Build Production Worker Image (pull_request) Failing after 456h3m54s
CI/CD Pipeline / PR Build Web Image (pull_request) Failing after 456h9m44s
CI/CD Pipeline / Staging E2E Tests (pull_request) Failing after 456h12m12s
CI/CD Pipeline / Build Staging Web Image (pull_request) Failing after 456h12m16s
2026-08-28 15:47:28 +08:00
CI Bot 5a9e3fdb5e fix: thumbnail_url未写入generated_videos表 + 缩略图存储key避免覆盖
CI/CD Pipeline / Check if frontend-only change (pull_request) Successful in 3m37s
Preview Deploy / Deploy Preview Environment (pull_request) Successful in 4m18s
CI/CD Pipeline / Validate - Migration (alembic) (pull_request) Successful in 4m43s
CI/CD Pipeline / Validate - Type Check (mypy) (pull_request) Successful in 4m43s
PR Automation / Auto Merge on CI Green + Approved (pull_request) Successful in 4m46s
AI Code Review / AI Code Review (pull_request) Failing after 4m51s
CI/CD Pipeline / PR Build API Image (pull_request) Successful in 1m42s
CI/CD Pipeline / PR Build Worker Image (pull_request) Successful in 1m5s
PR Automation / Auto Approve on CI Green (pull_request) Successful in 6m56s
CI/CD Pipeline / Validate - Code Quality (pull_request) Has been cancelled
CI/CD Pipeline / Unit Tests (pull_request) Has been cancelled
CI/CD Pipeline / 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 / Canary Release to Production (pull_request) Has been cancelled
CI/CD Pipeline / CI Gate (pull_request) Has been cancelled
CI/CD Pipeline / PR Build Web Image (pull_request) Failing after 455h50m46s
CI/CD Pipeline / Frontend Lint (pull_request) Failing after 455h51m29s
CI/CD Pipeline / ACR Image Cleanup (pull_request) Failing after 455h51m30s
CI/CD Pipeline / Build Staging Worker Image (pull_request) Failing after 455h55m6s
CI/CD Pipeline / Staging API Integration Tests (pull_request) Failing after 455h51m32s
CI/CD Pipeline / Build Staging Web Image (pull_request) Failing after 455h55m8s
CI/CD Pipeline / Staging E2E Tests (pull_request) Failing after 455h51m34s
CI/CD Pipeline / Build Staging API Image (pull_request) Failing after 455h55m8s
CI/CD Pipeline / Frontend Unit Tests (pull_request) Failing after 456h25m28s
CI/CD Pipeline / Deploy Staging (Watchtower auto-deploy) (pull_request) Failing after 456h25m37s
Bug 1: render_adapter渲染完成后thumbnail_url未传递给create_video_record_and_dedup
- _render_from_edit_plan 补充返回 result.thumbnail_url
- _upload_and_record 新增 thumbnail_url 参数并透传
- generate_video 调用处同步更新

Bug 2: 缩略图存储key rendered/{plan_id}/thumbnail.jpg 导致同plan多次渲染互相覆盖
- 改为 rendered/{plan_id}/thumbnails/{task_id}.jpg
2026-08-28 15:30:09 +08:00
xiaoxia 608e200c0c fix: 恢复被误回退的后端文件(#1519 #1520)
CI/CD Pipeline / Validate - Migration (alembic) (push) Successful in 2m54s
CI/CD Pipeline / Check if frontend-only change (pull_request) Successful in 1m35s
CI/CD Pipeline / Build Staging API Image (push) Successful in 3m39s
CI/CD Pipeline / Validate - Type Check (mypy) (push) Successful in 4m14s
CI/CD Pipeline / Build Staging Web Image (push) Successful in 4m32s
CI/CD Pipeline / Validate - Type Check (mypy) (pull_request) Successful in 2m50s
CI/CD Pipeline / Build Staging Worker Image (push) Successful in 3m2s
Preview Deploy / Deploy Preview Environment (pull_request) Successful in 3m41s
CI/CD Pipeline / Validate - Migration (alembic) (pull_request) Successful in 4m8s
CI/CD Pipeline / Validate - Code Quality (push) Successful in 8m25s
AI Code Review / AI Code Review (pull_request) Failing after 6m41s
PR Automation / Auto Approve on CI Green (pull_request) Successful in 6m43s
CI/CD Pipeline / PR Build API Image (pull_request) Successful in 2m22s
CI/CD Pipeline / PR Build Worker Image (pull_request) Successful in 2m11s
CI/CD Pipeline / Deploy Staging (Watchtower auto-deploy) (push) Successful in 1m34s
CI/CD Pipeline / Frontend Unit Tests (push) Successful in 7m15s
CI/CD Pipeline / Staging E2E Tests (push) Failing after 2m8s
CI/CD Pipeline / ACR Image Cleanup (push) Successful in 2m16s
CI/CD Pipeline / Integration Tests (push) Successful in 4m59s
CI/CD Pipeline / Validate - Code Quality (pull_request) Successful in 13m50s
CI/CD Pipeline / Staging API Integration Tests (push) Failing after 4m12s
CI/CD Pipeline / Unit Tests (push) Has been cancelled
CI/CD Pipeline / Build Production API Image (push) Has been cancelled
CI/CD Pipeline / Build Production Web Image (push) Has been cancelled
CI/CD Pipeline / Build Production Worker Image (push) Has been cancelled
CI/CD Pipeline / Deploy Production (push) Has been cancelled
CI/CD Pipeline / Production Browser E2E (push) Has been cancelled
CI/CD Pipeline / Canary Release to Production (push) Has been cancelled
CI/CD Pipeline / CI Gate (push) Has been cancelled
CI/CD Pipeline / Unit Tests (pull_request) Has been cancelled
CI/CD Pipeline / 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 / Canary Release to Production (pull_request) Has been cancelled
CI/CD Pipeline / CI Gate (pull_request) Has been cancelled
CI/CD Pipeline / ACR Image Cleanup (pull_request) Failing after 480h7m2s
CI/CD Pipeline / Staging API Integration Tests (pull_request) Failing after 480h7m4s
CI/CD Pipeline / Staging E2E Tests (pull_request) Failing after 480h7m6s
CI/CD Pipeline / Deploy Staging (Watchtower auto-deploy) (pull_request) Failing after 480h7m27s
CI/CD Pipeline / PR Build Web Image (pull_request) Failing after 480h9m34s
CI/CD Pipeline / Frontend Unit Tests (pull_request) Failing after 480h10m4s
CI/CD Pipeline / Frontend Lint (pull_request) Failing after 480h10m5s
CI/CD Pipeline / PR Build Worker Image (push) Failing after 480h10m19s
CI/CD Pipeline / Frontend Lint (push) Failing after 480h11m13s
CI/CD Pipeline / PR Build Web Image (push) Failing after 480h10m21s
PR Automation / Auto Merge on CI Green + Approved (pull_request) Failing after 480h14m8s
CI/CD Pipeline / Build Staging Worker Image (pull_request) Failing after 480h14m11s
CI/CD Pipeline / Build Staging API Image (pull_request) Failing after 480h14m15s
CI/CD Pipeline / Check if frontend-only change (push) Failing after 480h18m31s
CI/CD Pipeline / PR Build API Image (push) Failing after 480h44m22s
CI/CD Pipeline / Build Staging Web Image (pull_request) Failing after 480h48m12s
2026-08-27 15:06:00 +08:00
xiaoxia b12bb24d08 fix(ui): 模板选择预览条缩短+素材列表改为竖屏9:16卡片网格 (#1521)
CI/CD Pipeline / Check if frontend-only change (push) Has been cancelled
CI/CD Pipeline / Validate - Code Quality (push) Has been cancelled
CI/CD Pipeline / Validate - Type Check (mypy) (push) Has been cancelled
CI/CD Pipeline / Validate - Migration (alembic) (push) Has been cancelled
CI/CD Pipeline / Unit Tests (push) Has been cancelled
CI/CD Pipeline / Integration Tests (push) Has been cancelled
CI/CD Pipeline / Frontend Lint (push) Has been cancelled
CI/CD Pipeline / Frontend Unit Tests (push) Has been cancelled
CI/CD Pipeline / PR Build API Image (push) Has been cancelled
CI/CD Pipeline / PR Build Web Image (push) Has been cancelled
CI/CD Pipeline / PR Build Worker Image (push) Has been cancelled
CI/CD Pipeline / Build Staging API Image (push) Has been cancelled
CI/CD Pipeline / Build Staging Web Image (push) Has been cancelled
CI/CD Pipeline / Build Staging Worker Image (push) Has been cancelled
CI/CD Pipeline / Deploy Staging (Watchtower auto-deploy) (push) Has been cancelled
CI/CD Pipeline / Staging E2E Tests (push) Has been cancelled
CI/CD Pipeline / Staging API Integration Tests (push) Has been cancelled
CI/CD Pipeline / Build Production API Image (push) Has been cancelled
CI/CD Pipeline / Build Production Web Image (push) Has been cancelled
CI/CD Pipeline / Build Production Worker Image (push) Has been cancelled
CI/CD Pipeline / Deploy Production (push) Has been cancelled
CI/CD Pipeline / Production Browser E2E (push) Has been cancelled
CI/CD Pipeline / ACR Image Cleanup (push) Has been cancelled
CI/CD Pipeline / Canary Release to Production (push) Has been cancelled
CI/CD Pipeline / CI Gate (push) Has been cancelled
CI/CD Pipeline / Check if frontend-only change (pull_request) Has been cancelled
CI/CD Pipeline / Validate - Code Quality (pull_request) Has been cancelled
CI/CD Pipeline / Validate - Type Check (mypy) (pull_request) Has been cancelled
CI/CD Pipeline / Validate - Migration (alembic) (pull_request) Has been cancelled
CI/CD Pipeline / Unit Tests (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 API Image (pull_request) Has been cancelled
CI/CD Pipeline / PR Build Web Image (pull_request) Has been cancelled
CI/CD Pipeline / PR Build Worker Image (pull_request) Has been cancelled
CI/CD Pipeline / Build Staging API Image (pull_request) Has been cancelled
CI/CD Pipeline / Build Staging Web Image (pull_request) Has been cancelled
CI/CD Pipeline / Build Staging Worker Image (pull_request) Has been cancelled
CI/CD Pipeline / Deploy Staging (Watchtower auto-deploy) (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
AI Code Review / AI Code Review (pull_request) Has been cancelled
PR Automation / Auto Approve on CI Green (pull_request) Has been cancelled
PR Automation / Auto Merge on CI Green + Approved (pull_request) Has been cancelled
Preview Deploy / Deploy Preview Environment (pull_request) Has been cancelled
2026-08-27 15:04:17 +08:00
xiaoxia 7cdd06802d fix: ensure cover title matches current video title (#1520)
CI/CD Pipeline / Check if frontend-only change (pull_request) Successful in 2m27s
CI/CD Pipeline / Validate - Type Check (mypy) (push) Successful in 4m16s
CI/CD Pipeline / Build Staging API Image (push) Successful in 4m36s
CI/CD Pipeline / Validate - Migration (alembic) (push) Successful in 4m50s
CI/CD Pipeline / Build Staging Worker Image (push) Successful in 1m32s
CI/CD Pipeline / Build Staging Web Image (push) Successful in 3m9s
CI/CD Pipeline / Validate - Type Check (mypy) (pull_request) Successful in 3m35s
CI/CD Pipeline / Validate - Migration (alembic) (pull_request) Successful in 3m24s
CI/CD Pipeline / Frontend Unit Tests (push) Successful in 8m47s
AI Code Review / AI Code Review (pull_request) Failing after 4m1s
Preview Deploy / Deploy Preview Environment (pull_request) Successful in 2m42s
PR Automation / Auto Approve on CI Green (pull_request) Successful in 4m30s
CI/CD Pipeline / PR Build API Image (pull_request) Successful in 1m14s
CI/CD Pipeline / PR Build Worker Image (pull_request) Successful in 1m12s
CI/CD Pipeline / Validate - Code Quality (push) Successful in 10m43s
CI/CD Pipeline / Deploy Staging (Watchtower auto-deploy) (push) Successful in 1m23s
CI/CD Pipeline / Validate - Code Quality (pull_request) Successful in 8m39s
CI/CD Pipeline / ACR Image Cleanup (push) Successful in 2m12s
CI/CD Pipeline / Staging E2E Tests (push) Successful in 3m18s
CI/CD Pipeline / Staging API Integration Tests (push) Successful in 4m22s
CI/CD Pipeline / Integration Tests (push) Successful in 6m4s
CI/CD Pipeline / Unit Tests (push) Successful in 16m55s
CI/CD Pipeline / Build Production API Image (push) Has been cancelled
CI/CD Pipeline / Build Production Web Image (push) Has been cancelled
CI/CD Pipeline / Build Production Worker Image (push) Has been cancelled
CI/CD Pipeline / Deploy Production (push) Has been cancelled
CI/CD Pipeline / Production Browser E2E (push) Has been cancelled
CI/CD Pipeline / Canary Release to Production (push) Has been cancelled
CI/CD Pipeline / CI Gate (push) Has been cancelled
CI/CD Pipeline / Unit Tests (pull_request) Has been cancelled
CI/CD Pipeline / 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 / Canary Release to Production (pull_request) Has been cancelled
CI/CD Pipeline / CI Gate (pull_request) Has been cancelled
CI/CD Pipeline / ACR Image Cleanup (pull_request) Failing after 480h31m28s
CI/CD Pipeline / Staging API Integration Tests (pull_request) Failing after 480h31m30s
CI/CD Pipeline / Staging E2E Tests (pull_request) Failing after 480h31m32s
CI/CD Pipeline / Deploy Staging (Watchtower auto-deploy) (pull_request) Failing after 480h32m31s
CI/CD Pipeline / Frontend Lint (pull_request) Failing after 480h33m8s
CI/CD Pipeline / PR Build Web Image (pull_request) Failing after 480h32m53s
PR Automation / Auto Merge on CI Green + Approved (pull_request) Failing after 480h35m37s
CI/CD Pipeline / Build Staging Worker Image (pull_request) Failing after 480h37m12s
CI/CD Pipeline / Build Staging API Image (pull_request) Failing after 480h37m16s
CI/CD Pipeline / PR Build Worker Image (push) Failing after 480h37m24s
CI/CD Pipeline / PR Build API Image (push) Failing after 480h37m28s
CI/CD Pipeline / Frontend Lint (push) Failing after 480h42m4s
CI/CD Pipeline / Check if frontend-only change (push) Failing after 480h42m6s
CI/CD Pipeline / Frontend Unit Tests (pull_request) Failing after 481h7m5s
CI/CD Pipeline / Build Staging Web Image (pull_request) Failing after 481h11m13s
CI/CD Pipeline / PR Build Web Image (push) Failing after 481h11m25s
2026-08-27 14:43:42 +08:00
CI Bot 850559505f style: auto-format with black + isort + prettier [skip ci-format-check]
CI/CD Pipeline / Check if frontend-only change (pull_request) Successful in 1m2s
CI/CD Pipeline / Build Staging API Image (push) Successful in 1m4s
CI/CD Pipeline / Build Staging Worker Image (push) Successful in 1m19s
CI/CD Pipeline / Validate - Code Quality (push) Has been cancelled
CI/CD Pipeline / Validate - Type Check (mypy) (push) Has been cancelled
CI/CD Pipeline / Validate - Migration (alembic) (push) Has been cancelled
CI/CD Pipeline / Unit Tests (push) Has been cancelled
CI/CD Pipeline / Integration Tests (push) Has been cancelled
CI/CD Pipeline / Frontend Unit Tests (push) Has been cancelled
CI/CD Pipeline / Build Staging Web Image (push) Has been cancelled
CI/CD Pipeline / Deploy Staging (Watchtower auto-deploy) (push) Has been cancelled
CI/CD Pipeline / Staging E2E Tests (push) Has been cancelled
CI/CD Pipeline / Staging API Integration Tests (push) Has been cancelled
CI/CD Pipeline / Build Production API Image (push) Has been cancelled
CI/CD Pipeline / Build Production Web Image (push) Has been cancelled
CI/CD Pipeline / Build Production Worker Image (push) Has been cancelled
CI/CD Pipeline / Deploy Production (push) Has been cancelled
CI/CD Pipeline / Production Browser E2E (push) Has been cancelled
CI/CD Pipeline / ACR Image Cleanup (push) Has been cancelled
CI/CD Pipeline / Canary Release to Production (push) Has been cancelled
CI/CD Pipeline / CI Gate (push) Has been cancelled
CI/CD Pipeline / PR Build Worker Image (pull_request) Successful in 52s
CI/CD Pipeline / PR Build API Image (pull_request) Successful in 54s
CI/CD Pipeline / Validate - Type Check (mypy) (pull_request) Successful in 3m11s
CI/CD Pipeline / Validate - Migration (alembic) (pull_request) Successful in 3m14s
Preview Deploy / Deploy Preview Environment (pull_request) Successful in 2m0s
CI/CD Pipeline / Validate - Code Quality (pull_request) Failing after 3m56s
PR Automation / Auto Approve on CI Green (pull_request) Successful in 4m15s
AI Code Review / AI Code Review (pull_request) Successful in 8m52s
CI/CD Pipeline / Integration Tests (pull_request) Successful in 5m24s
CI/CD Pipeline / Unit Tests (pull_request) Failing after 13m17s
CI/CD Pipeline / CI Gate (pull_request) Failing after 6s
CI/CD Pipeline / Production Browser E2E (pull_request) Failing after 501h41m32s
CI/CD Pipeline / Deploy Production (pull_request) Failing after 501h41m33s
CI/CD Pipeline / Build Production Worker Image (pull_request) Failing after 501h41m34s
CI/CD Pipeline / Build Production Web Image (pull_request) Failing after 501h41m34s
CI/CD Pipeline / Build Production API Image (pull_request) Failing after 501h41m34s
CI/CD Pipeline / ACR Image Cleanup (pull_request) Failing after 501h52m54s
CI/CD Pipeline / Staging E2E Tests (pull_request) Failing after 501h52m58s
CI/CD Pipeline / Deploy Staging (Watchtower auto-deploy) (pull_request) Failing after 501h54m51s
CI/CD Pipeline / PR Build Web Image (pull_request) Failing after 501h54m53s
CI/CD Pipeline / Frontend Lint (pull_request) Failing after 501h54m53s
PR Automation / Auto Merge on CI Green + Approved (pull_request) Failing after 501h55m36s
CI/CD Pipeline / PR Build Worker Image (push) Failing after 501h55m43s
CI/CD Pipeline / PR Build API Image (push) Failing after 501h55m47s
CI/CD Pipeline / Build Staging Worker Image (pull_request) Failing after 501h55m49s
CI/CD Pipeline / Build Staging API Image (pull_request) Failing after 501h55m53s
CI/CD Pipeline / Frontend Lint (push) Failing after 501h55m54s
CI/CD Pipeline / Check if frontend-only change (push) Failing after 501h57m0s
CI/CD Pipeline / Canary Release to Production (pull_request) Failing after 502h15m29s
CI/CD Pipeline / Staging API Integration Tests (pull_request) Failing after 502h26m52s
CI/CD Pipeline / Frontend Unit Tests (pull_request) Failing after 502h28m49s
CI/CD Pipeline / PR Build Web Image (push) Failing after 502h29m41s
CI/CD Pipeline / Build Staging Web Image (pull_request) Failing after 502h29m47s
2026-08-26 09:28:53 +00:00
xiaoxia ecbdd49dc1 feat: 素材片段随机起始时间+去重 + MediaKit智能封面抽帧
CI/CD Pipeline / Check if frontend-only change (pull_request) Successful in 1m13s
CI/CD Pipeline / Validate - Migration (alembic) (pull_request) Successful in 2m14s
CI/CD Pipeline / Validate - Type Check (mypy) (pull_request) Successful in 3m24s
CI/CD Pipeline / PR Build Worker Image (pull_request) Successful in 38s
Preview Deploy / Deploy Preview Environment (pull_request) Successful in 2m55s
PR Automation / Auto Approve on CI Green (pull_request) Successful in 3m55s
CI/CD Pipeline / Validate - Code Quality (pull_request) Has been cancelled
CI/CD Pipeline / Unit Tests (pull_request) Has been cancelled
CI/CD Pipeline / Integration Tests (pull_request) Has been cancelled
CI/CD Pipeline / PR Build API Image (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
CI/CD Pipeline / Build Staging Worker Image (push) Successful in 54s
CI/CD Pipeline / Validate - Migration (alembic) (push) Successful in 2m19s
CI/CD Pipeline / Validate - Type Check (mypy) (push) Successful in 2m41s
CI/CD Pipeline / Build Staging Web Image (push) Successful in 2m21s
CI/CD Pipeline / Validate - Code Quality (push) Failing after 5m1s
CI/CD Pipeline / Build Staging API Image (push) Successful in 4m53s
CI/CD Pipeline / Frontend Unit Tests (push) Successful in 5m12s
CI/CD Pipeline / Deploy Staging (Watchtower auto-deploy) (push) Successful in 52s
CI/CD Pipeline / Staging E2E Tests (push) Successful in 1m6s
CI/CD Pipeline / ACR Image Cleanup (push) Successful in 1m23s
CI/CD Pipeline / Integration Tests (push) Successful in 4m2s
CI/CD Pipeline / Staging API Integration Tests (push) Successful in 3m20s
CI/CD Pipeline / Unit Tests (push) Failing after 12m24s
CI/CD Pipeline / Production Browser E2E (push) Failing after 501h41m15s
CI/CD Pipeline / Canary Release to Production (push) Failing after 501h41m15s
CI/CD Pipeline / Build Production Worker Image (push) Failing after 501h41m16s
CI/CD Pipeline / Build Production Web Image (push) Failing after 501h41m17s
CI/CD Pipeline / Build Production API Image (push) Failing after 501h41m17s
CI/CD Pipeline / CI Gate (push) Failing after 501h41m17s
CI/CD Pipeline / PR Build Worker Image (push) Failing after 501h52m48s
CI/CD Pipeline / Frontend Lint (push) Failing after 501h53m40s
CI/CD Pipeline / Check if frontend-only change (push) Failing after 501h54m49s
CI/CD Pipeline / ACR Image Cleanup (pull_request) Failing after 501h58m52s
CI/CD Pipeline / Staging E2E Tests (pull_request) Failing after 501h58m56s
CI/CD Pipeline / Deploy Staging (Watchtower auto-deploy) (pull_request) Failing after 501h58m58s
CI/CD Pipeline / Frontend Unit Tests (pull_request) Failing after 502h0m15s
CI/CD Pipeline / Frontend Lint (pull_request) Failing after 502h0m17s
PR Automation / Auto Merge on CI Green + Approved (pull_request) Failing after 502h1m25s
CI/CD Pipeline / Build Staging Worker Image (pull_request) Failing after 502h1m30s
CI/CD Pipeline / Build Staging Web Image (pull_request) Failing after 502h1m32s
CI/CD Pipeline / Build Staging API Image (pull_request) Failing after 502h1m34s
CI/CD Pipeline / Deploy Production (push) Failing after 502h15m12s
CI/CD Pipeline / PR Build Web Image (push) Failing after 502h26m46s
CI/CD Pipeline / Staging API Integration Tests (pull_request) Failing after 502h32m50s
CI/CD Pipeline / PR Build Web Image (pull_request) Failing after 502h33m35s
CI/CD Pipeline / PR Build API Image (push) Failing after 502h26m48s
## 任务1: 素材片段随机起始时间
- 修改 _calc_random_start_time 增加 used_segments 参数,避开已使用时间段
- 四个分配函数(ONE_TAKE/PIP/VOICE_OVER/VOICE_PIP)各自维护 used_segments
- 同一素材被多个clip使用时,自动记录已用区间,下次随机时避开
- 如果无空间可用,回退到最后已用段之后或缩短时长

## 任务2: MediaKit智能封面抽帧
- 新增 _extract_frames_via_mediakit 函数,上传视频到OSS后调用MediaKit API
- 使用 SceneChange 策略智能选取关键帧
- 失败时自动降级到 ffmpeg 均匀抽帧
- 抽帧后下载帧图、可选叠加标题、上传OSS

## 测试
- 新增 8 个 _calc_random_start_time 单测
- 新增 4 个 distribute_assets 去重逻辑单测
- 新增 4 个 MediaKit 集成单测
- 修复 3 个因字体映射变更的测试断言
2026-08-26 17:22:08 +08:00
xiaoxia ddb1a3544d fix: 混音主视频clip音量滤镜缺失 + 自动换行识别已有\N标记 (#1505)
CI/CD Pipeline / Check if frontend-only change (pull_request) Successful in 1m16s
CI/CD Pipeline / Build Staging Worker Image (push) Successful in 1m45s
CI/CD Pipeline / Validate - Type Check (mypy) (pull_request) Successful in 2m20s
CI/CD Pipeline / Validate - Migration (alembic) (push) Successful in 2m32s
CI/CD Pipeline / Validate - Type Check (mypy) (push) Successful in 2m33s
CI/CD Pipeline / Validate - Migration (alembic) (pull_request) Successful in 2m32s
CI/CD Pipeline / Build Staging Web Image (push) Successful in 4m2s
Preview Deploy / Deploy Preview Environment (pull_request) Successful in 3m5s
PR Automation / Auto Approve on CI Green (pull_request) Successful in 4m5s
AI Code Review / AI Code Review (pull_request) Successful in 4m53s
CI/CD Pipeline / PR Build Worker Image (pull_request) Successful in 35s
CI/CD Pipeline / Validate - Code Quality (push) Successful in 6m45s
CI/CD Pipeline / Build Staging API Image (push) Successful in 7m16s
CI/CD Pipeline / PR Build API Image (pull_request) Successful in 2m25s
CI/CD Pipeline / Deploy Staging (Watchtower auto-deploy) (push) Successful in 50s
CI/CD Pipeline / Frontend Unit Tests (push) Successful in 6m56s
CI/CD Pipeline / Validate - Code Quality (pull_request) Successful in 9m8s
CI/CD Pipeline / Staging E2E Tests (push) Successful in 1m1s
CI/CD Pipeline / ACR Image Cleanup (push) Successful in 1m19s
CI/CD Pipeline / Integration Tests (push) Successful in 3m7s
CI/CD Pipeline / Staging API Integration Tests (push) Successful in 3m14s
CI/CD Pipeline / Integration Tests (pull_request) Successful in 2m25s
CI/CD Pipeline / Unit Tests (push) Successful in 13m8s
CI/CD Pipeline / Unit Tests (pull_request) Successful in 11m21s
CI/CD Pipeline / CI Gate (pull_request) Successful in 9s
CI/CD Pipeline / Production Browser E2E (pull_request) Failing after 518h49m27s
CI/CD Pipeline / Build Production Worker Image (pull_request) Failing after 518h49m28s
CI/CD Pipeline / Build Production Web Image (pull_request) Failing after 518h49m29s
CI/CD Pipeline / Production Browser E2E (push) Failing after 518h50m26s
CI/CD Pipeline / Canary Release to Production (pull_request) Failing after 518h49m27s
CI/CD Pipeline / Build Production Worker Image (push) Failing after 518h50m28s
CI/CD Pipeline / Build Production Web Image (push) Failing after 518h50m28s
CI/CD Pipeline / Build Production API Image (pull_request) Failing after 518h49m29s
CI/CD Pipeline / CI Gate (push) Failing after 518h50m28s
CI/CD Pipeline / Canary Release to Production (push) Failing after 518h50m27s
CI/CD Pipeline / ACR Image Cleanup (pull_request) Failing after 518h58m51s
CI/CD Pipeline / Staging E2E Tests (pull_request) Failing after 518h58m55s
CI/CD Pipeline / Deploy Staging (Watchtower auto-deploy) (pull_request) Failing after 518h58m57s
CI/CD Pipeline / Frontend Unit Tests (pull_request) Failing after 519h0m0s
CI/CD Pipeline / Frontend Lint (pull_request) Failing after 519h0m2s
PR Automation / Auto Merge on CI Green + Approved (pull_request) Failing after 519h2m31s
CI/CD Pipeline / PR Build Worker Image (push) Failing after 519h3m4s
CI/CD Pipeline / PR Build Web Image (push) Failing after 519h3m6s
CI/CD Pipeline / Build Staging Worker Image (pull_request) Failing after 519h3m35s
CI/CD Pipeline / PR Build API Image (push) Failing after 519h3m8s
CI/CD Pipeline / Check if frontend-only change (push) Failing after 519h4m55s
CI/CD Pipeline / Frontend Lint (push) Failing after 519h3m35s
CI/CD Pipeline / Build Staging Web Image (pull_request) Failing after 519h3m37s
CI/CD Pipeline / Build Staging API Image (pull_request) Failing after 519h3m39s
CI/CD Pipeline / Deploy Production (pull_request) Failing after 519h23m24s
CI/CD Pipeline / Deploy Production (push) Failing after 519h24m23s
CI/CD Pipeline / Build Production API Image (push) Failing after 519h24m24s
CI/CD Pipeline / Staging API Integration Tests (pull_request) Failing after 519h32m49s
CI/CD Pipeline / PR Build Web Image (pull_request) Failing after 519h33m10s
Co-authored-by: xiaoxia <dev@xiaoxiajianji.com>
Co-committed-by: xiaoxia <dev@xiaoxiajianji.com>
2026-08-26 00:21:00 +08:00
xiaoxia 323bd2da5e fix: 标题/换行 + TTS replace模式静音原音 + 配音素材库静音原音 (#1504)
CI/CD Pipeline / Build Staging Worker Image (push) Successful in 46s
CI/CD Pipeline / Check if frontend-only change (pull_request) Successful in 56s
CI/CD Pipeline / Validate - Migration (alembic) (push) Successful in 2m52s
CI/CD Pipeline / Validate - Type Check (mypy) (push) Successful in 3m7s
CI/CD Pipeline / Validate - Migration (alembic) (pull_request) Successful in 3m2s
CI/CD Pipeline / Validate - Type Check (mypy) (pull_request) Successful in 3m4s
CI/CD Pipeline / PR Build API Image (pull_request) Successful in 29s
CI/CD Pipeline / PR Build Worker Image (pull_request) Successful in 32s
CI/CD Pipeline / Build Staging API Image (push) Successful in 5m38s
CI/CD Pipeline / Build Staging Web Image (push) Successful in 5m38s
Preview Deploy / Deploy Preview Environment (pull_request) Successful in 2m56s
PR Automation / Auto Approve on CI Green (pull_request) Successful in 3m13s
AI Code Review / AI Code Review (pull_request) Successful in 5m25s
CI/CD Pipeline / Deploy Staging (Watchtower auto-deploy) (push) Successful in 55s
CI/CD Pipeline / Staging E2E Tests (push) Successful in 1m16s
CI/CD Pipeline / ACR Image Cleanup (push) Successful in 1m19s
CI/CD Pipeline / Frontend Unit Tests (push) Successful in 7m9s
CI/CD Pipeline / Validate - Code Quality (push) Successful in 9m47s
CI/CD Pipeline / Staging API Integration Tests (push) Successful in 3m28s
CI/CD Pipeline / Validate - Code Quality (pull_request) Successful in 9m40s
CI/CD Pipeline / Integration Tests (push) Successful in 4m40s
CI/CD Pipeline / Unit Tests (push) Successful in 14m37s
CI/CD Pipeline / Integration Tests (pull_request) Successful in 4m58s
CI/CD Pipeline / Unit Tests (pull_request) Successful in 12m59s
CI/CD Pipeline / CI Gate (pull_request) Successful in 7s
CI/CD Pipeline / Production Browser E2E (pull_request) Failing after 520h3m42s
CI/CD Pipeline / Deploy Production (pull_request) Failing after 520h3m43s
CI/CD Pipeline / Build Production Web Image (pull_request) Failing after 520h3m45s
CI/CD Pipeline / Build Production Worker Image (pull_request) Failing after 520h3m44s
CI/CD Pipeline / Build Production API Image (pull_request) Failing after 520h3m45s
CI/CD Pipeline / Production Browser E2E (push) Failing after 520h5m13s
CI/CD Pipeline / Deploy Production (push) Failing after 520h5m15s
CI/CD Pipeline / Build Production Worker Image (push) Failing after 520h5m15s
CI/CD Pipeline / CI Gate (push) Failing after 520h5m16s
CI/CD Pipeline / Build Production API Image (push) Failing after 520h5m16s
CI/CD Pipeline / ACR Image Cleanup (pull_request) Failing after 520h14m43s
CI/CD Pipeline / Staging E2E Tests (pull_request) Failing after 520h14m47s
CI/CD Pipeline / Deploy Staging (Watchtower auto-deploy) (pull_request) Failing after 520h14m49s
CI/CD Pipeline / Frontend Unit Tests (pull_request) Failing after 520h15m56s
CI/CD Pipeline / PR Build Web Image (pull_request) Failing after 520h15m24s
CI/CD Pipeline / Frontend Lint (pull_request) Failing after 520h15m57s
PR Automation / Auto Merge on CI Green + Approved (pull_request) Failing after 520h16m55s
CI/CD Pipeline / Build Staging Worker Image (pull_request) Failing after 520h16m57s
CI/CD Pipeline / Build Staging Web Image (pull_request) Failing after 520h17m0s
CI/CD Pipeline / Build Staging API Image (pull_request) Failing after 520h17m2s
CI/CD Pipeline / PR Build Worker Image (push) Failing after 520h19m4s
CI/CD Pipeline / PR Build Web Image (push) Failing after 520h19m6s
CI/CD Pipeline / PR Build API Image (push) Failing after 520h19m8s
CI/CD Pipeline / Frontend Lint (push) Failing after 520h19m10s
CI/CD Pipeline / Check if frontend-only change (push) Failing after 520h19m56s
CI/CD Pipeline / Canary Release to Production (pull_request) Failing after 520h37m39s
CI/CD Pipeline / Canary Release to Production (push) Failing after 520h39m10s
CI/CD Pipeline / Build Production Web Image (push) Failing after 520h39m12s
CI/CD Pipeline / Staging API Integration Tests (pull_request) Failing after 520h48m41s
Co-authored-by: xiaoxia <dev@xiaoxiajianji.com>
Co-committed-by: xiaoxia <dev@xiaoxiajianji.com>
2026-08-25 23:06:00 +08:00
xiaoxia 3af65c2743 fix: 渲染产物临时目录不在render_plan中提前清理,改由调用方上传后清理 (#1484)
CI/CD Pipeline / Check if frontend-only change (pull_request) Successful in 1m4s
CI/CD Pipeline / Build Staging Worker Image (push) Successful in 1m22s
CI/CD Pipeline / Validate - Migration (alembic) (pull_request) Successful in 3m2s
CI/CD Pipeline / Build Staging Web Image (push) Successful in 3m16s
CI/CD Pipeline / Validate - Migration (alembic) (push) Successful in 3m25s
CI/CD Pipeline / Validate - Type Check (mypy) (push) Successful in 3m28s
CI/CD Pipeline / Validate - Type Check (mypy) (pull_request) Successful in 3m55s
CI/CD Pipeline / PR Build API Image (pull_request) Successful in 30s
AI Code Review / AI Code Review (pull_request) Failing after 2m48s
CI/CD Pipeline / PR Build Worker Image (pull_request) Successful in 34s
CI/CD Pipeline / Build Staging API Image (push) Successful in 5m7s
PR Automation / Auto Approve on CI Green (pull_request) Successful in 3m53s
CI/CD Pipeline / Deploy Staging (Watchtower auto-deploy) (push) Successful in 1m1s
Preview Deploy / Deploy Preview Environment (pull_request) Successful in 3m9s
CI/CD Pipeline / ACR Image Cleanup (push) Successful in 1m17s
CI/CD Pipeline / Frontend Unit Tests (push) Successful in 7m0s
CI/CD Pipeline / Staging E2E Tests (push) Successful in 2m27s
CI/CD Pipeline / Staging API Integration Tests (push) Successful in 3m26s
CI/CD Pipeline / Validate - Code Quality (pull_request) Successful in 12m19s
CI/CD Pipeline / Validate - Code Quality (push) Successful in 12m24s
CI/CD Pipeline / Unit Tests (push) Successful in 14m44s
CI/CD Pipeline / Unit Tests (pull_request) Successful in 13m38s
CI/CD Pipeline / Integration Tests (push) Successful in 5m53s
CI/CD Pipeline / Integration Tests (pull_request) Successful in 5m58s
CI/CD Pipeline / CI Gate (pull_request) Successful in 6s
CI/CD Pipeline / CI Gate (push) Failing after 545h46m41s
CI/CD Pipeline / Production Browser E2E (pull_request) Failing after 545h48m3s
CI/CD Pipeline / Build Production Web Image (pull_request) Failing after 545h48m6s
CI/CD Pipeline / Canary Release to Production (pull_request) Failing after 545h48m4s
CI/CD Pipeline / Build Production API Image (pull_request) Failing after 545h48m6s
CI/CD Pipeline / Deploy Production (pull_request) Failing after 545h48m4s
CI/CD Pipeline / Production Browser E2E (push) Failing after 545h49m8s
CI/CD Pipeline / Build Production Web Image (push) Failing after 545h49m10s
CI/CD Pipeline / Canary Release to Production (push) Failing after 545h49m9s
CI/CD Pipeline / Build Production API Image (push) Failing after 545h49m10s
CI/CD Pipeline / Deploy Production (push) Failing after 545h49m9s
CI/CD Pipeline / ACR Image Cleanup (pull_request) Failing after 546h0m39s
CI/CD Pipeline / Staging E2E Tests (pull_request) Failing after 546h0m43s
CI/CD Pipeline / Deploy Staging (Watchtower auto-deploy) (pull_request) Failing after 546h0m45s
CI/CD Pipeline / PR Build Web Image (pull_request) Failing after 546h1m2s
CI/CD Pipeline / Frontend Lint (pull_request) Failing after 546h1m36s
PR Automation / Auto Merge on CI Green + Approved (pull_request) Failing after 546h1m58s
CI/CD Pipeline / PR Build Worker Image (push) Failing after 546h3m35s
CI/CD Pipeline / PR Build API Image (push) Failing after 546h3m37s
CI/CD Pipeline / Build Staging Worker Image (pull_request) Failing after 546h3m37s
CI/CD Pipeline / Build Staging API Image (pull_request) Failing after 546h3m39s
CI/CD Pipeline / Frontend Lint (push) Failing after 546h3m48s
CI/CD Pipeline / Check if frontend-only change (push) Failing after 546h5m2s
CI/CD Pipeline / Build Production Worker Image (pull_request) Failing after 546h21m58s
CI/CD Pipeline / Build Production Worker Image (push) Failing after 546h23m2s
CI/CD Pipeline / Staging API Integration Tests (pull_request) Failing after 546h34m34s
CI/CD Pipeline / Frontend Unit Tests (pull_request) Failing after 546h35m27s
CI/CD Pipeline / PR Build Web Image (push) Failing after 546h37m28s
CI/CD Pipeline / Build Staging Web Image (pull_request) Failing after 546h37m32s
Co-authored-by: xiaoxia <dev@xiaoxiajianji.com>
Co-committed-by: xiaoxia <dev@xiaoxiajianji.com>
2026-08-24 21:21:00 +08:00
xiaoxia 61770cd4e4 fix(worker): render_plan 保留视频原声并尊重每clip音量 (#1474)
CI/CD Pipeline / Check if frontend-only change (pull_request) Successful in 1m12s
CI/CD Pipeline / Build Staging Worker Image (push) Successful in 1m40s
CI/CD Pipeline / Validate - Migration (alembic) (pull_request) Successful in 3m4s
CI/CD Pipeline / Validate - Migration (alembic) (push) Successful in 3m8s
CI/CD Pipeline / Validate - Type Check (mypy) (push) Successful in 3m9s
CI/CD Pipeline / Validate - Type Check (mypy) (pull_request) Successful in 3m10s
CI/CD Pipeline / Build Staging API Image (push) Successful in 3m28s
AI Code Review / AI Code Review (pull_request) Failing after 2m17s
CI/CD Pipeline / PR Build API Image (pull_request) Successful in 35s
CI/CD Pipeline / Build Staging Web Image (push) Successful in 4m34s
CI/CD Pipeline / PR Build Worker Image (pull_request) Successful in 38s
Preview Deploy / Deploy Preview Environment (pull_request) Successful in 2m31s
PR Automation / Auto Approve on CI Green (pull_request) Successful in 4m3s
CI/CD Pipeline / Deploy Staging (Watchtower auto-deploy) (push) Successful in 1m11s
CI/CD Pipeline / Validate - Code Quality (push) Successful in 6m47s
CI/CD Pipeline / ACR Image Cleanup (push) Successful in 1m15s
CI/CD Pipeline / Validate - Code Quality (pull_request) Successful in 7m47s
CI/CD Pipeline / Frontend Unit Tests (push) Successful in 6m38s
CI/CD Pipeline / Staging E2E Tests (push) Successful in 2m41s
CI/CD Pipeline / Staging API Integration Tests (push) Successful in 3m46s
CI/CD Pipeline / Integration Tests (push) Successful in 3m4s
CI/CD Pipeline / Integration Tests (pull_request) Successful in 3m12s
CI/CD Pipeline / Unit Tests (push) Failing after 13m33s
CI/CD Pipeline / Unit Tests (pull_request) Failing after 11m30s
CI/CD Pipeline / CI Gate (pull_request) Failing after 10s
CI/CD Pipeline / Production Browser E2E (pull_request) Failing after 565h55m23s
CI/CD Pipeline / Canary Release to Production (pull_request) Failing after 565h55m24s
CI/CD Pipeline / Build Production Web Image (pull_request) Failing after 565h55m26s
CI/CD Pipeline / Build Production API Image (pull_request) Failing after 565h55m26s
CI/CD Pipeline / Deploy Production (pull_request) Failing after 565h55m24s
CI/CD Pipeline / Canary Release to Production (push) Failing after 565h55m58s
CI/CD Pipeline / Production Browser E2E (push) Failing after 565h55m58s
CI/CD Pipeline / Deploy Production (push) Failing after 565h55m59s
CI/CD Pipeline / Build Production Web Image (push) Failing after 565h56m0s
CI/CD Pipeline / Build Production API Image (push) Failing after 565h56m1s
CI/CD Pipeline / ACR Image Cleanup (pull_request) Failing after 566h5m57s
CI/CD Pipeline / CI Gate (push) Failing after 565h56m2s
CI/CD Pipeline / Staging E2E Tests (pull_request) Failing after 566h6m1s
CI/CD Pipeline / Deploy Staging (Watchtower auto-deploy) (pull_request) Failing after 566h6m3s
CI/CD Pipeline / Frontend Unit Tests (pull_request) Failing after 566h6m56s
CI/CD Pipeline / Frontend Lint (pull_request) Failing after 566h6m57s
PR Automation / Auto Merge on CI Green + Approved (pull_request) Failing after 566h7m1s
CI/CD Pipeline / PR Build Worker Image (push) Failing after 566h8m28s
CI/CD Pipeline / PR Build Web Image (push) Failing after 566h8m30s
CI/CD Pipeline / Build Staging Worker Image (pull_request) Failing after 566h8m34s
CI/CD Pipeline / PR Build API Image (push) Failing after 566h8m32s
CI/CD Pipeline / Frontend Lint (push) Failing after 566h8m54s
CI/CD Pipeline / Build Staging Web Image (pull_request) Failing after 566h8m36s
CI/CD Pipeline / Check if frontend-only change (push) Failing after 566h10m7s
CI/CD Pipeline / Build Staging API Image (pull_request) Failing after 566h8m38s
CI/CD Pipeline / Build Production Worker Image (pull_request) Failing after 566h29m17s
CI/CD Pipeline / Build Production Worker Image (push) Failing after 566h29m51s
CI/CD Pipeline / Staging API Integration Tests (pull_request) Failing after 566h39m50s
CI/CD Pipeline / PR Build Web Image (pull_request) Failing after 566h40m0s
Co-authored-by: xiaoxia <dev@xiaoxiajianji.com>
Co-committed-by: xiaoxia <dev@xiaoxiajianji.com>
2026-08-24 01:16:00 +08:00
xiaoxia b4e3bb0fe7 refactor(worker): generate_video直接读取edit_plan_clips渲染 (#1468)
CI/CD Pipeline / Check if frontend-only change (pull_request) Successful in 47s
CI/CD Pipeline / Build Staging Worker Image (push) Successful in 50s
CI/CD Pipeline / Validate - Type Check (mypy) (pull_request) Successful in 3m22s
CI/CD Pipeline / Validate - Migration (alembic) (push) Successful in 3m27s
CI/CD Pipeline / Validate - Type Check (mypy) (push) Successful in 3m31s
CI/CD Pipeline / Build Staging Web Image (push) Successful in 3m40s
CI/CD Pipeline / Validate - Migration (alembic) (pull_request) Successful in 3m4s
AI Code Review / AI Code Review (pull_request) Failing after 3m53s
Preview Deploy / Deploy Preview Environment (pull_request) Successful in 2m31s
CI/CD Pipeline / PR Build Worker Image (pull_request) Successful in 30s
PR Automation / Auto Approve on CI Green (pull_request) Successful in 3m45s
CI/CD Pipeline / PR Build API Image (pull_request) Successful in 3m30s
CI/CD Pipeline / Build Staging API Image (push) Successful in 7m24s
CI/CD Pipeline / Frontend Unit Tests (push) Successful in 7m21s
CI/CD Pipeline / Validate - Code Quality (push) Successful in 8m19s
CI/CD Pipeline / Validate - Code Quality (pull_request) Successful in 8m24s
CI/CD Pipeline / Deploy Staging (Watchtower auto-deploy) (push) Successful in 1m4s
CI/CD Pipeline / ACR Image Cleanup (push) Successful in 1m21s
CI/CD Pipeline / Staging E2E Tests (push) Successful in 2m25s
CI/CD Pipeline / Integration Tests (pull_request) Successful in 3m21s
CI/CD Pipeline / Integration Tests (push) Successful in 3m28s
CI/CD Pipeline / Staging API Integration Tests (push) Successful in 3m27s
CI/CD Pipeline / Unit Tests (push) Successful in 15m5s
CI/CD Pipeline / Unit Tests (pull_request) Successful in 14m25s
CI/CD Pipeline / CI Gate (pull_request) Successful in 9s
CI/CD Pipeline / Production Browser E2E (pull_request) Failing after 575h4m31s
CI/CD Pipeline / Build Production Worker Image (pull_request) Failing after 575h4m36s
CI/CD Pipeline / Build Production Web Image (pull_request) Failing after 575h4m36s
CI/CD Pipeline / Canary Release to Production (push) Failing after 575h6m30s
CI/CD Pipeline / Canary Release to Production (pull_request) Failing after 575h4m34s
CI/CD Pipeline / Production Browser E2E (push) Failing after 575h6m30s
CI/CD Pipeline / Build Production API Image (push) Failing after 575h6m34s
CI/CD Pipeline / Build Production API Image (pull_request) Failing after 575h4m36s
CI/CD Pipeline / CI Gate (push) Failing after 575h6m34s
CI/CD Pipeline / Deploy Production (push) Failing after 575h6m31s
CI/CD Pipeline / Build Production Worker Image (push) Failing after 575h6m32s
CI/CD Pipeline / ACR Image Cleanup (pull_request) Failing after 575h15m53s
CI/CD Pipeline / Staging API Integration Tests (pull_request) Failing after 575h15m55s
CI/CD Pipeline / PR Build Web Image (pull_request) Failing after 575h16m32s
CI/CD Pipeline / Staging E2E Tests (pull_request) Failing after 575h15m58s
CI/CD Pipeline / Frontend Unit Tests (pull_request) Failing after 575h18m56s
CI/CD Pipeline / Frontend Lint (pull_request) Failing after 575h18m57s
PR Automation / Auto Merge on CI Green + Approved (pull_request) Failing after 575h19m6s
CI/CD Pipeline / PR Build Worker Image (push) Failing after 575h19m5s
CI/CD Pipeline / PR Build Web Image (push) Failing after 575h19m7s
CI/CD Pipeline / PR Build API Image (push) Failing after 575h19m9s
CI/CD Pipeline / Frontend Lint (push) Failing after 575h21m41s
CI/CD Pipeline / Build Staging Worker Image (pull_request) Failing after 575h21m43s
CI/CD Pipeline / Check if frontend-only change (push) Failing after 575h22m37s
CI/CD Pipeline / Build Staging Web Image (pull_request) Failing after 575h21m45s
CI/CD Pipeline / Build Staging API Image (pull_request) Failing after 575h21m47s
CI/CD Pipeline / Deploy Production (pull_request) Failing after 575h38m24s
CI/CD Pipeline / Build Production Web Image (push) Failing after 575h40m23s
CI/CD Pipeline / Deploy Staging (Watchtower auto-deploy) (pull_request) Failing after 575h49m49s
2026-08-23 16:03:30 +08:00
xiaoxia 4de4b8dc08 fix(cover): E2兜底封面标题样式透传color/position/font_size (#1467)
CI/CD Pipeline / Check if frontend-only change (pull_request) Successful in 47s
CI/CD Pipeline / Validate - Migration (alembic) (push) Successful in 1m30s
CI/CD Pipeline / Validate - Type Check (mypy) (pull_request) Successful in 3m5s
CI/CD Pipeline / Build Staging Worker Image (push) Successful in 1m53s
CI/CD Pipeline / Validate - Type Check (mypy) (push) Successful in 3m25s
CI/CD Pipeline / Validate - Migration (alembic) (pull_request) Successful in 2m37s
CI/CD Pipeline / Build Staging Web Image (push) Successful in 3m2s
CI/CD Pipeline / PR Build API Image (pull_request) Successful in 22s
CI/CD Pipeline / PR Build Worker Image (pull_request) Successful in 38s
AI Code Review / AI Code Review (pull_request) Successful in 3m23s
CI/CD Pipeline / Build Staging API Image (push) Successful in 5m27s
Preview Deploy / Deploy Preview Environment (pull_request) Successful in 2m14s
CI/CD Pipeline / Validate - Code Quality (push) Successful in 6m28s
PR Automation / Auto Approve on CI Green (pull_request) Successful in 3m24s
CI/CD Pipeline / Deploy Staging (Watchtower auto-deploy) (push) Successful in 1m5s
CI/CD Pipeline / ACR Image Cleanup (push) Successful in 1m18s
CI/CD Pipeline / Staging E2E Tests (push) Successful in 1m31s
CI/CD Pipeline / Frontend Unit Tests (push) Successful in 8m6s
CI/CD Pipeline / Validate - Code Quality (pull_request) Successful in 8m9s
CI/CD Pipeline / Integration Tests (push) Successful in 3m1s
CI/CD Pipeline / Staging API Integration Tests (push) Successful in 3m45s
CI/CD Pipeline / Integration Tests (pull_request) Successful in 2m28s
CI/CD Pipeline / Unit Tests (push) Successful in 14m12s
CI/CD Pipeline / Unit Tests (pull_request) Successful in 11m29s
CI/CD Pipeline / CI Gate (pull_request) Successful in 9s
CI/CD Pipeline / Production Browser E2E (pull_request) Failing after 576h14m5s
CI/CD Pipeline / Build Production Worker Image (pull_request) Failing after 576h14m9s
CI/CD Pipeline / Canary Release to Production (pull_request) Failing after 576h14m7s
CI/CD Pipeline / Build Production Web Image (pull_request) Failing after 576h14m9s
CI/CD Pipeline / Build Production API Image (pull_request) Failing after 576h14m9s
CI/CD Pipeline / Production Browser E2E (push) Failing after 576h14m45s
CI/CD Pipeline / Canary Release to Production (push) Failing after 576h14m47s
CI/CD Pipeline / Build Production Worker Image (push) Failing after 576h14m48s
CI/CD Pipeline / Build Production Web Image (push) Failing after 576h14m49s
CI/CD Pipeline / CI Gate (push) Failing after 576h14m49s
CI/CD Pipeline / Build Production API Image (push) Failing after 576h14m49s
CI/CD Pipeline / ACR Image Cleanup (pull_request) Failing after 576h24m5s
CI/CD Pipeline / Staging E2E Tests (pull_request) Failing after 576h24m9s
CI/CD Pipeline / Deploy Staging (Watchtower auto-deploy) (pull_request) Failing after 576h24m11s
CI/CD Pipeline / Frontend Lint (pull_request) Failing after 576h25m38s
CI/CD Pipeline / PR Build Web Image (pull_request) Failing after 576h24m52s
PR Automation / Auto Merge on CI Green + Approved (pull_request) Failing after 576h25m39s
CI/CD Pipeline / Build Staging Worker Image (pull_request) Failing after 576h27m8s
CI/CD Pipeline / Build Staging API Image (pull_request) Failing after 576h27m12s
CI/CD Pipeline / PR Build Worker Image (push) Failing after 576h27m16s
CI/CD Pipeline / Frontend Lint (push) Failing after 576h29m2s
CI/CD Pipeline / PR Build Web Image (push) Failing after 576h27m18s
CI/CD Pipeline / PR Build API Image (push) Failing after 576h27m20s
CI/CD Pipeline / Check if frontend-only change (push) Failing after 576h29m4s
CI/CD Pipeline / Deploy Production (pull_request) Failing after 576h47m55s
CI/CD Pipeline / Deploy Production (push) Failing after 576h48m35s
CI/CD Pipeline / Staging API Integration Tests (pull_request) Failing after 576h57m55s
CI/CD Pipeline / Frontend Unit Tests (pull_request) Failing after 576h59m24s
CI/CD Pipeline / Build Staging Web Image (pull_request) Failing after 577h0m58s
2026-08-23 14:57:05 +08:00
CI Bot f6b50b49ec fix(cover): worker local ffmpeg cover frames + title overlay for source-asset fallback
CI/CD Pipeline / Check if frontend-only change (pull_request) Successful in 49s
CI/CD Pipeline / Validate - Type Check (mypy) (pull_request) Successful in 1m53s
CI/CD Pipeline / Validate - Migration (alembic) (pull_request) Successful in 2m4s
PR Automation / Auto Merge on CI Green + Approved (pull_request) Successful in 1m30s
Preview Deploy / Deploy Preview Environment (pull_request) Successful in 2m29s
PR Automation / Auto Approve on CI Green (pull_request) Successful in 3m39s
AI Code Review / AI Code Review (pull_request) Successful in 4m45s
CI/CD Pipeline / PR Build Worker Image (pull_request) Successful in 37s
CI/CD Pipeline / PR Build API Image (pull_request) Successful in 1m23s
CI/CD Pipeline / Validate - Code Quality (pull_request) Successful in 5m34s
CI/CD Pipeline / Integration Tests (pull_request) Successful in 2m39s
CI/CD Pipeline / Unit Tests (pull_request) Successful in 10m23s
CI/CD Pipeline / CI Gate (pull_request) Successful in 15s
ACR Cleanup / ACR Image Cleanup (pull_request_target) Successful in 52s
Preview Cleanup / Cleanup Preview Environment (pull_request) Successful in 1m31s
CI/CD Pipeline / Production Browser E2E (pull_request) Failing after 580h44m54s
CI/CD Pipeline / Deploy Production (pull_request) Failing after 580h44m54s
CI/CD Pipeline / Build Production Worker Image (pull_request) Failing after 580h44m56s
CI/CD Pipeline / Build Production API Image (pull_request) Failing after 580h44m58s
CI/CD Pipeline / ACR Image Cleanup (pull_request) Failing after 580h52m34s
CI/CD Pipeline / Staging E2E Tests (pull_request) Failing after 580h52m38s
CI/CD Pipeline / PR Build Web Image (pull_request) Failing after 580h52m43s
CI/CD Pipeline / Frontend Unit Tests (pull_request) Failing after 580h55m3s
CI/CD Pipeline / Frontend Lint (pull_request) Failing after 580h55m5s
CI/CD Pipeline / Build Staging Worker Image (pull_request) Failing after 580h56m53s
CI/CD Pipeline / Build Staging Web Image (pull_request) Failing after 580h56m55s
CI/CD Pipeline / Build Staging API Image (pull_request) Failing after 580h56m57s
CI/CD Pipeline / Canary Release to Production (pull_request) Failing after 581h18m42s
CI/CD Pipeline / Build Production Web Image (pull_request) Failing after 581h18m44s
CI/CD Pipeline / Staging API Integration Tests (pull_request) Failing after 581h26m24s
CI/CD Pipeline / Deploy Staging (Watchtower auto-deploy) (pull_request) Failing after 581h27m17s
问题:
1. 之前 Worker 用 MediaKit 网络抽帧写 cover_url,因状态字符串 bug(#1461 已修)
   一直失败;且在 API 请求内同步抽帧易超时。
2. 封面从源素材抽取时无标题(源素材未烧录标题)。

修复:
1. Worker 渲染完成后直接复用 RenderAdapter 已用本地 ffmpeg 抽出的 cover_candidates:
   - _render_video 返回值改为 (output_path, render_duration, cover_candidates)
   - 第一帧写入 gen_task.cover_url,完整列表写入 metadata.cover_candidates
   - 删除步骤 4.5 的 MediaKit 抽帧代码(不依赖网络,不阻塞)
2. 标题叠加:
   - 新增 packages/shared/title_overlay.py,Pillow 绘制白色文字+黑色描边/阴影,
     支持 CJK 字体和自动换行(API/Worker 共用)
   - thumbnail_generator.extract_and_upload_cover_frames 的 title_text 参数真正生效
   - render_adapter 从已渲染视频抽帧时传空 title_text(标题已 ASS 烧录,避免重影)
   - 封面 API E2 从源素材抽帧后,从 plan.config.title.text 读取标题并叠加
3. API 基础镜像增加 Pillow 和 fonts-noto-cjk(E2 标题叠加依赖)

测试:新增 test_title_overlay.py(5)、E2 标题透传测试,更新 1294 解包;
相关 51 passed。
2026-08-23 10:28:52 +08:00
xiaoxia 161c1a61b6 fix: HEVC 转码条件解耦 + 缩略图函数补全 + extra_meta 字段 (#1452)
CI/CD Pipeline / Build Staging Worker Image (push) Successful in 1m11s
CI/CD Pipeline / Validate - Migration (alembic) (push) Successful in 2m24s
CI/CD Pipeline / Validate - Type Check (mypy) (push) Successful in 2m53s
CI/CD Pipeline / Build Staging Web Image (push) Successful in 3m7s
CI/CD Pipeline / Frontend Unit Tests (push) Successful in 4m35s
CI/CD Pipeline / Build Staging API Image (push) Successful in 4m39s
CI/CD Pipeline / Deploy Staging (Watchtower auto-deploy) (push) Successful in 1m20s
CI/CD Pipeline / ACR Image Cleanup (push) Successful in 52s
CI/CD Pipeline / Staging E2E Tests (push) Failing after 1m22s
CI/CD Pipeline / Staging API Integration Tests (push) Failing after 3m7s
CI/CD Pipeline / Validate - Code Quality (push) Successful in 10m25s
CI/CD Pipeline / Unit Tests (push) Successful in 12m58s
CI/CD Pipeline / Integration Tests (push) Successful in 4m59s
CI/CD Pipeline / Check if frontend-only change (pull_request) Successful in 36s
AI Code Review / AI Code Review (pull_request) Successful in 38s
CI/CD Pipeline / PR Build Worker Image (pull_request) Successful in 33s
CI/CD Pipeline / PR Build API Image (pull_request) Successful in 37s
PR Automation / Auto Merge on CI Green + Approved (pull_request) Successful in 1m43s
Preview Deploy / Deploy Preview Environment (pull_request) Successful in 1m45s
CI/CD Pipeline / Validate - Migration (alembic) (pull_request) Successful in 3m7s
CI/CD Pipeline / Validate - Type Check (mypy) (pull_request) Successful in 3m12s
PR Automation / Auto Approve on CI Green (pull_request) Successful in 3m35s
CI/CD Pipeline / Validate - Code Quality (pull_request) Successful in 10m39s
CI/CD Pipeline / Unit Tests (pull_request) Successful in 13m4s
CI/CD Pipeline / Integration Tests (pull_request) Successful in 4m56s
CI/CD Pipeline / CI Gate (pull_request) Successful in 8s
CI/CD Pipeline / Production Browser E2E (pull_request) Failing after 639h45m46s
CI/CD Pipeline / Build Production Worker Image (pull_request) Failing after 639h45m47s
CI/CD Pipeline / Canary Release to Production (pull_request) Failing after 639h45m46s
CI/CD Pipeline / Build Production Web Image (pull_request) Failing after 639h45m47s
CI/CD Pipeline / Build Production API Image (pull_request) Failing after 639h45m48s
CI/CD Pipeline / Frontend Unit Tests (pull_request) Failing after 639h58m52s
CI/CD Pipeline / Frontend Lint (pull_request) Failing after 639h58m52s
CI/CD Pipeline / Staging API Integration Tests (pull_request) Failing after 639h59m24s
CI/CD Pipeline / Staging E2E Tests (pull_request) Failing after 639h59m24s
CI/CD Pipeline / Build Staging Worker Image (pull_request) Failing after 639h59m30s
CI/CD Pipeline / Build Staging Web Image (pull_request) Failing after 639h59m30s
CI/CD Pipeline / Build Staging API Image (pull_request) Failing after 639h59m30s
CI/CD Pipeline / CI Gate (push) Failing after 641h29m51s
CI/CD Pipeline / Canary Release to Production (push) Failing after 641h32m14s
CI/CD Pipeline / Deploy Production (push) Failing after 641h32m14s
CI/CD Pipeline / Build Production API Image (push) Failing after 641h32m17s
CI/CD Pipeline / Build Production Worker Image (push) Failing after 641h32m16s
CI/CD Pipeline / PR Build Worker Image (push) Failing after 641h44m1s
CI/CD Pipeline / PR Build Web Image (push) Failing after 641h44m3s
CI/CD Pipeline / PR Build API Image (push) Failing after 641h44m5s
CI/CD Pipeline / Frontend Lint (push) Failing after 641h45m16s
CI/CD Pipeline / Check if frontend-only change (push) Failing after 641h45m18s
CI/CD Pipeline / Deploy Production (pull_request) Failing after 640h19m33s
CI/CD Pipeline / PR Build Web Image (pull_request) Failing after 640h32m38s
CI/CD Pipeline / ACR Image Cleanup (pull_request) Failing after 640h33m10s
CI/CD Pipeline / Deploy Staging (Watchtower auto-deploy) (pull_request) Failing after 640h33m12s
CI/CD Pipeline / Production Browser E2E (push) Failing after 642h5m59s
CI/CD Pipeline / Build Production Web Image (push) Failing after 642h6m3s
Co-authored-by: xiaoxia <dev@xiaoxiajianji.com>
Co-committed-by: xiaoxia <dev@xiaoxiajianji.com>
2026-08-20 21:41:01 +08:00
xiaoxia 13b8fb7f66 fix: 预览视频标题渲染全链路修复 — custom_title注入+ASR路径标题支持 (#1399)
CI/CD Pipeline / Frontend Unit Tests (push) Failing after 1s
CI/CD Pipeline / Validate - Migration (alembic) (push) Successful in 1m34s
CI/CD Pipeline / Validate - Type Check (mypy) (push) Successful in 2m11s
CI/CD Pipeline / Build Staging Web Image (push) Successful in 2m51s
CI/CD Pipeline / Build Staging Worker Image (push) Successful in 5m40s
CI/CD Pipeline / Validate - Code Quality (push) Successful in 5m41s
CI/CD Pipeline / Integration Tests (push) Successful in 1m57s
CI/CD Pipeline / Unit Tests (push) Successful in 10m5s
CI/CD Pipeline / Build Staging API Image (push) Successful in 21m32s
CI/CD Pipeline / Deploy Staging (Watchtower auto-deploy) (push) Successful in 1m17s
CI/CD Pipeline / ACR Image Cleanup (push) Successful in 38s
CI/CD Pipeline / Staging E2E Tests (push) Successful in 2m24s
CI/CD Pipeline / Staging API Integration Tests (push) Successful in 3m0s
CI/CD Pipeline / Canary Release to Production (push) Failing after 734h10m13s
CI/CD Pipeline / Deploy Production (push) Failing after 734h25m57s
CI/CD Pipeline / CI Gate (push) Failing after 734h25m57s
CI/CD Pipeline / Build Production Web Image (push) Failing after 734h25m58s
CI/CD Pipeline / Build Production API Image (push) Failing after 734h25m58s
CI/CD Pipeline / PR Build Web Image (push) Failing after 734h35m59s
CI/CD Pipeline / PR Build API Image (push) Failing after 734h36m1s
CI/CD Pipeline / Check if frontend-only change (push) Failing after 734h36m7s
CI/CD Pipeline / Production Browser E2E (push) Failing after 734h59m31s
CI/CD Pipeline / Build Production Worker Image (push) Failing after 734h59m33s
CI/CD Pipeline / PR Build Worker Image (push) Failing after 735h9m34s
CI/CD Pipeline / Frontend Lint (push) Failing after 735h9m40s
2026-08-17 00:50:27 +08:00
xiaoxia d826ae216a fix: 渲染管线 bool 类型配置防护 — 全面修复 'bool' object has no attribute 'get' 崩溃
根因: plan.config 中某 key 的值可能为 bool 而非 dict,
当 .get() 或 from_dict() 被调用时崩溃。
'or {}' 只能防 None/空值,防不了 True/False。

修复策略(双层防护):
1. 治本: 所有 from_dict 方法入口加 isinstance(data, dict) 检查
   - chroma_key_config.py / color_grade_config.py / noise_reduction_config.py
   - watermark_config.py / pip_config.py / intro_outro_config.py
   - reverse_engine.py
2. 治标: 调用方直接 .get() 处加 isinstance 防护
   - unified_render_service.py: tts/bgm/title/subtitle/export/bgm
   - render_adapter.py: bgm/export/title
   - render_audio.py: bgm/audio_tracks
   - generation.py: title/subtitle/bgm/export
   - edit_plan_generation.py: title

共修复 12 个文件,覆盖渲染管线全部 unprotected 调用点
2026-08-16 14:58:30 +08:00
xiaoxia 74e2bdf914 fix: 模板配置字段非dict类型崩溃防护 (bool/str/int) (#1384)
CI/CD Pipeline / Validate - Migration (alembic) (push) Successful in 1m32s
CI/CD Pipeline / Build Staging Worker Image (push) Failing after 1m33s
CI/CD Pipeline / Validate - Type Check (mypy) (push) Successful in 1m36s
CI/CD Pipeline / Frontend Unit Tests (push) Failing after 2m4s
CI/CD Pipeline / Validate - Code Quality (push) Successful in 4m59s
CI/CD Pipeline / Integration Tests (push) Successful in 2m19s
CI/CD Pipeline / Unit Tests (push) Successful in 7m20s
CI/CD Pipeline / Build Staging API Image (push) Failing after 7m34s
CI/CD Pipeline / Build Staging Web Image (push) Failing after 18m46s
CI/CD Pipeline / Staging API Integration Tests (push) Failing after 759h4m38s
CI/CD Pipeline / Deploy Staging (Watchtower auto-deploy) (push) Failing after 759h4m39s
CI/CD Pipeline / CI Gate (push) Failing after 759h16m3s
CI/CD Pipeline / Build Production API Image (push) Failing after 759h16m3s
CI/CD Pipeline / Build Production Worker Image (push) Failing after 759h16m3s
CI/CD Pipeline / PR Build Worker Image (push) Failing after 759h23m24s
CI/CD Pipeline / Frontend Lint (push) Failing after 759h23m25s
CI/CD Pipeline / Check if frontend-only change (push) Failing after 759h23m28s
CI/CD Pipeline / ACR Image Cleanup (push) Failing after 759h38m10s
CI/CD Pipeline / Production Browser E2E (push) Failing after 759h49m34s
CI/CD Pipeline / Build Production Web Image (push) Failing after 759h49m35s
CI/CD Pipeline / PR Build API Image (push) Failing after 759h56m56s
CI/CD Pipeline / Canary Release to Production (push) Failing after 759h38m10s
CI/CD Pipeline / Staging E2E Tests (push) Failing after 759h38m10s
CI/CD Pipeline / Deploy Production (push) Failing after 759h49m35s
CI/CD Pipeline / PR Build Web Image (push) Failing after 759h56m56s
2026-08-15 23:50:43 +08:00
xiaoxia d7bc908ed3 fix: ASR字幕路径叠加标题,修复封面没有标题的问题 (#1374)
CI/CD Pipeline / Validate - Migration (alembic) (push) Successful in 2m13s
CI/CD Pipeline / Build Staging Web Image (push) Successful in 2m28s
CI/CD Pipeline / Validate - Type Check (mypy) (push) Successful in 2m36s
CI/CD Pipeline / Frontend Unit Tests (push) Successful in 4m31s
CI/CD Pipeline / Build Staging Worker Image (push) Successful in 5m14s
CI/CD Pipeline / Validate - Code Quality (push) Successful in 5m31s
CI/CD Pipeline / Integration Tests (push) Successful in 1m45s
CI/CD Pipeline / Unit Tests (push) Successful in 8m51s
CI/CD Pipeline / Build Staging API Image (push) Successful in 20m42s
CI/CD Pipeline / Deploy Staging (Watchtower auto-deploy) (push) Successful in 59s
CI/CD Pipeline / ACR Image Cleanup (push) Successful in 37s
CI/CD Pipeline / Staging E2E Tests (push) Successful in 1m20s
CI/CD Pipeline / Staging API Integration Tests (push) Successful in 2m50s
CI/CD Pipeline / Canary Release to Production (push) Failing after 768h40m57s
CI/CD Pipeline / Deploy Production (push) Failing after 768h56m40s
CI/CD Pipeline / CI Gate (push) Failing after 768h56m40s
CI/CD Pipeline / Build Production Web Image (push) Failing after 768h56m41s
CI/CD Pipeline / Build Production API Image (push) Failing after 768h56m41s
CI/CD Pipeline / PR Build Web Image (push) Failing after 769h5m29s
CI/CD Pipeline / PR Build API Image (push) Failing after 769h5m30s
CI/CD Pipeline / Check if frontend-only change (push) Failing after 769h5m34s
CI/CD Pipeline / Production Browser E2E (push) Failing after 769h30m10s
CI/CD Pipeline / Build Production Worker Image (push) Failing after 769h30m12s
CI/CD Pipeline / PR Build Worker Image (push) Failing after 769h38m59s
CI/CD Pipeline / Frontend Lint (push) Failing after 769h39m2s
2026-08-15 14:21:09 +08:00
xiaoxia 0301370dd8 refactor: 统一封面生成管道 — 从渲染后视频抽帧作为封面 (#1371)
CI/CD Pipeline / Frontend Unit Tests (push) Successful in 1m32s
CI/CD Pipeline / Validate - Type Check (mypy) (push) Successful in 1m45s
CI/CD Pipeline / Validate - Migration (alembic) (push) Successful in 2m20s
CI/CD Pipeline / Build Staging Web Image (push) Successful in 2m22s
CI/CD Pipeline / Build Staging Worker Image (push) Successful in 5m2s
CI/CD Pipeline / Validate - Code Quality (push) Successful in 6m19s
CI/CD Pipeline / Integration Tests (push) Successful in 2m0s
CI/CD Pipeline / Unit Tests (push) Successful in 9m9s
CI/CD Pipeline / Build Staging API Image (push) Successful in 20m32s
CI/CD Pipeline / Deploy Staging (Watchtower auto-deploy) (push) Successful in 1m2s
CI/CD Pipeline / ACR Image Cleanup (push) Successful in 41s
CI/CD Pipeline / Staging E2E Tests (push) Successful in 1m53s
CI/CD Pipeline / Staging API Integration Tests (push) Successful in 2m50s
CI/CD Pipeline / Canary Release to Production (push) Failing after 784h46m17s
CI/CD Pipeline / Deploy Production (push) Failing after 785h1m33s
CI/CD Pipeline / CI Gate (push) Failing after 785h1m33s
CI/CD Pipeline / Build Production Web Image (push) Failing after 785h1m34s
CI/CD Pipeline / Build Production API Image (push) Failing after 785h1m34s
CI/CD Pipeline / PR Build Web Image (push) Failing after 785h10m41s
CI/CD Pipeline / PR Build API Image (push) Failing after 785h10m42s
CI/CD Pipeline / Check if frontend-only change (push) Failing after 785h10m44s
CI/CD Pipeline / Production Browser E2E (push) Failing after 785h35m3s
CI/CD Pipeline / Build Production Worker Image (push) Failing after 785h35m5s
CI/CD Pipeline / PR Build Worker Image (push) Failing after 785h44m11s
CI/CD Pipeline / Frontend Lint (push) Failing after 785h44m14s
Co-authored-by: xiaoxia <dev@xiaoxiajianji.com>
Co-committed-by: xiaoxia <dev@xiaoxiajianji.com>
2026-08-14 22:16:00 +08:00
xiaoxia c00c56a742 fix: overlay title text on auto-generated cover frames (#1365)
CI/CD Pipeline / Validate - Migration (alembic) (push) Successful in 1m37s
CI/CD Pipeline / Validate - Type Check (mypy) (push) Successful in 2m35s
CI/CD Pipeline / Build Staging Web Image (push) Successful in 2m57s
CI/CD Pipeline / Frontend Unit Tests (push) Successful in 3m51s
CI/CD Pipeline / Build Staging Worker Image (push) Successful in 4m6s
CI/CD Pipeline / Validate - Code Quality (push) Successful in 5m31s
CI/CD Pipeline / Integration Tests (push) Successful in 1m40s
CI/CD Pipeline / Unit Tests (push) Successful in 9m31s
CI/CD Pipeline / Build Staging API Image (push) Successful in 19m32s
CI/CD Pipeline / Deploy Staging (Watchtower auto-deploy) (push) Successful in 58s
CI/CD Pipeline / ACR Image Cleanup (push) Successful in 36s
CI/CD Pipeline / Staging E2E Tests (push) Failing after 2m3s
CI/CD Pipeline / Staging API Integration Tests (push) Successful in 2m48s
CI/CD Pipeline / Canary Release to Production (push) Failing after 794h52m23s
CI/CD Pipeline / Build Production Web Image (push) Failing after 795h6m11s
CI/CD Pipeline / Build Production API Image (push) Failing after 795h6m11s
CI/CD Pipeline / PR Build Web Image (push) Failing after 795h15m41s
CI/CD Pipeline / Production Browser E2E (push) Failing after 795h6m10s
CI/CD Pipeline / PR Build API Image (push) Failing after 795h15m43s
CI/CD Pipeline / Deploy Production (push) Failing after 795h6m10s
CI/CD Pipeline / Check if frontend-only change (push) Failing after 795h15m47s
CI/CD Pipeline / CI Gate (push) Failing after 795h6m11s
CI/CD Pipeline / Build Production Worker Image (push) Failing after 795h39m41s
CI/CD Pipeline / PR Build Worker Image (push) Failing after 795h49m11s
CI/CD Pipeline / Frontend Lint (push) Failing after 795h49m13s
Co-authored-by: xiaoxia <dev@xiaoxiajianji.com>
Co-committed-by: xiaoxia <dev@xiaoxiajianji.com>
2026-08-14 12:11:00 +08:00
xiaoxia 8e4a8a8184 fix: videoRatio aspect ratio parsed as resolution causing scale=9:1920 (#1364)
CI/CD Pipeline / Frontend Unit Tests (push) Successful in 3m28s
CI/CD Pipeline / Build Staging Worker Image (push) Successful in 3m31s
CI/CD Pipeline / Build Staging Web Image (push) Successful in 3m32s
CI/CD Pipeline / Validate - Migration (alembic) (push) Successful in 4m11s
CI/CD Pipeline / Validate - Type Check (mypy) (push) Successful in 5m32s
CI/CD Pipeline / Validate - Code Quality (push) Successful in 16m49s
CI/CD Pipeline / Unit Tests (push) Successful in 20m10s
CI/CD Pipeline / Build Staging API Image (push) Successful in 21m34s
CI/CD Pipeline / Deploy Staging (Watchtower auto-deploy) (push) Successful in 1m22s
CI/CD Pipeline / ACR Image Cleanup (push) Successful in 37s
CI/CD Pipeline / Staging E2E Tests (push) Failing after 1m7s
CI/CD Pipeline / Staging API Integration Tests (push) Successful in 2m49s
CI/CD Pipeline / Integration Tests (push) Successful in 11m8s
CI/CD Pipeline / CI Gate (push) Failing after 806h1m55s
CI/CD Pipeline / Build Production Worker Image (push) Failing after 806h9m40s
CI/CD Pipeline / Build Production Web Image (push) Failing after 806h9m41s
CI/CD Pipeline / PR Build Worker Image (push) Failing after 806h29m50s
CI/CD Pipeline / Canary Release to Production (push) Failing after 806h4m3s
CI/CD Pipeline / Production Browser E2E (push) Failing after 806h9m39s
CI/CD Pipeline / PR Build Web Image (push) Failing after 806h29m50s
CI/CD Pipeline / PR Build API Image (push) Failing after 806h29m52s
CI/CD Pipeline / Check if frontend-only change (push) Failing after 806h29m54s
CI/CD Pipeline / Deploy Production (push) Failing after 806h43m10s
CI/CD Pipeline / Build Production API Image (push) Failing after 806h43m12s
CI/CD Pipeline / Frontend Lint (push) Failing after 807h3m23s
2026-08-14 00:56:54 +08:00
xiaoxia 21e84c71c4 perf: render-time cover frame pre-extraction + FFmpeg fallback, remove MediaKit (#1360)
CI/CD Pipeline / Validate - Migration (alembic) (push) Successful in 1m52s
CI/CD Pipeline / Validate - Type Check (mypy) (push) Successful in 2m10s
CI/CD Pipeline / Build Staging Web Image (push) Successful in 2m23s
CI/CD Pipeline / Frontend Unit Tests (push) Successful in 2m29s
CI/CD Pipeline / Build Staging Worker Image (push) Successful in 4m35s
CI/CD Pipeline / Validate - Code Quality (push) Successful in 7m2s
CI/CD Pipeline / Unit Tests (push) Successful in 9m47s
CI/CD Pipeline / Build Staging API Image (push) Successful in 13m45s
CI/CD Pipeline / Deploy Staging (Watchtower auto-deploy) (push) Successful in 43s
CI/CD Pipeline / Integration Tests (push) Successful in 7m28s
CI/CD Pipeline / ACR Image Cleanup (push) Successful in 38s
CI/CD Pipeline / Staging E2E Tests (push) Failing after 1m6s
CI/CD Pipeline / Staging API Integration Tests (push) Successful in 2m50s
CI/CD Pipeline / Canary Release to Production (push) Failing after 810h18m24s
CI/CD Pipeline / Production Browser E2E (push) Failing after 810h25m14s
CI/CD Pipeline / Deploy Production (push) Failing after 810h25m16s
CI/CD Pipeline / Build Production Web Image (push) Failing after 810h25m16s
CI/CD Pipeline / Build Production API Image (push) Failing after 810h25m16s
CI/CD Pipeline / PR Build Worker Image (push) Failing after 810h34m50s
CI/CD Pipeline / PR Build Web Image (push) Failing after 810h34m52s
CI/CD Pipeline / Frontend Lint (push) Failing after 810h35m3s
CI/CD Pipeline / Check if frontend-only change (push) Failing after 810h35m47s
CI/CD Pipeline / CI Gate (push) Failing after 810h54m44s
CI/CD Pipeline / Build Production Worker Image (push) Failing after 810h58m46s
CI/CD Pipeline / PR Build API Image (push) Failing after 811h8m24s
Co-authored-by: xiaoxia <dev@xiaoxiajianji.com>
Co-committed-by: xiaoxia <dev@xiaoxiajianji.com>
2026-08-13 20:51:02 +08:00
xiaoxia 52eb37472d refactor(#1341): 删除 EditingPlanner 遗留封面生成器 + 清理 compose_video 封面代码 (#1353)
CI/CD Pipeline / Validate - Migration (alembic) (push) Successful in 2m23s
CI/CD Pipeline / Validate - Type Check (mypy) (push) Successful in 2m25s
CI/CD Pipeline / Frontend Unit Tests (push) Successful in 3m18s
CI/CD Pipeline / Build Staging Worker Image (push) Successful in 4m27s
CI/CD Pipeline / Build Staging Web Image (push) Failing after 4m28s
CI/CD Pipeline / Validate - Code Quality (push) Successful in 6m7s
CI/CD Pipeline / Build Staging API Image (push) Successful in 7m22s
CI/CD Pipeline / Integration Tests (push) Successful in 2m58s
CI/CD Pipeline / Unit Tests (push) Successful in 9m48s
CI/CD Pipeline / Production Browser E2E (push) Failing after 830h0m58s
CI/CD Pipeline / Build Production Worker Image (push) Failing after 830h1m0s
CI/CD Pipeline / Canary Release to Production (push) Failing after 830h0m59s
CI/CD Pipeline / Deploy Production (push) Failing after 830h0m59s
CI/CD Pipeline / Build Production Web Image (push) Failing after 830h1m0s
CI/CD Pipeline / Build Production API Image (push) Failing after 830h1m0s
CI/CD Pipeline / Staging E2E Tests (push) Failing after 830h3m26s
CI/CD Pipeline / ACR Image Cleanup (push) Failing after 830h3m26s
CI/CD Pipeline / Deploy Staging (Watchtower auto-deploy) (push) Failing after 830h3m27s
CI/CD Pipeline / PR Build API Image (push) Failing after 830h10m48s
CI/CD Pipeline / PR Build Worker Image (push) Failing after 830h10m46s
CI/CD Pipeline / Frontend Lint (push) Failing after 830h10m49s
CI/CD Pipeline / Check if frontend-only change (push) Failing after 830h10m50s
CI/CD Pipeline / CI Gate (push) Failing after 830h34m31s
CI/CD Pipeline / Staging API Integration Tests (push) Failing after 830h36m57s
CI/CD Pipeline / PR Build Web Image (push) Failing after 830h44m18s
Co-authored-by: xiaoxia <dev@xiaoxiajianji.com>
Co-committed-by: xiaoxia <dev@xiaoxiajianji.com>
2026-08-13 01:16:00 +08:00
CI Bot 5924751bff fix: 移除已删除的 PREVIEW_RESOLUTION 引用及未使用变量
CI/CD Pipeline / Check if frontend-only change (pull_request) Successful in 42s
CI/CD Pipeline / Validate - Migration (alembic) (pull_request) Successful in 1m7s
CI/CD Pipeline / Validate - Type Check (mypy) (pull_request) Successful in 1m19s
Preview Deploy / Deploy Preview Environment (pull_request) Successful in 1m23s
PR Automation / Auto Merge on CI Green + Approved (pull_request) Successful in 1m46s
AI Code Review / AI Code Review (pull_request) Failing after 2m3s
CI/CD Pipeline / PR Build API Image (pull_request) Successful in 2m35s
CI/CD Pipeline / PR Build Worker Image (pull_request) Successful in 2m36s
PR Automation / Auto Approve on CI Green (pull_request) Successful in 3m25s
CI/CD Pipeline / Validate - Code Quality (pull_request) Successful in 4m30s
CI/CD Pipeline / Integration Tests (pull_request) Successful in 1m35s
CI/CD Pipeline / Unit Tests (pull_request) Failing after 6m24s
CI/CD Pipeline / CI Gate (pull_request) Failing after 5s
CI/CD Pipeline / Deploy Staging (Watchtower auto-deploy) (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 / ACR Image Cleanup (pull_request) Has been cancelled
CI/CD Pipeline / Canary Release to Production (pull_request) Has been cancelled
CI/CD Pipeline / Production Browser E2E (pull_request) Failing after 880h38m16s
CI/CD Pipeline / Deploy Production (pull_request) Failing after 880h38m16s
CI/CD Pipeline / Build Production Web Image (pull_request) Failing after 880h38m16s
CI/CD Pipeline / Build Production API Image (pull_request) Failing after 880h38m16s
CI/CD Pipeline / Frontend Unit Tests (pull_request) Failing after 880h44m42s
CI/CD Pipeline / Frontend Lint (pull_request) Failing after 880h44m42s
CI/CD Pipeline / Build Staging Web Image (pull_request) Failing after 880h45m25s
CI/CD Pipeline / Build Staging API Image (pull_request) Failing after 880h45m25s
CI/CD Pipeline / Build Production Worker Image (pull_request) Failing after 881h11m44s
CI/CD Pipeline / PR Build Web Image (pull_request) Failing after 881h18m9s
CI/CD Pipeline / Build Staging Worker Image (pull_request) Failing after 881h18m53s
- test_generation_preview.py: 移除 PREVIEW_RESOLUTION 导入和 TestCalcPreviewResolution 测试类
- render_adapter.py: 移除未使用的 has_voice_id 变量
2026-08-10 22:41:30 +08:00
CI Bot 29994ffcbc feat: 统一预览与确认生成渲染路径 — 预览=正式品质+确认复用
CI/CD Pipeline / Check if frontend-only change (pull_request) Successful in 30s
Preview Deploy / Deploy Preview Environment (pull_request) Successful in 1m29s
CI/CD Pipeline / Validate - Type Check (mypy) (pull_request) Successful in 1m30s
CI/CD Pipeline / Validate - Migration (alembic) (pull_request) Successful in 1m30s
PR Automation / Auto Merge on CI Green + Approved (pull_request) Successful in 1m43s
CI/CD Pipeline / PR Build API Image (pull_request) Successful in 2m23s
CI/CD Pipeline / PR Build Worker Image (pull_request) Successful in 2m22s
PR Automation / Auto Approve on CI Green (pull_request) Successful in 3m36s
CI/CD Pipeline / Validate - Code Quality (pull_request) Failing after 4m36s
CI/CD Pipeline / Unit Tests (pull_request) Failing after 5m29s
CI/CD Pipeline / Integration Tests (pull_request) Successful in 1m35s
CI/CD Pipeline / CI Gate (pull_request) Failing after 6s
AI Code Review / AI Code Review (pull_request) Successful in 6m45s
CI/CD Pipeline / Production Browser E2E (pull_request) Failing after 880h48m4s
CI/CD Pipeline / Deploy Production (pull_request) Failing after 880h48m4s
CI/CD Pipeline / Build Production Worker Image (pull_request) Failing after 880h48m5s
CI/CD Pipeline / Build Production API Image (pull_request) Failing after 880h48m5s
CI/CD Pipeline / PR Build Web Image (pull_request) Failing after 880h53m34s
CI/CD Pipeline / Frontend Unit Tests (pull_request) Failing after 880h53m34s
CI/CD Pipeline / Frontend Lint (pull_request) Failing after 880h53m34s
CI/CD Pipeline / Staging API Integration Tests (pull_request) Failing after 880h54m0s
CI/CD Pipeline / Staging E2E Tests (pull_request) Failing after 880h54m0s
CI/CD Pipeline / Deploy Staging (Watchtower auto-deploy) (pull_request) Failing after 880h54m4s
CI/CD Pipeline / Build Staging Web Image (pull_request) Failing after 880h54m6s
CI/CD Pipeline / Build Staging API Image (pull_request) Failing after 880h54m6s
CI/CD Pipeline / Canary Release to Production (pull_request) Failing after 881h21m32s
CI/CD Pipeline / Build Production Web Image (pull_request) Failing after 881h21m33s
CI/CD Pipeline / ACR Image Cleanup (pull_request) Failing after 881h27m28s
CI/CD Pipeline / Build Staging Worker Image (pull_request) Failing after 881h27m34s
## 渲染管线统一
- UnifiedRenderService: 移除 is_preview 参数,统一 CRF 23 + medium preset
- RenderAdapter: 移除 is_preview 参数,统一执行校验和缩略图生成
- Worker generation.py: 移除 480p+1M 码率覆盖逻辑
- generation_preview.py: 删除 PREVIEW_RESOLUTION 常量和 _calc_preview_resolution()

## 确认生成复用预览产物
- Domain: 新增 GenerationTask.mark_confirmed() 方法
- confirm_generation: 预览已完成时直接复用产物(秒出),无需重新渲染
- Editor generate: 检查 plan 关联的预览任务,plan未修改时复用产物
- Schema: CreatePreviewGenerationTaskRequest 新增 source_edit_plan_id 字段

## 测试更新
- test_1280_preview_speedup: 重写为验证统一品质参数
- test_confirm_generation: 重写为验证复用逻辑

## 交付标准
- 预览渲染质量与确认生成一致(1080p, CRF 23, medium)
- 预览后确认生成直接复用产物(秒出)
- Worker 端无任何 is_preview 低质量渲染代码残留
2026-08-10 22:32:35 +08:00
xiaoxia e2b3811277 fix: FFmpeg mjpeg 缩略图/封面生成添加 format=yuvj420p
CI/CD Pipeline / Check if frontend-only change (pull_request) Successful in 31s
CI/CD Pipeline / Validate - Migration (alembic) (pull_request) Successful in 39s
CI/CD Pipeline / Validate - Type Check (mypy) (pull_request) Successful in 1m9s
Preview Deploy / Deploy Preview Environment (pull_request) Successful in 1m31s
PR Automation / Auto Merge on CI Green + Approved (pull_request) Successful in 1m40s
AI Code Review / AI Code Review (pull_request) Successful in 1m57s
CI/CD Pipeline / PR Build API Image (pull_request) Successful in 2m3s
CI/CD Pipeline / PR Build Worker Image (pull_request) Successful in 2m3s
PR Automation / Auto Approve on CI Green (pull_request) Successful in 3m23s
CI/CD Pipeline / Unit Tests (pull_request) Successful in 3m6s
CI/CD Pipeline / Validate - Code Quality (pull_request) Successful in 3m51s
CI/CD Pipeline / Integration Tests (pull_request) Successful in 1m42s
CI/CD Pipeline / CI Gate (pull_request) Successful in 6s
Preview Cleanup / Cleanup Preview Environment (pull_request) Successful in 43s
ACR Cleanup / ACR Image Cleanup (pull_request_target) Successful in 1m2s
CI/CD Pipeline / Production Browser E2E (pull_request) Failing after 891h45m30s
CI/CD Pipeline / Canary Release to Production (pull_request) Failing after 891h45m30s
CI/CD Pipeline / Build Production API Image (pull_request) Failing after 891h45m31s
CI/CD Pipeline / Deploy Production (pull_request) Failing after 891h45m30s
CI/CD Pipeline / PR Build Web Image (pull_request) Failing after 891h48m50s
CI/CD Pipeline / Build Production Worker Image (pull_request) Failing after 891h45m31s
CI/CD Pipeline / Frontend Lint (pull_request) Failing after 891h48m51s
CI/CD Pipeline / ACR Image Cleanup (pull_request) Failing after 891h49m20s
CI/CD Pipeline / Staging E2E Tests (pull_request) Failing after 891h49m21s
CI/CD Pipeline / Deploy Staging (Watchtower auto-deploy) (pull_request) Failing after 891h49m22s
CI/CD Pipeline / Build Staging Web Image (pull_request) Failing after 891h49m24s
CI/CD Pipeline / Build Staging API Image (pull_request) Failing after 891h49m24s
CI/CD Pipeline / Build Production Web Image (pull_request) Failing after 892h18m58s
CI/CD Pipeline / Frontend Unit Tests (pull_request) Failing after 892h22m17s
CI/CD Pipeline / Staging API Integration Tests (pull_request) Failing after 892h22m47s
CI/CD Pipeline / Build Staging Worker Image (pull_request) Failing after 892h22m51s
修复 FFmpeg 新版中 mjpeg 编码器拒绝非全范围 YUV 输入的问题:
- thumbnail_generator.py: scale filter 添加 format=yuvj420p
- processor.py: 添加 pix_fmt=yuvj420p
- cover_generator.py: 两处 vf filter 添加 format=yuvj420p
- cover_service.py: vf filter + simple fallback 添加 pix_fmt
- asset_analyzer.py: 添加 -pix_fmt yuvj420p

修复错误: Non full-range YUV is non-standard, set strict_std_compliance
to at most unofficial to use it.
2026-08-10 11:37:22 +08:00
xiaoxia 41d9713d28 fix: 视频 filter_complex 排除纯音频 clips 修复 FFmpeg exit=234 (#1321)
CI/CD Pipeline / Validate - Type Check (mypy) (push) Successful in 57s
CI/CD Pipeline / Validate - Migration (alembic) (push) Successful in 57s
CI/CD Pipeline / Build Staging Web Image (push) Successful in 2m12s
CI/CD Pipeline / Frontend Unit Tests (push) Successful in 3m50s
CI/CD Pipeline / Build Staging Worker Image (push) Successful in 4m33s
CI/CD Pipeline / Validate - Code Quality (push) Successful in 4m48s
CI/CD Pipeline / Integration Tests (push) Successful in 1m34s
CI/CD Pipeline / Unit Tests (push) Successful in 8m29s
CI/CD Pipeline / Build Staging API Image (push) Successful in 11m34s
CI/CD Pipeline / Deploy Staging (Watchtower auto-deploy) (push) Successful in 1m21s
CI/CD Pipeline / ACR Image Cleanup (push) Successful in 37s
CI/CD Pipeline / Staging E2E Tests (push) Failing after 2m55s
CI/CD Pipeline / Staging API Integration Tests (push) Successful in 3m12s
CI/CD Pipeline / Canary Release to Production (push) Failing after 912h0m21s
CI/CD Pipeline / Build Production Worker Image (push) Failing after 912h8m5s
CI/CD Pipeline / Build Production Web Image (push) Failing after 912h8m6s
CI/CD Pipeline / PR Build Web Image (push) Failing after 912h16m35s
CI/CD Pipeline / Frontend Lint (push) Failing after 912h16m36s
CI/CD Pipeline / Production Browser E2E (push) Failing after 912h8m4s
CI/CD Pipeline / Check if frontend-only change (push) Failing after 912h16m36s
CI/CD Pipeline / Deploy Production (push) Failing after 912h8m5s
CI/CD Pipeline / Build Production API Image (push) Failing after 912h8m6s
CI/CD Pipeline / PR Build Worker Image (push) Failing after 912h16m35s
CI/CD Pipeline / CI Gate (push) Failing after 912h41m30s
CI/CD Pipeline / PR Build API Image (push) Failing after 912h50m0s
2026-08-09 15:10:25 +08:00
SaaS Frontend 734508bea5 fix: 预览模式配音降级处理 - ASR 不可用时走整段配音模式 (#1307)
CI/CD Pipeline / Validate - Migration (alembic) (push) Successful in 38s
CI/CD Pipeline / Validate - Type Check (mypy) (push) Successful in 57s
CI/CD Pipeline / Build Staging Web Image (push) Successful in 1m52s
CI/CD Pipeline / Frontend Unit Tests (push) Successful in 2m3s
CI/CD Pipeline / Build Staging Worker Image (push) Successful in 3m44s
CI/CD Pipeline / Validate - Code Quality (push) Successful in 5m4s
CI/CD Pipeline / Integration Tests (push) Successful in 1m28s
CI/CD Pipeline / Unit Tests (push) Failing after 8m45s
CI/CD Pipeline / Build Staging API Image (push) Successful in 11m30s
CI/CD Pipeline / Deploy Staging (Watchtower auto-deploy) (push) Successful in 2m52s
CI/CD Pipeline / ACR Image Cleanup (push) Successful in 1m7s
CI/CD Pipeline / Staging API Integration Tests (push) Successful in 3m39s
CI/CD Pipeline / Staging E2E Tests (push) Failing after 4m4s
CI/CD Pipeline / Canary Release to Production (push) Failing after 932h34m59s
CI/CD Pipeline / Production Browser E2E (push) Failing after 932h43m21s
CI/CD Pipeline / Deploy Production (push) Failing after 932h43m22s
CI/CD Pipeline / Build Production Worker Image (push) Failing after 932h43m22s
CI/CD Pipeline / Build Production Web Image (push) Failing after 932h43m23s
CI/CD Pipeline / Build Production API Image (push) Failing after 932h43m23s
CI/CD Pipeline / PR Build Worker Image (push) Failing after 932h50m45s
CI/CD Pipeline / PR Build API Image (push) Failing after 932h50m49s
CI/CD Pipeline / Frontend Lint (push) Failing after 932h50m51s
CI/CD Pipeline / Check if frontend-only change (push) Failing after 932h53m10s
CI/CD Pipeline / CI Gate (push) Failing after 933h16m46s
CI/CD Pipeline / PR Build Web Image (push) Failing after 933h24m11s
- render_adapter.py: 修复 import 路径 (services -> apps.worker.services)
- unified_render_service.py: 方式B 条件调整
  - ASR 可用时走字幕对齐模式(方式B)
  - ASR 不可用时降级为整段配音模式(方式A),使用 subtitle.text 作为配音内容
- 解决预览模式下配音完全不生效的问题

关联 Issue #1294
2026-08-08 18:33:15 +08:00
xiaoxia 765725b878 fix: 预览模式下有 voice_id 时初始化 ASR 以支持配音 (#1294) (#1306)
CI/CD Pipeline / Validate - Migration (alembic) (push) Successful in 56s
CI/CD Pipeline / Validate - Type Check (mypy) (push) Successful in 1m3s
CI/CD Pipeline / Build Staging Web Image (push) Successful in 2m44s
CI/CD Pipeline / Frontend Unit Tests (push) Successful in 3m17s
CI/CD Pipeline / Validate - Code Quality (push) Successful in 4m33s
CI/CD Pipeline / Build Staging Worker Image (push) Successful in 5m14s
CI/CD Pipeline / Integration Tests (push) Successful in 1m39s
CI/CD Pipeline / Unit Tests (push) Failing after 8m47s
CI/CD Pipeline / Build Staging API Image (push) Successful in 12m8s
CI/CD Pipeline / Deploy Staging (Watchtower auto-deploy) (push) Successful in 1m16s
CI/CD Pipeline / ACR Image Cleanup (push) Successful in 36s
CI/CD Pipeline / Staging API Integration Tests (push) Successful in 3m10s
CI/CD Pipeline / Staging E2E Tests (push) Failing after 3m27s
CI/CD Pipeline / Canary Release to Production (push) Failing after 933h49m24s
CI/CD Pipeline / Deploy Production (push) Failing after 933h57m14s
CI/CD Pipeline / CI Gate (push) Failing after 933h57m14s
CI/CD Pipeline / Build Production Web Image (push) Failing after 933h57m14s
CI/CD Pipeline / Build Production API Image (push) Failing after 933h57m15s
CI/CD Pipeline / PR Build Web Image (push) Failing after 934h6m1s
CI/CD Pipeline / PR Build API Image (push) Failing after 934h6m3s
CI/CD Pipeline / Check if frontend-only change (push) Failing after 934h6m5s
CI/CD Pipeline / Production Browser E2E (push) Failing after 934h30m37s
CI/CD Pipeline / Build Production Worker Image (push) Failing after 934h30m38s
CI/CD Pipeline / PR Build Worker Image (push) Failing after 934h39m25s
CI/CD Pipeline / Frontend Lint (push) Failing after 934h39m27s
Co-authored-by: xiaoxia <dev@xiaoxiajianji.com>
Co-committed-by: xiaoxia <dev@xiaoxiajianji.com>
2026-08-08 17:21:00 +08:00
xiaoxia 60e8cd5247 perf(#1280): 预览视频生成加速 — ultrafast编码+并行下载+跳过非必要步骤 (#1284)
CI/CD Pipeline / Validate - Migration (alembic) (push) Successful in 1m16s
CI/CD Pipeline / Validate - Type Check (mypy) (push) Successful in 1m16s
CI/CD Pipeline / Build Staging Web Image (push) Successful in 2m29s
CI/CD Pipeline / Frontend Unit Tests (push) Successful in 3m3s
CI/CD Pipeline / Build Staging Worker Image (push) Successful in 5m3s
CI/CD Pipeline / Validate - Code Quality (push) Successful in 5m35s
CI/CD Pipeline / Integration Tests (push) Successful in 2m37s
CI/CD Pipeline / Unit Tests (push) Successful in 9m57s
CI/CD Pipeline / Build Staging API Image (push) Successful in 12m44s
CI/CD Pipeline / Deploy Staging (Watchtower auto-deploy) (push) Successful in 1m28s
CI/CD Pipeline / Staging API Integration Tests (push) Failing after 17s
CI/CD Pipeline / Staging E2E Tests (push) Failing after 17s
CI/CD Pipeline / ACR Image Cleanup (push) Successful in 34s
CI/CD Pipeline / Canary Release to Production (push) Failing after 953h20m32s
CI/CD Pipeline / PR Build Web Image (push) Failing after 953h35m2s
CI/CD Pipeline / Production Browser E2E (push) Failing after 953h25m3s
CI/CD Pipeline / PR Build API Image (push) Failing after 953h35m3s
CI/CD Pipeline / Deploy Production (push) Failing after 953h25m3s
CI/CD Pipeline / CI Gate (push) Failing after 953h25m5s
CI/CD Pipeline / Check if frontend-only change (push) Failing after 953h35m7s
CI/CD Pipeline / Build Production Worker Image (push) Failing after 953h25m5s
CI/CD Pipeline / Build Production Web Image (push) Failing after 953h25m5s
CI/CD Pipeline / Build Production API Image (push) Failing after 953h25m5s
CI/CD Pipeline / PR Build Worker Image (push) Failing after 954h8m23s
CI/CD Pipeline / Frontend Lint (push) Failing after 954h8m26s
2026-08-07 21:52:03 +08:00
xiaoxia 91ac40dbef fix(render_audio): drop source video audio in mix_audio (#1249)
CI/CD Pipeline / Validate - Migration (alembic) (push) Successful in 1m8s
CI/CD Pipeline / Validate - Type Check (mypy) (push) Successful in 1m25s
CI/CD Pipeline / Build Staging Web Image (push) Successful in 2m28s
CI/CD Pipeline / Frontend Unit Tests (push) Successful in 3m18s
CI/CD Pipeline / Validate - Code Quality (push) Successful in 4m46s
CI/CD Pipeline / Build Staging Worker Image (push) Successful in 5m8s
CI/CD Pipeline / Integration Tests (push) Successful in 1m30s
CI/CD Pipeline / Unit Tests (push) Successful in 9m23s
CI/CD Pipeline / Build Staging API Image (push) Successful in 12m13s
CI/CD Pipeline / Deploy Staging (Watchtower auto-deploy) (push) Successful in 1m24s
CI/CD Pipeline / ACR Image Cleanup (push) Successful in 40s
CI/CD Pipeline / Staging E2E Tests (push) Successful in 1m14s
CI/CD Pipeline / Staging API Integration Tests (push) Successful in 3m19s
CI/CD Pipeline / Canary Release to Production (push) Failing after 980h11m34s
CI/CD Pipeline / Deploy Production (push) Failing after 980h19m8s
CI/CD Pipeline / CI Gate (push) Failing after 980h19m9s
CI/CD Pipeline / Build Production Web Image (push) Failing after 980h19m9s
CI/CD Pipeline / Build Production API Image (push) Failing after 980h19m9s
CI/CD Pipeline / PR Build Worker Image (push) Failing after 980h28m30s
CI/CD Pipeline / PR Build Web Image (push) Failing after 980h28m31s
CI/CD Pipeline / PR Build API Image (push) Failing after 980h28m32s
CI/CD Pipeline / Frontend Lint (push) Failing after 980h28m33s
CI/CD Pipeline / Check if frontend-only change (push) Failing after 980h28m34s
CI/CD Pipeline / Production Browser E2E (push) Failing after 980h52m27s
CI/CD Pipeline / Build Production Worker Image (push) Failing after 980h52m28s
2026-08-06 18:58:41 +08:00
xiaoxia 0ef4e1d633 feat: 渲染失败检测+任务超时机制 (#1219)
CI/CD Pipeline / Validate - Migration (alembic) (push) Successful in 51s
CI/CD Pipeline / Validate - Type Check (mypy) (push) Successful in 59s
CI/CD Pipeline / Build Staging Web Image (push) Successful in 2m49s
CI/CD Pipeline / Frontend Unit Tests (push) Successful in 3m26s
CI/CD Pipeline / Build Staging Worker Image (push) Successful in 4m55s
CI/CD Pipeline / Validate - Code Quality (push) Successful in 5m47s
CI/CD Pipeline / Integration Tests (push) Successful in 1m56s
CI/CD Pipeline / Unit Tests (push) Successful in 9m42s
CI/CD Pipeline / Build Staging API Image (push) Successful in 12m15s
CI/CD Pipeline / Deploy Staging (Watchtower auto-deploy) (push) Successful in 34s
CI/CD Pipeline / ACR Image Cleanup (push) Successful in 37s
CI/CD Pipeline / Staging E2E Tests (push) Failing after 2m27s
CI/CD Pipeline / Staging API Integration Tests (push) Successful in 4m39s
CI/CD Pipeline / Canary Release to Production (push) Failing after 1079h35m0s
CI/CD Pipeline / CI Gate (push) Failing after 1079h42m47s
CI/CD Pipeline / Production Browser E2E (push) Failing after 1079h42m45s
CI/CD Pipeline / Build Production Worker Image (push) Failing after 1079h42m47s
CI/CD Pipeline / Build Production API Image (push) Failing after 1079h42m47s
CI/CD Pipeline / PR Build Worker Image (push) Failing after 1079h52m30s
CI/CD Pipeline / PR Build API Image (push) Failing after 1079h52m30s
CI/CD Pipeline / Frontend Lint (push) Failing after 1079h52m30s
CI/CD Pipeline / Check if frontend-only change (push) Failing after 1079h52m33s
CI/CD Pipeline / Deploy Production (push) Failing after 1080h16m1s
CI/CD Pipeline / Build Production Web Image (push) Failing after 1080h16m2s
CI/CD Pipeline / PR Build Web Image (push) Failing after 1080h25m45s
- 新增 video_validation 模块(moov atom 检测 + ffprobe 验证 + 退出码映射)
- render_adapter 渲染后自动校验输出再上传 OSS
- 三个渲染任务加 10 分钟 soft_time_limit
- Worker 启动时清理 GenerationTask + Job 两张表的孤儿任务
- 21 个新单元测试,全量 13713 测试通过
2026-08-02 15:34:22 +08:00
xiaoxia 76fdab4f63 fix(ci): 修复develop分支CI核心链路失败(Code Quality + Unit Tests + Frontend) (#1129)
CI/CD Pipeline / Validate - Type Check (mypy) (push) Successful in 2m2s
CI/CD Pipeline / Validate - Migration (alembic) (push) Successful in 2m46s
CI/CD Pipeline / Frontend Unit Tests (push) Successful in 2m56s
CI/CD Pipeline / Build Staging Web Image (push) Successful in 3m27s
CI/CD Pipeline / Validate - Code Quality (push) Successful in 5m17s
CI/CD Pipeline / Build Staging Worker Image (push) Successful in 5m33s
CI/CD Pipeline / Integration Tests (push) Successful in 2m51s
CI/CD Pipeline / Unit Tests (push) Successful in 10m13s
CI/CD Pipeline / Build Staging API Image (push) Successful in 12m49s
CI/CD Pipeline / Deploy Staging (Watchtower auto-deploy) (push) Successful in 29s
CI/CD Pipeline / ACR Image Cleanup (push) Failing after 14s
CI/CD Pipeline / Staging E2E Tests (push) Failing after 17s
CI/CD Pipeline / Staging API Integration Tests (push) Successful in 5m31s
CI/CD Pipeline / Canary Release to Production (push) Failing after 1178h56m20s
CI/CD Pipeline / Deploy Production (push) Failing after 1179h4m58s
CI/CD Pipeline / CI Gate (push) Failing after 1179h4m59s
CI/CD Pipeline / Build Production Web Image (push) Failing after 1179h4m59s
CI/CD Pipeline / Build Production API Image (push) Failing after 1179h4m59s
CI/CD Pipeline / PR Build API Image (push) Failing after 1179h15m13s
CI/CD Pipeline / PR Build Worker Image (push) Failing after 1179h15m11s
CI/CD Pipeline / Frontend Lint (push) Failing after 1179h15m14s
CI/CD Pipeline / Check if frontend-only change (push) Failing after 1179h15m15s
CI/CD Pipeline / Production Browser E2E (push) Failing after 1179h37m56s
CI/CD Pipeline / Build Production Worker Image (push) Failing after 1179h37m58s
CI/CD Pipeline / PR Build Web Image (push) Failing after 1179h48m11s
2026-07-29 12:12:37 +08:00
CI Bot 4c31026f81 style: auto-format with black + isort + prettier [skip ci-format-check]
CI/CD Pipeline / Validate - Type Check (mypy) (push) Successful in 2m37s
CI/CD Pipeline / Build Staging Web Image (push) Successful in 2m38s
CI/CD Pipeline / Validate - Migration (alembic) (push) Successful in 2m48s
CI/CD Pipeline / Frontend Unit Tests (push) Failing after 3m29s
CI/CD Pipeline / Validate - Code Quality (push) Failing after 4m7s
CI/CD Pipeline / Integration Tests (push) Successful in 2m46s
CI/CD Pipeline / Build Staging Worker Image (push) Successful in 7m34s
CI/CD Pipeline / Unit Tests (push) Failing after 8m43s
CI/CD Pipeline / Build Staging API Image (push) Successful in 15m49s
CI/CD Pipeline / Deploy Staging (Watchtower auto-deploy) (push) Successful in 30s
CI/CD Pipeline / Staging E2E Tests (push) Failing after 17s
CI/CD Pipeline / ACR Image Cleanup (push) Failing after 17s
CI/CD Pipeline / Staging API Integration Tests (push) Successful in 4m22s
CI/CD Pipeline / Canary Release to Production (push) Failing after 1180h37m6s
CI/CD Pipeline / Production Browser E2E (push) Failing after 1180h49m2s
CI/CD Pipeline / Deploy Production (push) Failing after 1180h49m3s
CI/CD Pipeline / Build Production Worker Image (push) Failing after 1180h49m4s
CI/CD Pipeline / Build Production Web Image (push) Failing after 1180h49m4s
CI/CD Pipeline / Build Production API Image (push) Failing after 1180h49m5s
CI/CD Pipeline / PR Build Worker Image (push) Failing after 1180h57m48s
CI/CD Pipeline / PR Build API Image (push) Failing after 1180h57m50s
CI/CD Pipeline / Frontend Lint (push) Failing after 1180h57m50s
CI/CD Pipeline / Check if frontend-only change (push) Failing after 1180h57m52s
CI/CD Pipeline / CI Gate (push) Failing after 1181h22m3s
CI/CD Pipeline / PR Build Web Image (push) Failing after 1181h30m47s
2026-07-29 02:18:43 +00:00
xiaoxia 0ce9a22b91 fix: 补全 shared/worker 层对 domain 常量的 re-export
domain 层重构后,部分常量未从 shared/worker 层 re-export,
导致 10 个测试模块因 ImportError 无法收集。

修复:
- packages/shared/url_security.py: 补全 ALLOWED_AUDIO_MIME_TYPES,
  ALLOWED_IMAGE_MIME_TYPES, MAX_URL_LENGTH 的 re-export,
  以及 _check_internal_hostnames, _check_ssrf_ip, _is_trusted_domain
  私有别名
- apps/worker/video_processing/speed_engine.py: 补全 MAX_SPEED,
  MIN_SPEED 的 re-export

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-28 16:29:14 +08:00
xiaoxia 39187a0660 fix: 修复 20 个 ruff lint 错误,解除所有 PR CI 阻塞
CI/CD Pipeline / Check if frontend-only change (push) Has been cancelled
CI/CD Pipeline / Validate - Code Quality (push) Has been cancelled
CI/CD Pipeline / Validate - Type Check (mypy) (push) Has been cancelled
CI/CD Pipeline / Validate - Migration (alembic) (push) Has been cancelled
CI/CD Pipeline / Unit Tests (push) Has been cancelled
CI/CD Pipeline / Integration Tests (push) Has been cancelled
CI/CD Pipeline / Frontend Lint (push) Has been cancelled
CI/CD Pipeline / Frontend Unit Tests (push) Has been cancelled
CI/CD Pipeline / PR Build API Image (push) Has been cancelled
CI/CD Pipeline / PR Build Web Image (push) Has been cancelled
CI/CD Pipeline / PR Build Worker Image (push) Has been cancelled
CI/CD Pipeline / Build Staging API Image (push) Has been cancelled
CI/CD Pipeline / Build Staging Web Image (push) Has been cancelled
CI/CD Pipeline / Build Staging Worker Image (push) Has been cancelled
CI/CD Pipeline / Deploy Staging (Watchtower auto-deploy) (push) Has been cancelled
CI/CD Pipeline / Staging E2E Tests (push) Has been cancelled
CI/CD Pipeline / Staging API Integration Tests (push) Has been cancelled
CI/CD Pipeline / Build Production API Image (push) Has been cancelled
CI/CD Pipeline / Build Production Web Image (push) Has been cancelled
CI/CD Pipeline / Build Production Worker Image (push) Has been cancelled
CI/CD Pipeline / Deploy Production (push) Has been cancelled
CI/CD Pipeline / Production Browser E2E (push) Has been cancelled
CI/CD Pipeline / ACR Image Cleanup (push) Has been cancelled
CI/CD Pipeline / Canary Release to Production (push) Has been cancelled
CI/CD Pipeline / CI Gate (push) Has been cancelled
F401 (14): 移除未使用的 import
  - multi_track_mixer_pure.py: Any, Optional, math
  - pip_engine_pure.py: Any
  - speed_engine.py: Optional, MAX_SPEED, MIN_SPEED
  - url_security.py: ALLOWED_AUDIO_MIME_TYPES, ALLOWED_IMAGE_MIME_TYPES,
    ALLOWED_VIDEO_MIME_TYPES, MAGIC_NUMBERS, MAX_URL_LENGTH,
    check_internal_hostname, is_trusted_domain

E741 (3): 重命名模糊变量 l → layer
  - pip_engine_pure.py: lambda 参数
  - test_pip_engine_pure.py: 两处列表推导

B017 (2): pytest.raises(Exception) → FrozenInstanceError
  - test_video_filter_builder.py
  - test_transition_presets.py

B905 (1): zip() 补充 strict=True
  - pip_engine_pure.py
2026-07-28 16:03:01 +08:00