xiaoxia
127dc4a769
fix: IngestJobResponse.result_asset_id 改为可选字段
Deploy / Build Production Runtime Images (push) Has been skipped
Deploy / Deploy Production (push) Has been skipped
Deploy / Production Browser E2E (push) Has been skipped
Deploy / Deploy Staging (push) Failing after 163h34m12s
CI/CD Pipeline / Frontend Lint (push) Failing after 163h34m13s
CI/CD Pipeline / Validate Code Quality And Tests (push) Failing after 163h34m19s
2026-07-02 17:20:14 +08:00
灵应
e29a698325
feat: implement TTS synthesis API (task 3.06)
...
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 169h43m28s
CI/CD Pipeline / Validate Code Quality And Tests (pull_request) Failing after 169h43m33s
Deploy / Deploy Staging (push) Failing after 169h47m22s
CI/CD Pipeline / Frontend Lint (push) Failing after 169h47m58s
CI/CD Pipeline / Validate Code Quality And Tests (push) Failing after 169h48m6s
- POST /api/v1/tts/synthesize: create TTS job (status=pending)
- GET /api/v1/tts/jobs: list user's jobs (page/page_size pagination)
- GET /api/v1/tts/jobs/{job_id}: get job details
- GET /api/v1/tts/jobs/{job_id}/status: query status for polling
- DELETE /api/v1/tts/jobs/{job_id}: delete job (soft delete)
Includes:
- Schema: TTSSynthesizeRequest, TTSJobResponse, ListTTSJobResponse, TTSStatusResponse
- Use Cases: CreateTTSJob, ListTTSJobs, GetTTSJob, GetTTSJobStatus, DeleteTTSJob
- SQLAlchemy adapter: SQLAlchemyTTSJobRepository
- ORM model: TTSJobModel
- Alembic migration: 020_add_tts_jobs_table
- Unit tests: 14 tests covering all use cases
CosyVoice API calls deferred to task 3.07.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com >
2026-07-02 11:06:25 +08:00
灵应
c55dafdbb1
feat: implement voice clone API (Task 3.05)
...
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 170h0m19s
CI/CD Pipeline / Validate Code Quality And Tests (pull_request) Failing after 170h0m23s
Deploy / Deploy Staging (push) Failing after 170h2m52s
CI/CD Pipeline / Frontend Lint (push) Failing after 170h3m23s
CI/CD Pipeline / Validate Code Quality And Tests (push) Failing after 170h3m30s
- Add VoiceCloneProfile CRUD endpoints:
POST /api/v1/voice-clones (create clone task, status=pending)
GET /api/v1/voice-clones (list with pagination + status filter)
GET /api/v1/voice-clones/{id} (get details)
GET /api/v1/voice-clones/{id}/status (polling endpoint)
DELETE /api/v1/voice-clones/{id} (soft delete)
POST /api/v1/voice-clones/{id}/retry (retry failed clone)
- Add VoiceCloneProfile SQLAlchemy model and repository adapter
- Add Alembic migration 019 for voice_clone_profiles table
- Add use cases: Create, List, Get, GetStatus, Delete, Retry
- Add Pydantic schemas for request/response validation
- Add 19 unit tests (all passing)
- CosyVoice API integration deferred to Task 3.07
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com >
2026-07-02 10:50:57 +08:00
灵应
44dc89360a
feat: 配音列表 API 增强 — 预置音色 + 克隆音色统一接口
...
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 170h24m47s
CI/CD Pipeline / Validate Code Quality And Tests (pull_request) Failing after 170h24m52s
Deploy / Deploy Staging (push) Failing after 170h27m34s
CI/CD Pipeline / Frontend Lint (push) Failing after 170h28m8s
CI/CD Pipeline / Validate Code Quality And Tests (push) Failing after 170h28m14s
- 新增预置音色配置(8 个 CosyVoice 真实音色)
- 增强 GET /api/v1/voices 接口,支持 type 查询参数(preset/clone/all)
- 新增 GET /api/v1/voices/presets 端点
- 统一响应格式,包含 preset_count 和 clone_count
- 保留原有 CRUD 端点向后兼容
- 添加 18 个预置音色单元测试(全部通过)
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com >
2026-07-02 10:26:14 +08:00
CI Test
43366f290c
feat: 实现任务2.10 JobService — 异步任务管理
...
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 181h43m15s
CI/CD Pipeline / Validate Code Quality And Tests (pull_request) Failing after 181h43m19s
Deploy / Deploy Staging (push) Failing after 181h59m26s
CI/CD Pipeline / Frontend Lint (push) Failing after 181h59m53s
CI/CD Pipeline / Validate Code Quality And Tests (push) Failing after 182h0m0s
- 新增 Job 领域模型(状态机、JobType/JobStatus 枚举)
- 新增 JobRepository 端口 + SQLAlchemy 实现
- 新增 10 个 Use Cases(CreateJob/Submit/Progress/Complete/Fail/Retry/Cancel/Get/List/Statistics)
- 新增 JobService 服务层,集成 VideoComposeService
- 新增 Pydantic schemas + RESTful API 路由
- 新增 Celery compose_video 任务(含进度追踪)
- 新增数据库迁移 018(jobs 表)
- 新增 44 个单元测试,全部通过
- 修复状态转换:允许 pending→success(快速完成场景)
2026-07-01 22:54:21 +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
d2578a9093
fix: PR#112 P2 建议修复
...
CI/CD Pipeline / Validate Code Quality And Tests (pull_request) Has been cancelled
CI/CD Pipeline / Frontend Lint (pull_request) Has been cancelled
P2-1: list_by_user[:5] → list_recent_by_user(user_id, limit=5) SQL层LIMIT
P2-2: DashboardOverviewResponse 补充 subscription 字段(plan + is_active)
- packages/ports/generation_task_repository.py: 新增 list_recent_by_user
- packages/adapters/sqlalchemy_impl/generation_task_repository.py: 实现
- apps/api/app/schemas/dashboard.py: 新增 SubscriptionInfo + subscription 字段
- apps/api/app/api/routes/dashboard.py: 使用新接口 + 填充 subscription
2026-06-29 18:23:49 +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
Audit Bot
ea9e536740
feat: 扩展生成任务API支持模板模式
...
CI/CD Pipeline / Validate Code Quality And Tests (pull_request) Has been cancelled
CI/CD Pipeline / Frontend Lint (pull_request) Has been cancelled
方案A: 后端扩展3处API改动,支持前端模板中心化模型。
1. POST /api/v1/generation/tasks — project_id改为可选,新增template_id/asset_ids/title_ids/voice_ids
2. GET /api/v1/generation/tasks + GET /api/v1/tasks — 新增用户级列表(跨project)
3. POST /api/v1/tasks/{task_id}/retry + POST /api/v1/generation/tasks/{task_id}/retry — 简化重试
改动涉及:
- Domain: GenerationTask新增6个字段,放宽create()校验
- Application: CreateGenerationTaskCommand新增字段
- Ports: GenerationTaskRepository新增list_by_user()
- Adapter: SQLAlchemy模型+仓储实现新字段和list_by_user
- Schema: 双模式校验(project模式/模板模式)
- Routes: generation_tasks + task_center双路由注册
- Migration: 015_add_generation_task_extensions
向后兼容:所有旧端点和参数不变。
2026-06-29 17:05:53 +08:00
Audit Bot
9b6a0b8b14
fix: 修复代码审计5个问题 (P0-1,P0-2,P1-3,P1-4,P1-5)
...
CI/CD Pipeline / Validate Code Quality And Tests (pull_request) Has been cancelled
CI/CD Pipeline / Frontend Lint (pull_request) Has been cancelled
P0-1: 剪辑模式使用 EditingMode 枚举,移除硬编码字符串
- voice_over_mix → voice_over, person_narration → voice_pip
- use_cases.py 导入 EditingMode 枚举替代硬编码 VALID_MODES
P0-2: 补充 packages/application/template/__init__.py
P1-3: Use Cases 依赖 TemplateRepositoryPort 而非 SQLAlchemyTemplateRepository
P1-4: generate 端点重命名为 validate(只校验不生成)
- GenerateFromTemplateUseCase → ValidateTemplateUseCase
- POST /{id}/generate → POST /{id}/validate
P1-5: 软删除模板时级联清理关联 segments,避免孤儿数据
测试全部通过 (21/21)
2026-06-29 14:44:24 +08:00
Audit Bot
62c8d1cdff
feat: 剪辑计划编辑器后端 — 模板 CRUD + 分类 + 生成校验
...
CI/CD Pipeline / Validate Code Quality And Tests (pull_request) Has been cancelled
CI/CD Pipeline / Frontend Lint (pull_request) Has been cancelled
- domain: Template, TemplateSegment, TemplateCategory 实体
- ports: TemplateRepositoryPort Protocol
- adapters: SQLAlchemyTemplateRepository + 3 个 ORM Model
- application: CRUD use cases + GenerateFromTemplateUseCase
- 业务规则: one_take=1片段, voice_over_mix=每段需material_type, 配音±30%警告
- schemas: Pydantic request/response models
- routes: /api/v1/templates CRUD + /generate + /categories
- alembic: 014_add_template_tables (templates/template_segments/template_categories)
- tests: 21 个单元测试全部通过
2026-06-29 14:14:58 +08:00
Audit Bot
f2e123a017
feat: 配方复用功能后端实现
...
CI/CD Pipeline / Validate Code Quality And Tests (pull_request) Has been cancelled
CI/CD Pipeline / Frontend Lint (pull_request) Has been cancelled
- domain: Recipe/RecipeItem 实体
- ports: RecipeRepository Protocol
- adapters: SQLAlchemy RecipeRepository 实现 + ORM models
- application: 6个 UseCase (CRUD + Use) + Commands
- API: 6个端点 POST/GET/PATCH/DELETE /recipes + POST /recipes/{id}/use
- feature flag: recipe_reuse 仅 basic/premium 可用
- Alembic 迁移: recipes + recipe_items 表
- 单元测试: 覆盖所有 UseCase
2026-06-29 10:59:05 +08:00
API文档维护Agent
27303e34eb
feat: implement Phase 2 subscription management API
...
CI/CD Pipeline / Validate Code Quality And Tests (pull_request) Has been cancelled
CI/CD Pipeline / Frontend Lint (pull_request) Has been cancelled
Implement 5 subscription endpoints matching frontend subscription.ts:
API Endpoints:
- GET /api/v1/subscription/current — get current subscription info
- GET /api/v1/subscription/billing-records — get billing history
- POST /api/v1/subscription/change-plan — upgrade/downgrade plan
- POST /api/v1/subscription/cancel — cancel subscription
- POST /api/v1/subscription/toggle-auto-renew — toggle auto-renewal
Implementation Details:
- Created subscription schemas (SubscriptionInfo, BillingRecord, etc.)
- Created subscription routes with proper authentication
- Integrated with quota_registry for plan limits
- Added plan validation (free/standard/pro/enterprise)
- Added billing cycle validation (monthly/yearly)
- Registered subscription router in api_router
Note: Billing records currently returns empty list (TODO: implement billing system)
Auto-renew toggle is simulated (TODO: add auto_renew field to User model)
All endpoints follow existing patterns from titles/voices/duplication APIs.
2026-06-28 17:40:59 +08:00
API文档维护Agent
312dad7497
feat: Phase 2 查重后端 API 实现
...
六边形架构分层实现:
Domain 层:
- DuplicationRecord / DuplicateSegment 实体
- 状态机生命周期 (pending→processing→completed/failed)
Ports 层:
- DuplicationRecordRepository Protocol
Adapters 层:
- SQLAlchemyDuplicationRecordRepository 完整实现
- DuplicationRecordModel / DuplicationSegmentModel ORM 模型
Application 层:
- UploadForDuplicationUseCase (上传查重)
- ListDuplicationRecordsUseCase (记录列表)
- GetDuplicationDetailUseCase (详情查询)
- DeleteDuplicationRecordUseCase (删除)
- RetryDuplicationUseCase (重新查重)
API 层:
- POST /api/v1/duplication/upload (上传视频查重)
- GET /api/v1/duplication/records (记录列表)
- GET /api/v1/duplication/records/{id} (详情含片段)
- DELETE /api/v1/duplication/records/{id} (删除)
- POST /api/v1/duplication/records/{id}/retry (重新查重)
Alembic 迁移:
- 011_add_duplication_tables.py (duplication_records + duplication_segments)
API 契约与前端 feat/phase2-duplication-ui (PR#75) 完全对齐。
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com >
2026-06-28 16:12:46 +08:00
API文档维护Agent
a43ddb4b63
feat: Phase 1 - 核心重构(去Project层/标题库API/配音库API/清理废弃代码)
...
CI/CD Pipeline / Validate Code Quality And Tests (pull_request) Has been cancelled
CI/CD Pipeline / Frontend Lint (pull_request) Has been cancelled
## 主要变更
### 1. 清理废弃代码(18个文件删除)
- 删除 TaskModel/MilestoneModel/TaskIssueModel 及相关文件
- 删除 ProjectTitleModel/EditPlanModel/EditPlanClipModel 及相关文件
- 清理 domain/ports/adapters/application/api 各层引用
- 从 GenerationTaskModel 移除 edit_plan_id 字段
### 2. 新建标题库 API(/api/v1/titles)
- Domain: TitleLibraryItem 数据类
- Ports: TitleLibraryRepository 接口
- Adapters: SQLAlchemy 实现(软删除)
- Application: CRUD Use Cases + 配额检查(max_titles: free=50, basic=500, premium=500)
- API: GET/POST/PUT/DELETE 端点
- Schema: Pydantic 请求/响应模型
### 3. 新建配音库 API(/api/v1/voices)
- Domain: VoiceLibraryItem 数据类
- Ports: VoiceLibraryRepository 接口
- Adapters: SQLAlchemy 实现(软删除)
- Application: CRUD Use Cases + 配额检查(max_voiceovers: free=10, basic=100, premium=100)
- API: GET/POST/PUT/DELETE 端点
- Schema: Pydantic 请求/响应模型
### 4. 去掉 Project 层依赖
- 修复 authenticated_user.id → authenticated_user.user.id bug
- asset_libraries.py: project_id 改为可选查询参数
- generated_videos.py: project_id 改为可选查询参数
- 无 project_id 时通过 find_accessible_projects 获取用户可访问的所有项目
### 5. 数据库迁移
- 创建 011_phase1_core_refactor.py
- 删除 6 个废弃表:tasks, milestones, task_issues, project_titles, edit_plans, edit_plan_clips
- 从 generation_tasks 表删除 edit_plan_id 列
### 6. 其他改进
- 迁移 EditingMode 到独立模块 packages/domain/editing_mode.py
- 注册 titles_router 和 voices_router
- 添加 get_title_library_repository 和 get_voice_library_repository 依赖
- 更新 domain/ports __init__.py 导出新实体和仓储接口
## 技术细节
- 遵循六边形架构模式
- 配额检查通过 QuotaRegistry 实现
- 软删除:标题库用 is_active=False,配音库用 status='deleted'
- 配音库支持可选的 project_id 关联
## 破坏性变更
- 删除 6 个废弃表(需先备份数据)
- 删除 /api/v1/edit-plans, /api/v1/project-titles, /api/v1/project-management 端点
- generation_tasks API 不再包含 edit_plan_id 字段
2026-06-28 15:02:10 +08:00
API文档维护Agent
e3fb518ab2
refactor: remove all workspace_id references from codebase
...
CI/CD Pipeline / Validate Code Quality And Tests (pull_request) Has been cancelled
CI/CD Pipeline / Frontend Lint (pull_request) Has been cancelled
- Remove workspace_id from Pydantic models in project_management routes
- Remove workspace_id from SQLAlchemy and SQLite project management repos
- Remove workspace_id from worker tasks (storage keys, entity creation)
- Remove workspace_id from video dedup and title usage modules
- Remove workspace_id from generation and ingest worker tasks
- Clean workspace_id from all test files and scripts
- Remove workspace-specific test files (list_workspaces, workspace repos)
Task: #14 workspace_id 残留清理
2026-06-27 22:52:09 +08:00
API文档维护Agent
8064b64ff5
docs: API文档准确性修复
...
1. 修正上传端点schema命名:新增UploadAssetRequest模型替代自动生成的Body_upload_asset名称
2. 清理认证重复端点:移除/forgot-password和/reset-password旧路由,保留/password/forgot和/password/reset
3. 清理workspace_id残留:从edit_plan/asset_diagnosis/task_center/project_title等schema中移除,project_management和projects中改为可选
4. 更新README:移除过时的多租户/订阅/refresh token描述,修正仓库地址为git.xiaoxiajianji.com,更新API路径列表
2026-06-27 19:02:31 +08:00
CI Bot
38c66a9c68
fix: add workspace_id compatibility for removed workspace concept
2026-06-27 08:43:02 +08:00
CI Bot
60adbf95ce
chore: remove redundant .github/workflows (using Gitea Actions)
2026-06-27 00:41:09 +08:00
CI Bot
db8c6d55ce
fix: 统一编辑模式枚举名并删除重复workflow
...
1. 修复 edit_plan_generator.py 中的枚举名与 editing_modes.py 保持一致:
- ONE_TAKE: one-take -> one_take
- VOICEOVER -> VOICE_OVER: voiceover -> voice_over
2. 更新相关文档字符串和注释
3. 删除重复的 .gitea/workflows/tests.yml (ci-cd.yml 已包含完整测试)
2026-06-26 23:12:06 +08:00
CI Test
cd887909c7
chore: squash merge feature/smart-edit-plan into develop (resolve conflicts)
...
- Resolve CI/CD and deploy workflow conflicts with develop version
- Resolve database and dependencies conflicts with develop version
- Keep new edit plan generator and API functionality from feature branch
2026-06-26 21:21:39 +08:00
xiaoxia
f687b4207f
feat: add download_url field to generated video APIs ( #20 )
2026-06-26 21:13:18 +08:00
xiaoxia
84f3465778
feat: add chunked upload API for large file uploads ( #21 )
...
feat: add chunked upload API for large file uploads (#21 )
2026-06-26 20:57:56 +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
6e8394d749
style: sort Python imports for CI
2026-06-24 19:57:19 +08:00
Xiaoxia AI
0f59b412bc
feat(plans): add edit plan preview workflow
2026-06-24 10:10:25 +08:00
Xiaoxia AI
ee6b4a663a
feat(tasks): add project task center
2026-06-24 08:39:32 +08:00
Xiaoxia AI
8acbd6c8a7
feat(results): add generated video management
2026-06-24 06:28:06 +08:00
Xiaoxia AI
17021c351f
feat(titles): complete title selection workflow
2026-06-24 00:55:00 +08:00
Xiaoxia AI
6b66601d67
feat(titles): add project title library
2026-06-24 00:30:58 +08:00
Xiaoxia AI
9cc48aeee9
feat(assets): add review actions and high risk view
2026-06-23 22:57:56 +08:00
Xiaoxia AI
f2a9b0868b
feat(assets): track generation usage review state
2026-06-23 21:52:47 +08:00
Xiaoxia AI
d052645307
feat(assets): add project material diagnosis
2026-06-23 20:14:03 +08:00
Xiaoxia AI
6e42f944c0
feat(upload): add OSS direct upload flow
2026-06-23 15:47:03 +08:00
Xiaoxia AI
bfbaddbd9a
style: normalize python formatting gates
2026-06-21 06:52:19 +08:00
Xiaoxia AI
3d6b90c022
feat(phase7): add generated video download endpoint
2026-06-18 20:33:14 +08:00
Xiaoxia AI
758c2c7e13
feat(phase7): align asset flow and scaffold generation pipeline
2026-06-18 19:59:37 +08:00
Xiaoxia AI
db1ebc4e9d
feat(phase7): add asset classification workflow
2026-06-17 18:29:48 +08:00
Xiaoxia AI
07c5ad0e22
fix: remove stale upload request schema export
2026-06-15 18:57:50 +08:00
Xiaoxia AI
ba159549e2
feat: integrate MinIO for real file storage
Tests / test (push) Failing after 30s
Tests / lint (push) Failing after 30s
2026-06-15 18:19:12 +08:00
Xiaoxia AI
d5504166ff
feat: add upload asset endpoint
...
- API: POST /api/upload endpoint (mock storage, real ingest pipeline trigger)
- schemas: UploadAssetRequest, UploadAssetResponse
- tests: full upload→ingest→asset pipeline test
- all 6 integration tests passing
2026-06-15 15:23:53 +08:00
Xiaoxia AI
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
2026-06-15 15:17:40 +08:00