灵应
18ea6cfadb
feat(phase8): AutoClipService 智能选片服务 (任务 2.07)
...
Deploy / Build Production Runtime Images (push) Has been skipped
Deploy / Deploy Production (push) Has been skipped
Deploy / Production Browser E2E (push) Has been skipped
CI/CD Pipeline / Frontend Lint (pull_request) Failing after 185h13m20s
CI/CD Pipeline / Validate Code Quality And Tests (pull_request) Failing after 185h13m24s
Deploy / Deploy Staging (push) Failing after 185h13m50s
CI/CD Pipeline / Frontend Lint (push) Failing after 185h14m17s
CI/CD Pipeline / Validate Code Quality And Tests (push) Failing after 185h14m23s
- 新增 AutoClipService:自动为剪辑计划片段分配最佳素材
- 评分算法:质量分(0.5) + 时长匹配(0.3) + 分类匹配(0.2)
- 支持按 file_type/quality_score/duration/classification/tags 筛选
- AssetRepository 新增 search_candidates() 方法(抽象+SQLAlchemy实现)
- 18 个单元测试全部通过
2026-07-01 19:40:02 +08:00
xiaoxia
52ff2f80ad
style: apply black formatting to pass CI validation ( #126 )
CI/CD Pipeline / Validate Code Quality And Tests (push) Has been cancelled
CI/CD Pipeline / Frontend Lint (push) Has been cancelled
Deploy / Deploy Staging (push) Has been cancelled
Deploy / Build Production Runtime Images (push) Has been cancelled
Deploy / Deploy Production (push) Has been cancelled
Deploy / Production Browser E2E (push) Has been cancelled
2026-06-30 17:23:08 +08:00
Audit Bot
f9e8d6efdc
fix: 修复 3 个 P0 端点 500 错误的真正根因
...
CI/CD Pipeline / Validate Code Quality And Tests (pull_request) Has been cancelled
CI/CD Pipeline / Frontend Lint (pull_request) Has been cancelled
Bug 1 — GET /api/v1/assets → 500:
asset_repository 所有方法为 async def,但调用方为同步上下文,
未 await 导致返回 coroutine 对象而非实际数据。
修复:全部改为 def(同步),与 SQLAlchemy 同步 Session 一致。
Bug 2 — POST /api/v1/generation/tasks → 500:
GenerationTaskModel 仍定义 edit_plan_id 列,但迁移 011 已从数据库
删除该列,INSERT 时报 column does not exist。
修复:从 model、repository、domain entity、application use case、
所有路由中彻底移除 edit_plan_id 引用。
Bug 3 — GET /api/v1/dashboard/overview → 500:
generation_task_repository._to_domain() 访问 model.edit_plan_id,
该列已被迁移 011 删除,触发 AttributeError。
修复:同上,移除 edit_plan_id 引用。
涉及文件:
- packages/adapters/sqlalchemy_impl/asset_repository.py (async→sync)
- packages/ports/asset_repository.py (async→sync 接口)
- packages/adapters/sqlalchemy_impl/models.py (移除 edit_plan_id 列)
- packages/adapters/sqlalchemy_impl/generation_task_repository.py
- packages/domain/generation_task.py
- packages/application/generation_tasks.py
- apps/api/app/api/routes/generation_tasks.py
- apps/api/app/api/routes/task_center.py
2026-06-29 20:10:51 +08:00
Audit Bot
e723025889
fix: 修复 projects 500 + 实现 dashboard/overview 端点
...
CI/CD Pipeline / Validate Code Quality And Tests (pull_request) Has been cancelled
CI/CD Pipeline / Frontend Lint (pull_request) Has been cancelled
Bug 1: GET /api/v1/projects → 500
- _to_project_response() 缺少 owner_user_id 和 shared_users 字段
- 补全 ProjectResponse schema 必填字段
Bug 2: GET /api/v1/dashboard/overview → 404
- 新建 dashboard schema + route
- 添加 count_by_user / count_by_project_ids / sum_storage_by_project_ids 仓储方法
- 注册 /api/v1/dashboard 路由
2026-06-29 18:12:39 +08:00
API文档维护Agent
9b016e3b2d
fix: 回退域对象 extra_meta → metadata(5文件16处)
...
CI/CD Pipeline / Validate Code Quality And Tests (pull_request) Has been cancelled
CI/CD Pipeline / Frontend Lint (pull_request) Has been cancelled
Asset 域对象属性名为 metadata,不是 extra_meta。
extra_meta 仅用于 SQLAlchemy model 层(对应 DB 列)。
修复文件:
- packages/adapters/sqlalchemy_impl/asset_repository.py (L63, L88)
- apps/api/app/api/routes/assets.py (L30, L72, L73)
- apps/api/app/api/routes/asset_diagnosis.py (L52, L55, L56, L57)
- apps/worker/worker_app/core/asset_usage.py (L5, L6, L7, L9)
- apps/worker/worker_app/tasks/voice_extraction.py (L69, L70, L71, L104, L105, L106)
2026-06-28 17:56:02 +08:00
API文档维护Agent
87360051fa
fix: rename metadata to extra_meta to avoid SQLAlchemy reserved field conflict
...
SQLAlchemy's 'metadata' attribute is reserved for model metadata, causing
service startup crash. Changed to 'extra_meta' with Column('metadata', JSON)
mapping to preserve database column name.
Affected models (7):
- AssetLibraryModel, AssetModel, AssetClassificationModel
- GenerationTaskModel, DuplicationRecordModel
- TitleLibraryModel, VoiceLibraryModel
Updated all references across:
- packages/adapters/sqlalchemy_impl/{title_library,voice_library,asset}_repository.py
- apps/worker/worker_app/{core/asset_usage.py,tasks/voice_extraction.py}
- apps/api/app/api/routes/{asset_diagnosis.py,assets.py}
2026-06-28 16:49:23 +08:00
xiaoxia
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
2026-06-26 19:16:54 +08:00
Xiaoxia AI
bfbaddbd9a
style: normalize python formatting gates
2026-06-21 06:52:19 +08:00
Xiaoxia AI
758c2c7e13
feat(phase7): align asset flow and scaffold generation pipeline
2026-06-18 19:59:37 +08:00
Xiaoxia AI
8d78798a7d
fix(phase7): align api runtime wiring for integration
2026-06-17 18:48:08 +08:00
Xiaoxia AI
db1ebc4e9d
feat(phase7): add asset classification workflow
2026-06-17 18:29:48 +08:00
Xiaoxia AI
f0ee5c6184
feat: persist ingest flow in postgres
2026-06-15 19:34:47 +08:00
Xiaoxia AI
e4e2595e70
feat: add PostgreSQL persistence layer
...
- adapters: SQLAlchemy implementations for all 4 repositories (Project, AssetLibrary, Asset, IngestJob)
- models: SQLAlchemy ORM models with proper schema
- database: connection config and session management
- tests: SQLAlchemy repository integration test (in-memory SQLite)
- all 7 integration tests passing
2026-06-15 15:29:13 +08:00