4db9353b18
CI/CD Pipeline / Check if frontend-only change (pull_request) Successful in 11s
CI/CD Pipeline / Validate - Type Check (mypy) (pull_request) Successful in 58s
CI/CD Pipeline / Validate - Migration (alembic) (pull_request) Successful in 58s
CI/CD Pipeline / Frontend Lint (pull_request) Failing after 53s
CI/CD Pipeline / Build Staging API Image (pull_request) Has been skipped
CI/CD Pipeline / Build Staging Web Image (pull_request) Has been skipped
CI/CD Pipeline / Build Staging Worker Image (pull_request) Has been skipped
CI/CD Pipeline / PR Build Worker Image (pull_request) Successful in 41s
CI/CD Pipeline / Validate - Code Quality (pull_request) Failing after 2m4s
CI/CD Pipeline / PR Build Web Image (pull_request) Successful in 1m2s
PR Automation / Auto Merge on CI Green + Approved (pull_request) Successful in 51s
Preview Deploy / Deploy Preview Environment (pull_request) Successful in 57s
CI/CD Pipeline / PR Build API Image (pull_request) Successful in 4m3s
PR Automation / Auto Approve on CI Green (pull_request) Successful in 3m17s
AI Code Review / AI Code Review (pull_request) Successful in 6m38s
CI/CD Pipeline / Frontend Unit Tests (pull_request) Has been skipped
CI/CD Pipeline / Build Production API Image (pull_request) Has been skipped
CI/CD Pipeline / Build Production Web Image (pull_request) Has been skipped
CI/CD Pipeline / Build Production Worker Image (pull_request) Has been skipped
CI/CD Pipeline / Deploy Staging (Watchtower auto-deploy) (pull_request) Has been skipped
CI/CD Pipeline / Integration Tests (pull_request) Successful in 2m30s
CI/CD Pipeline / Unit Tests (pull_request) Successful in 3m38s
CI/CD Pipeline / Deploy Production (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 / Production Browser E2E (pull_request) Has been skipped
CI/CD Pipeline / Canary Release to Production (pull_request) Has been skipped
ACR Cleanup / ACR Image Cleanup (pull_request_target) Has been cancelled
Preview Cleanup / Cleanup Preview Environment (pull_request) Successful in 20s
从 video_compose_service.py 抽离 FFmpeg 滤镜构建纯逻辑到 packages/domain/video_filter_builder.py: - ClipFilterChain 数据类 - build_clip_filter: 单片段滤镜链(scale/pad/format/fps/setpts/trim) - build_concat_filter: concat 拼接(含音频归一化) - build_xfade_filter: xfade 转场链(fade/slide/dissolve/wipe) - build_filter_complex: 策略选择(单片段/concat/xfade) - chain_filters / has_audio 工具函数 - 常量与 XFADE_TRANSITION_MAP video_compose_service.py 保留向后兼容别名(私有方法+模块级函数均委托到新模块) 测试:+73 个单测,覆盖所有边界 - 原有 42 个测试全部通过(向后兼容验证) - 新增 73 个测试,覆盖数据类/常量/所有函数的正反向路径 - 648行 → 436行(-33%),新模块 379 行
xiaoxia-saas API
结构
app/core/:配置与基础能力app/api/:路由组织app/schemas/:请求响应模型app/dependencies.py:依赖注入入口main.py:FastAPI 启动入口
当前可用接口
GET /api/healthGET /api/projects?workspace_id=...POST /api/projects