develop
17 Commits
| Author | SHA1 | Message | Date | |
|---|---|---|---|---|
|
|
dc816991d6 |
fix(assets): smart-match 响应扁平化——item 顶层直出素材字段,修复自动选素材全链路 404/422
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 4s
CI/CD Pipeline / Check if frontend-only change (pull_request) Successful in 3m38s
CI/CD Pipeline / Validate - Migration (alembic) (push) Successful in 4m3s
CI/CD Pipeline / Check push changed paths (push) Successful in 4m24s
CI/CD Pipeline / Validate - Type Check (mypy) (push) Successful in 4m58s
Preview Deploy / Deploy Preview Environment (pull_request) Successful in 5m29s
CI/CD Pipeline / PR Build API Image (pull_request) Successful in 2m44s
CI/CD Pipeline / PR Build Worker Image (pull_request) Successful in 3m9s
CI/CD Pipeline / Build Staging Worker Image (push) Successful in 2m34s
CI/CD Pipeline / Build Staging API Image (push) Successful in 2m40s
CI/CD Pipeline / Frontend Unit Tests (push) Successful in 7m17s
CI/CD Pipeline / CI Gate (pull_request) Successful in 47s
CI/CD Pipeline / Retag skipped Staging Web Image (push) Successful in 45s
AI Code Review / AI Code Review (pull_request) Successful in 7m56s
PR Automation / Auto Approve on CI Green (pull_request) Successful in 8m7s
CI/CD Pipeline / Deploy Staging (Watchtower auto-deploy) (push) Successful in 59s
CI/CD Pipeline / Frontend Lint (push) Failing after 10m18s
CI/CD Pipeline / Validate - Code Quality (push) Successful in 10m59s
CI/CD Pipeline / ACR Image Cleanup (push) Successful in 2m17s
CI/CD Pipeline / Staging API Integration Tests (push) Successful in 3m57s
CI/CD Pipeline / Staging E2E Tests (push) Successful in 4m45s
CI/CD Pipeline / Integration Tests (push) Successful in 3m5s
CI/CD Pipeline / Unit Tests (push) Successful in 14m44s
CI/CD Pipeline / Production Browser E2E (push) Failing after 385h35m28s
CI/CD Pipeline / Canary Release to Production (push) Failing after 385h35m29s
CI/CD Pipeline / CI Gate (push) Failing after 385h35m30s
CI/CD Pipeline / Build Production Worker Image (push) Failing after 385h35m30s
CI/CD Pipeline / Retag skipped Staging Worker Image (push) Failing after 385h43m8s
CI/CD Pipeline / Build Production Web Image (push) Failing after 385h35m30s
CI/CD Pipeline / Retag skipped Staging API Image (push) Failing after 385h43m9s
CI/CD Pipeline / Build Staging Web Image (push) Failing after 385h45m50s
CI/CD Pipeline / Production Browser E2E (pull_request) Failing after 385h46m4s
CI/CD Pipeline / Canary Release to Production (pull_request) Failing after 385h46m6s
CI/CD Pipeline / Build Production Worker Image (pull_request) Failing after 385h46m8s
CI/CD Pipeline / Build Production Web Image (pull_request) Failing after 385h46m10s
CI/CD Pipeline / Integration Tests (pull_request) Failing after 385h46m35s
CI/CD Pipeline / Build Production API Image (pull_request) Failing after 385h46m12s
CI/CD Pipeline / Unit Tests (pull_request) Failing after 385h46m37s
CI/CD Pipeline / PR Build Web Image (pull_request) Failing after 385h46m31s
CI/CD Pipeline / Staging E2E Tests (pull_request) Failing after 385h47m13s
CI/CD Pipeline / Frontend Unit Tests (pull_request) Failing after 385h46m33s
CI/CD Pipeline / Deploy Staging (Watchtower auto-deploy) (pull_request) Failing after 385h47m15s
CI/CD Pipeline / ACR Image Cleanup (pull_request) Failing after 385h47m9s
CI/CD Pipeline / Retag skipped Staging Web Image (pull_request) Failing after 385h49m53s
CI/CD Pipeline / Retag skipped Staging API Image (pull_request) Failing after 385h49m55s
CI/CD Pipeline / Validate - Type Check (mypy) (pull_request) Failing after 385h49m59s
CI/CD Pipeline / Validate - Code Quality (pull_request) Failing after 385h50m1s
CI/CD Pipeline / Build Staging Web Image (pull_request) Failing after 385h50m5s
CI/CD Pipeline / Build Staging API Image (pull_request) Failing after 385h50m7s
CI/CD Pipeline / PR Build Worker Image (push) Failing after 385h50m10s
CI/CD Pipeline / PR Build Web Image (push) Failing after 385h50m11s
PR Automation / Auto Merge on CI Green + Approved (pull_request) Failing after 385h50m16s
CI/CD Pipeline / PR Build API Image (push) Failing after 385h50m13s
CI/CD Pipeline / Check push changed paths (pull_request) Failing after 385h50m17s
CI/CD Pipeline / Check if frontend-only change (push) Failing after 385h50m18s
CI/CD Pipeline / Deploy Production (push) Failing after 386h9m40s
CI/CD Pipeline / Build Production API Image (push) Failing after 386h9m41s
CI/CD Pipeline / Deploy Production (pull_request) Failing after 386h20m17s
CI/CD Pipeline / Frontend Lint (pull_request) Failing after 386h20m46s
CI/CD Pipeline / Staging API Integration Tests (pull_request) Failing after 386h21m22s
CI/CD Pipeline / Retag skipped Staging Worker Image (pull_request) Failing after 386h24m2s
CI/CD Pipeline / Validate - Migration (alembic) (pull_request) Failing after 386h24m8s
CI/CD Pipeline / Build Staging Worker Image (pull_request) Failing after 386h24m14s
P0 线上事故:前端 smartMatchAssets 按 {items: AssetItem[]} 解析,
items.map(a => a.id) 直接取 id;但后端 SmartMatchItem 为
{asset: AssetResponse, score, breakdown} 包装结构,导致 id 全为
undefined → GET /assets/undefined 404 连发、POST /clips/from-assets
携带 null 422,自动模式预览无法生成、标题不显示。
修复:
- SmartMatchItem 改为继承 AssetResponse 的扁平结构:id/usable/
used_duration/available_duration/used_ratio 等素材字段全部在 item
顶层,前端拿到即可用;score/breakdown 评分字段保留
- 路由用 model_dump() 解包构造,packages.domain.smart_select_assets
域层 SmartMatchResult.asset 不动,generation_tasks 内部生成链路
([r.asset.id for r in results])零影响
- ClipsFromAssetsRequest 加 pre validator 过滤 null/空串/空白 id;
from-assets 路由层二次归一化兜底,全非法时 400 而非 422/500
测试:扁平结构 3 用例(顶层 id/无 asset 包装/余量字段可读/评分保留)、
端点 TestClient 断言更新、from-assets 容错 4 用例;相关 95 用例全过
|
||
|
|
7cb36a5c3d |
style: auto-format with black + isort + prettier [skip ci-format-check]
CI/CD Pipeline / Check if frontend-only change (pull_request) Successful in 3m9s
PR Automation / Auto Merge on CI Green + Approved (pull_request) Successful in 3m39s
CI/CD Pipeline / Validate - Code Quality (pull_request) Failing after 3m43s
CI/CD Pipeline / Validate - Migration (alembic) (pull_request) Successful in 4m0s
Preview Deploy / Deploy Preview Environment (pull_request) Successful in 4m3s
CI/CD Pipeline / Validate - Type Check (mypy) (pull_request) Successful in 4m7s
CI/CD Pipeline / PR Build API Image (pull_request) Successful in 1m14s
CI/CD Pipeline / PR Build Worker Image (pull_request) Successful in 1m24s
AI Code Review / AI Code Review (pull_request) Failing after 4m42s
PR Automation / Auto Approve on CI Green (pull_request) Successful in 5m49s
CI/CD Pipeline / Integration Tests (pull_request) Successful in 2m58s
CI/CD Pipeline / Unit Tests (pull_request) Successful in 9m19s
CI/CD Pipeline / CI Gate (pull_request) Failing after 24s
CI/CD Pipeline / Production Browser E2E (pull_request) Failing after 420h56m34s
CI/CD Pipeline / Build Production Worker Image (pull_request) Failing after 420h56m38s
CI/CD Pipeline / Build Production Web Image (pull_request) Failing after 420h56m38s
CI/CD Pipeline / PR Build Web Image (pull_request) Failing after 421h5m58s
CI/CD Pipeline / Canary Release to Production (pull_request) Failing after 420h56m36s
CI/CD Pipeline / Frontend Unit Tests (pull_request) Failing after 421h5m58s
CI/CD Pipeline / ACR Image Cleanup (pull_request) Failing after 421h8m58s
CI/CD Pipeline / Frontend Lint (pull_request) Failing after 421h5m59s
CI/CD Pipeline / Staging E2E Tests (pull_request) Failing after 421h8m59s
CI/CD Pipeline / Retag skipped Staging Worker Image (pull_request) Failing after 421h9m2s
CI/CD Pipeline / Retag skipped Staging Web Image (pull_request) Failing after 421h9m2s
CI/CD Pipeline / Build Staging Worker Image (pull_request) Failing after 421h9m6s
CI/CD Pipeline / Build Staging Web Image (pull_request) Failing after 421h9m7s
CI/CD Pipeline / Build Staging API Image (pull_request) Failing after 421h9m8s
CI/CD Pipeline / Check push changed paths (pull_request) Failing after 421h9m10s
CI/CD Pipeline / Deploy Production (pull_request) Failing after 421h30m41s
CI/CD Pipeline / Build Production API Image (pull_request) Failing after 421h30m43s
CI/CD Pipeline / Staging API Integration Tests (pull_request) Failing after 421h43m3s
CI/CD Pipeline / Deploy Staging (Watchtower auto-deploy) (pull_request) Failing after 421h43m6s
CI/CD Pipeline / Retag skipped Staging API Image (pull_request) Failing after 421h43m8s
|
||
|
|
e33502956c |
feat(segments): 片段重复率控制(受控复用+15%闸门)与素材余量四字段
CI/CD Pipeline / Check if frontend-only change (pull_request) Successful in 3m5s
Preview Deploy / Deploy Preview Environment (pull_request) Successful in 3m35s
PR Automation / Auto Merge on CI Green + Approved (pull_request) Successful in 3m38s
AI Code Review / AI Code Review (pull_request) Failing after 3m41s
CI/CD Pipeline / Validate - Type Check (mypy) (pull_request) Successful in 3m44s
CI/CD Pipeline / Validate - Migration (alembic) (pull_request) Successful in 4m6s
CI/CD Pipeline / PR Build API Image (pull_request) Successful in 1m22s
CI/CD Pipeline / PR Build Worker Image (pull_request) Successful in 1m24s
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
PR Automation / Auto Approve on CI Green (pull_request) Has been cancelled
CI/CD Pipeline / PR Build Web Image (pull_request) Failing after 421h11m26s
CI/CD Pipeline / Frontend Lint (pull_request) Failing after 421h11m29s
CI/CD Pipeline / Staging API Integration Tests (pull_request) Failing after 421h14m19s
CI/CD Pipeline / Staging E2E Tests (pull_request) Failing after 421h14m19s
CI/CD Pipeline / Deploy Staging (Watchtower auto-deploy) (pull_request) Failing after 421h14m21s
CI/CD Pipeline / Retag skipped Staging Web Image (pull_request) Failing after 421h14m27s
CI/CD Pipeline / Retag skipped Staging API Image (pull_request) Failing after 421h14m27s
CI/CD Pipeline / Build Staging Web Image (pull_request) Failing after 421h14m33s
CI/CD Pipeline / Build Staging API Image (pull_request) Failing after 421h14m33s
CI/CD Pipeline / Check push changed paths (pull_request) Failing after 421h14m35s
CI/CD Pipeline / Frontend Unit Tests (pull_request) Failing after 421h45m33s
CI/CD Pipeline / ACR Image Cleanup (pull_request) Failing after 421h48m24s
CI/CD Pipeline / Retag skipped Staging Worker Image (pull_request) Failing after 421h48m32s
CI/CD Pipeline / Build Staging Worker Image (pull_request) Failing after 421h48m36s
Task G:任意两条成片画面重复率 ≤15% - MediaKit 智能选片避让历史区间:历史区间并入冲突检查、0.3s 边缘间隙、 撞历史时放弃推荐保留原起点(不再挪到已用画面) - 自动轮回改造为受控复用:历史永不自动清空;used_time_ranges 增加 use_count/last_used_at;100 次随机失败后复用 last_used_at 最老且 use_count<3 的区间;单条成片复用占比 >15% 时该素材停止分配(分配闸门 + 复用回调内预判双闸门);全部素材超限返回 400「素材可切区间不足,请补充新素材」 - 复用回调返回 None 时 calc 直接返回 None(删除末尾/0.0 重叠降级), from-assets 轮询内 calc 失败切换下一素材 - 批量 N 条视频片段独立:count>1 时克隆独立 plan,禁止共用 source_edit_plan_id/clips(合并 Issue #1282);预览同样克隆独立变体 - 常量:REUSE_RATIO_LIMIT=0.15 / SEGMENT_EDGE_GAP=0.3 / MAX_RANGE_USE_COUNT=3 Task H:素材余量透出与已用尽素材排除 - GET /assets 列表与详情响应附加 used_duration/available_duration/ used_ratio/usable 四字段(非视频/无时长/异常时 None + usable=True,零影响) - usable=false:零重复可切区间已耗尽(扩边后无 ≥3s 空闲段)且所有历史 区间 use_count 均达上限 - smart-match 结果层过滤 usable=false 素材(评分逻辑不动) - from-assets 对已用尽素材天然兜底:calc 返回 None → 轮询跳过 → 全部素材用尽时 400 测试:新增 test_mediakit_conflicts(10)/test_clone_plan_variant(7)/ test_asset_availability(23),更新 tracker/clips/mediakit 既有用例; 全量 unit 13910 passed |
||
|
|
8ef96e8569 |
feat: 新增 POST /assets/batch 批量获取素材详情接口 (#1418)
CI/CD Pipeline / Validate - Migration (alembic) (push) Successful in 1m41s
CI/CD Pipeline / Validate - Type Check (mypy) (push) Successful in 2m57s
CI/CD Pipeline / Build Staging Web Image (push) Successful in 5m2s
CI/CD Pipeline / Validate - Code Quality (push) Successful in 7m14s
CI/CD Pipeline / Frontend Unit Tests (push) Successful in 8m20s
CI/CD Pipeline / Integration Tests (push) Successful in 2m39s
CI/CD Pipeline / Unit Tests (push) Has been cancelled
CI/CD Pipeline / Build Staging API 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 / PR Build Worker Image (push) Failing after 697h42m43s
CI/CD Pipeline / PR Build API Image (push) Failing after 697h42m47s
CI/CD Pipeline / Frontend Lint (push) Failing after 697h43m10s
CI/CD Pipeline / Check if frontend-only change (push) Failing after 697h43m32s
CI/CD Pipeline / PR Build Web Image (push) Failing after 698h16m26s
|
||
|
|
4f323b394b |
fix: 音频上传422错误 — create_asset project_id改为可选,从library自动推导 (#1260)
CI/CD Pipeline / Validate - Migration (alembic) (push) Successful in 1m1s
CI/CD Pipeline / Validate - Type Check (mypy) (push) Successful in 1m20s
CI/CD Pipeline / Frontend Unit Tests (push) Failing after 53s
CI/CD Pipeline / Build Staging Web Image (push) Failing after 2m23s
CI/CD Pipeline / Validate - Code Quality (push) Successful in 6m12s
CI/CD Pipeline / Build Staging Worker Image (push) Successful in 6m2s
CI/CD Pipeline / Integration Tests (push) Successful in 4m7s
CI/CD Pipeline / Unit Tests (push) Failing after 11m15s
CI/CD Pipeline / Build Staging API Image (push) Successful in 15m12s
CI/CD Pipeline / Canary Release to Production (push) Failing after 957h59m7s
CI/CD Pipeline / Deploy Staging (Watchtower auto-deploy) (push) Failing after 957h59m9s
CI/CD Pipeline / Production Browser E2E (push) Failing after 958h2m8s
CI/CD Pipeline / CI Gate (push) Failing after 958h2m10s
CI/CD Pipeline / Build Production Worker Image (push) Failing after 958h2m10s
CI/CD Pipeline / ACR Image Cleanup (push) Failing after 957h59m8s
CI/CD Pipeline / Staging API Integration Tests (push) Failing after 957h59m8s
CI/CD Pipeline / Build Production API Image (push) Failing after 958h2m10s
CI/CD Pipeline / PR Build Worker Image (push) Failing after 958h13m12s
CI/CD Pipeline / PR Build API Image (push) Failing after 958h13m14s
CI/CD Pipeline / Frontend Lint (push) Failing after 958h13m17s
CI/CD Pipeline / Check if frontend-only change (push) Failing after 958h14m36s
CI/CD Pipeline / Staging E2E Tests (push) Failing after 958h32m28s
CI/CD Pipeline / Deploy Production (push) Failing after 958h35m29s
CI/CD Pipeline / Build Production Web Image (push) Failing after 958h35m30s
CI/CD Pipeline / PR Build Web Image (push) Failing after 958h46m33s
|
||
|
|
e27a48f0e0 |
feat: implement POST /assets/smart-match endpoint (#1242)
CI/CD Pipeline / Validate - Migration (alembic) (push) Successful in 1m16s
CI/CD Pipeline / Validate - Type Check (mypy) (push) Successful in 1m38s
CI/CD Pipeline / Frontend Unit Tests (push) Successful in 2m44s
CI/CD Pipeline / Build Staging Web Image (push) Successful in 3m17s
CI/CD Pipeline / Validate - Code Quality (push) Successful in 3m29s
CI/CD Pipeline / Integration Tests (push) Successful in 1m40s
CI/CD Pipeline / Build Staging Worker Image (push) Successful in 6m29s
CI/CD Pipeline / Unit Tests (push) Successful in 8m8s
CI/CD Pipeline / Build Staging API Image (push) Successful in 14m13s
CI/CD Pipeline / Deploy Staging (Watchtower auto-deploy) (push) Successful in 47s
CI/CD Pipeline / ACR Image Cleanup (push) Successful in 47s
CI/CD Pipeline / Staging E2E Tests (push) Successful in 2m8s
CI/CD Pipeline / Staging API Integration Tests (push) Successful in 2m59s
CI/CD Pipeline / Canary Release to Production (push) Failing after 1013h18m14s
CI/CD Pipeline / CI Gate (push) Failing after 1013h28m5s
CI/CD Pipeline / Production Browser E2E (push) Failing after 1013h28m3s
CI/CD Pipeline / Build Production Worker Image (push) Failing after 1013h28m6s
CI/CD Pipeline / Build Production Web Image (push) Failing after 1013h28m6s
CI/CD Pipeline / Build Production API Image (push) Failing after 1013h28m6s
CI/CD Pipeline / PR Build Web Image (push) Failing after 1013h36m14s
CI/CD Pipeline / PR Build API Image (push) Failing after 1013h36m16s
CI/CD Pipeline / Check if frontend-only change (push) Failing after 1013h36m18s
CI/CD Pipeline / Deploy Production (push) Failing after 1014h1m21s
CI/CD Pipeline / PR Build Worker Image (push) Failing after 1014h9m31s
CI/CD Pipeline / Frontend Lint (push) Failing after 1014h9m33s
Co-authored-by: xiaoxia <dev@xiaoxiajianji.com> Co-committed-by: xiaoxia <dev@xiaoxiajianji.com> |
||
|
|
ce8f6b7398 |
fix(P0): unified横屏pad取整+错误日志增强+legacy导入+素材created_at (#522)
CI Build & Deploy Pipeline / Staging E2E Tests (push) Failing after 1m35s
CI Build & Deploy Pipeline / Production Browser E2E (push) Failing after 1438h33m42s
CI Build & Deploy Pipeline / Build Production Worker Image (push) Failing after 1438h33m45s
CI Build & Deploy Pipeline / Build Production Web Image (push) Failing after 1438h33m45s
CI Build & Deploy Pipeline / Build Production API Image (push) Failing after 1438h33m46s
CI/CD Pipeline / Check if frontend-only change (push) Failing after 1438h34m11s
CI Build & Deploy Pipeline / Build Staging API Image (push) Has been skipped
CI Build & Deploy Pipeline / Build Staging Web Image (push) Has been skipped
CI Build & Deploy Pipeline / Build Staging Worker Image (push) Has been skipped
CI Build & Deploy Pipeline / Deploy Staging (Watchtower auto-deploy) (push) Has been skipped
CI Build & Deploy Pipeline / Staging API Integration Tests (push) Has been skipped
CI Build & Deploy Pipeline / Deploy Production (push) Failing after 1439h5m47s
CI/CD Pipeline / Validate Code Quality And Tests (push) Has been skipped
CI/CD Pipeline / Unit Tests (push) Has been skipped
CI/CD Pipeline / Integration Tests (push) Has been skipped
CI/CD Pipeline / Frontend Lint (push) Has been skipped
Co-authored-by: xiaoxia <dev@xiaoxiajianji.com> Co-committed-by: xiaoxia <dev@xiaoxiajianji.com> |
||
|
|
58ff565c48 |
feat: 素材批量操作接口(软删除/打标签/改分类/智能视图标记) (#290)
CI/CD Pipeline / Validate Code Quality And Tests (push) Successful in 42s
CI/CD Pipeline / Unit Tests (push) Successful in 1m18s
CI/CD Pipeline / Integration Tests (push) Has been cancelled
CI/CD Pipeline / Frontend Lint (push) Has been cancelled
CI/CD Pipeline / Build & Push 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 Runtime Images (push) Has been cancelled
CI/CD Pipeline / Deploy Production (push) Has been cancelled
CI/CD Pipeline / Production Browser E2E (push) Has been cancelled
feat: 素材批量操作接口(软删除/打标签/改分类/智能视图标记) |
||
|
|
b0f2e4712a |
feat: P3 配音模块标签体系 — 标签 CRUD + 素材打标 + tag_ids 筛选
CI/CD Pipeline / Frontend Lint (push) Failing after 48h55m59s
CI/CD Pipeline / Validate Code Quality And Tests (push) Failing after 48h55m59s
CI/CD Pipeline / Production Browser E2E (push) Failing after 1707h31m26s
CI/CD Pipeline / Staging E2E Tests (push) Failing after 1707h31m28s
CI/CD Pipeline / Build Production Runtime Images (push) Failing after 1707h31m30s
CI/CD Pipeline / Deploy Staging (push) Failing after 1707h31m30s
CI/CD Pipeline / Deploy Production (push) Failing after 1708h2m56s
- 新增 Tag 领域实体 + TagModel/AssetTagModel ORM 模型
- Alembic 迁移 030:tags 表 + asset_tags 关联表
- TagRepository 端口 + SQLAlchemy/InMemory 实现
- Asset.tag_ids 多对多关联替代原 JSON tags
- GET /tags / POST /tags / DELETE /tags/{tag_id} 标签 CRUD
- POST /assets/{asset_id}/tags 打标 / DELETE 取消标签
- GET /assets 新增 tag_ids 筛选参数(逗号分隔,取交集)
- 19 个单元测试全部通过
|
||
|
|
f8bc252ded |
feat(assets): 批量删除接口 + 分页性能优化
CI/CD Pipeline / Staging E2E Tests (push) Failing after 49h30m34s
CI/CD Pipeline / Deploy Staging (push) Failing after 49h34m18s
CI/CD Pipeline / Frontend Lint (push) Failing after 49h36m48s
CI/CD Pipeline / Validate Code Quality And Tests (push) Failing after 49h36m54s
CI/CD Pipeline / Production Browser E2E (push) Failing after 1708h1m5s
CI/CD Pipeline / Deploy Production (push) Failing after 1708h6m40s
CI/CD Pipeline / Build Production Runtime Images (push) Failing after 1708h9m27s
- 新增 POST /assets/batch-delete 批量删除素材接口 - 仓储层: abstract/SQLAlchemy/InMemory 均实现 batch_delete() - API层: 逐项校验项目权限后批量删除 - Schema: BatchDeleteRequest/BatchDeleteResponse - GET /assets 分页优化: 无 keyword/gender/style 过滤时走 DB 级 skip/limit - 素材上传 duration 字段已全链路支持(domain/schema/ORM/repository) - 新增 4 个批量删除单元测试,全量 1030 测试通过 Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> |
||
|
|
30c5cd4bbe |
feat(assets): 分页查询 + voice 默认素材库自动初始化
CI/CD Pipeline / Frontend Lint (push) Failing after 51h1m53s
CI/CD Pipeline / Validate Code Quality And Tests (push) Failing after 51h1m53s
CI/CD Pipeline / Production Browser E2E (push) Failing after 1709h37m3s
CI/CD Pipeline / Staging E2E Tests (push) Failing after 1709h37m5s
CI/CD Pipeline / Build Production Runtime Images (push) Failing after 1709h37m7s
CI/CD Pipeline / Deploy Staging (push) Failing after 1709h37m7s
CI/CD Pipeline / Deploy Production (push) Failing after 1710h8m32s
- GET /assets 增加 skip/limit 分页参数,响应包含 total/skip/limit - GET /asset-libraries 增加 kind 过滤参数 - 新增 POST /asset-libraries/ensure-default 自动创建默认素材库 - 前端上传配音音频走通用上传链路(无缺口) Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> |
||
|
|
2832109b35 |
feat: add P0 asset API endpoints for voice material management
CI/CD Pipeline / Staging E2E Tests (push) Failing after 51h49m13s
CI/CD Pipeline / Deploy Staging (push) Failing after 51h50m36s
CI/CD Pipeline / Frontend Lint (push) Failing after 51h52m26s
CI/CD Pipeline / Validate Code Quality And Tests (push) Failing after 51h52m26s
CI/CD Pipeline / Production Browser E2E (push) Failing after 1710h26m35s
CI/CD Pipeline / Deploy Production (push) Failing after 1710h26m41s
CI/CD Pipeline / Build Production Runtime Images (push) Failing after 1710h26m43s
- GET /assets/{asset_id}: single asset detail
- PUT /assets/{asset_id}: update name, metadata, tags
- DELETE /assets/{asset_id}: delete asset with project access check
- GET /assets: add kind query param (voice/video/image) for filtering
- Add find_by_library_and_file_type to repository port + implementations
Supports the voice material library MVP: CRUD operations needed by the
frontend VoiceLibrary page.
|
||
|
|
356df4663e |
fix: 修复素材库诊断/缩略图/视频URL + 剪辑计划错误处理
Deploy / Staging E2E Tests (push) Has been cancelled
Deploy / Deploy Staging (push) Failing after 111h7m48s
CI/CD Pipeline / Frontend Lint (push) Failing after 111h7m57s
CI/CD Pipeline / Validate Code Quality And Tests (push) Failing after 111h7m57s
Deploy / Production Browser E2E (push) Failing after 1769h43m24s
Deploy / Deploy Production (push) Failing after 1769h43m26s
Deploy / Build Production Runtime Images (push) Failing after 1769h43m28s
Task #105: 修复剪辑计划/模板页面报服务器繁忙 - templates.py: list_templates/get_template/list_categories 加 try/except - templates.py: 新增 POST /{template_id}/toggle-favorite 兼容端点 - edit_plans.py: list_plans 加 try/except,ai_tasks 加 ImportError 守卫 Task #106: 修复素材库诊断按钮 + 缩略图/视频URL - asset_diagnosis.py: get_project_asset_diagnosis 加 try/except - assets.py: 注入 storage_service,生成签名 file_url - asset.py schema: 新增 file_url 字段 - 视频素材 thumbnail_url 为空时复用 file_url 作为封面 其他: - edit_plans/generation_tasks 支持 source_edit_plan_id - Alembic 迁移 022: 两表加 source_edit_plan_id 字段 |
||
|
|
0422967229 |
refactor: Remove workspace concept - Projects now directly under User
BREAKING CHANGES:
- Removed Workspace, WorkspaceMember, WorkspaceInvitation entities
- Project now has owner_user_id instead of workspace_id
- Added shared_users list to Project for collaboration
- Subscription/quota moved from Workspace to User level
Changes:
- packages/domain/entities.py: Removed Workspace entities, updated Project
- packages/adapters/sqlalchemy_impl/models.py: Updated models
- packages/application/: Removed workspace use cases, updated other use cases
- packages/ports/: Removed workspace repository interfaces
- apps/api/: Updated routes, schemas, dependencies, router
- alembic/versions/007_remove_workspace_concept.py: Database migration
New APIs:
- POST /projects/{id}/share: Share project with user
- DELETE /projects/{id}/share/{user_id}: Unshare project
|
||
|
|
9cc48aeee9 | feat(assets): add review actions and high risk view | ||
|
|
758c2c7e13 | feat(phase7): align asset flow and scaffold generation pipeline | ||
|
|
b5a62ee9a3 |
feat: initial SaaS scaffold
- domain: User, Workspace, Project, AssetLibrary, Asset, IngestJob - ports: repository interfaces - application: use cases - adapters: in-memory - API: FastAPI 5 routes - worker: Celery ingest_asset - tests: 4 passing |