decbc107fb
CI/CD Pipeline / Check push changed paths (pull_request) Has been skipped
CI/CD Pipeline / Dedup Check - skip PR tests when covered by push pipeline (pull_request) Successful in 2s
CI/CD Pipeline / Check if frontend-only change (pull_request) Successful in 2s
CI/CD Pipeline / Frontend Lint (pull_request) Has been skipped
CI/CD Pipeline / Frontend Unit Tests (pull_request) Has been skipped
CI/CD Pipeline / PR Build Web Image (pull_request) Has been skipped
CI/CD Pipeline / Build Staging API Image (pull_request) Has been skipped
CI/CD Pipeline / Build Staging Worker Image (pull_request) Has been skipped
CI/CD Pipeline / Build Staging Web Image (pull_request) Has been skipped
CI/CD Pipeline / Retag skipped Staging API Image (pull_request) Has been skipped
CI/CD Pipeline / Retag skipped Staging Web Image (pull_request) Has been skipped
CI/CD Pipeline / Retag skipped Staging Worker Image (pull_request) Has been skipped
CI/CD Pipeline / Deploy Staging (Watchtower auto-deploy) (pull_request) Has been skipped
CI/CD Pipeline / Staging E2E Tests (pull_request) Has been skipped
CI/CD Pipeline / Staging API Integration Tests (pull_request) Has been skipped
CI/CD Pipeline / ACR Image Cleanup (pull_request) Has been skipped
CI/CD Pipeline / PR Build API Image (pull_request) Successful in 40s
CI/CD Pipeline / PR Build Worker Image (pull_request) Successful in 3m42s
CI/CD Pipeline / Integration Tests (pull_request) Successful in 4m31s
CI/CD Pipeline / Unit Tests (pull_request) Successful in 4m34s
CI/CD Pipeline / Validate - Style (pull_request) Successful in 4m51s
CI/CD Pipeline / Validate - Python (mypy + alembic) (pull_request) Successful in 5m2s
Preview Deploy / Deploy Preview Environment (pull_request) Successful in 6m10s
AI Code Review / AI Code Review (pull_request) Successful in 6m39s
PR Automation / Auto Approve on CI Green (pull_request) Successful in 7m24s
CI/CD Pipeline / Validate - Security (pull_request) Successful in 10m4s
CI/CD Pipeline / Build Production Web Image (pull_request) Has been skipped
CI/CD Pipeline / Build Production Worker Image (pull_request) Has been skipped
CI/CD Pipeline / Build Production API Image (pull_request) Has been skipped
CI/CD Pipeline / CI Gate (pull_request) Successful in 1s
CI/CD Pipeline / Deploy Production (pull_request) Has been skipped
CI/CD Pipeline / Canary Release to Production (pull_request) Has been skipped
CI/CD Pipeline / Production Browser E2E (pull_request) Has been skipped
PR Automation / Auto Merge on CI Green + Approved (pull_request) Successful in 3m26s
ACR Cleanup / ACR Image Cleanup (pull_request_target) Successful in 24s
Preview Cleanup / Cleanup Preview Environment (pull_request) Successful in 47s
Bug1 (P1) 封面评分在 TemporaryDirectory 退出后执行,帧文件已删除: - score_frames 移入 with TemporaryDirectory 块内,帧文件存在时评分 - 评分在上传之前完成,按评分顺序并发上传,best 帧 is_best=True 标为 frame_0 - MediaKit 路径帧在 NamedTemporaryFile 持久存在,改在 MediaKit 循环内就地评分 - 评分失败打 warning 保持原顺序,不静默、不阻塞上传 - 本地帧 by TemporaryDirectory 自动清理,不再入 _temp_paths 重复 unlink - 补 3 个单测:帧文件存在性、scorer 异常兜底、best 排序 Bug2 (P1) /direct/complete 命中 prepare 占位 asset 直接返 duplicated 吞 ingest: - 新增 IngestJobRepository.find_by_asset_id(port + SQLAlchemy + InMemory 实现) - 新增 _is_true_duplicate 区分真重复 vs 占位: - READY → 真重复(返 duplicated) - PROCESSING/UPLOADING 且有在跑/已完成 job → 幂等重试返 duplicated + 已有 job_id - PROCESSING/UPLOADING 且无 job → 占位/孤儿,继续补提 ingest - ERROR/DELETED → 允许重新 ingest - complete_direct_upload / upload_asset 两处早返逻辑替换为 _is_true_duplicate - _submit_ingest_job 前加幂等守卫:find_by_asset_id 命中已有 job 直接复用,避免竞态重复提交 - 补 5 个单测覆盖:占位补 ingest、READY 真重复、PROCESSING+已有job幂等、ERROR 重入、multipart 占位补 ingest