Commit Graph

13 Commits

Author SHA1 Message Date
灵应 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