xiaoxia
b66de19be8
feat: 一键生成链路日志最小集 ( #205 )
CI/CD Pipeline / Validate Code Quality And Tests (push) Failing after 11s
CI/CD Pipeline / Frontend Lint (push) Successful in 1m54s
CI/CD Pipeline / Build & Push Staging (Watchtower auto-deploy) (push) Has been skipped
CI/CD Pipeline / Build Production Runtime Images (push) Has been skipped
CI/CD Pipeline / Staging E2E Tests (push) Has been skipped
CI/CD Pipeline / Staging API Integration Tests (push) Has been skipped
CI/CD Pipeline / Deploy Production (push) Has been skipped
CI/CD Pipeline / Production Browser E2E (push) Has been skipped
2026-07-10 23:57:38 +08:00
xiaoxia
48e5077191
fix: P0-2 深度根因修复 — Worker端URL校验403 + endpoint HTTPS修复 ( #211 )
CI/CD Pipeline / Validate Code Quality And Tests (push) Failing after 9s
CI/CD Pipeline / Frontend Lint (push) Successful in 1m31s
CI/CD Pipeline / Build & Push Staging (Watchtower auto-deploy) (push) Has been skipped
CI/CD Pipeline / Build Production Runtime Images (push) Has been skipped
CI/CD Pipeline / Staging E2E Tests (push) Has been skipped
CI/CD Pipeline / Staging API Integration Tests (push) Has been skipped
CI/CD Pipeline / Deploy Production (push) Has been skipped
CI/CD Pipeline / Production Browser E2E (push) Has been skipped
2026-07-10 20:35:03 +08:00
用户CI Test
ad5036c93a
fix: 删除 _validate_asset_ids_ownership 死代码函数
...
CI/CD Pipeline / Frontend Lint (pull_request) Successful in 55s
CI/CD Pipeline / Validate Code Quality And Tests (pull_request) Successful in 1m23s
CI/CD Pipeline / Build & Push Staging (Watchtower auto-deploy) (pull_request) Has been skipped
CI/CD Pipeline / Build Production Runtime Images (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 / Deploy Production (pull_request) Has been skipped
CI/CD Pipeline / Production Browser E2E (pull_request) Has been skipped
代码审计发现 commit 6d1f4da1 只删了测试用例,函数本体(53行)和注释引用仍残留。
本次修复:
- 删除 _validate_asset_ids_ownership 函数(原第489-538行,53行死代码)
- 更新第391行注释,移除对已删函数的引用
- grep 全仓库确认无其他引用
- 单测 27 passed,无回归
归属校验逻辑已在 P3-2 优化中合并进 _download_library_assets 的同一 DB session。
2026-07-10 09:19:06 +08:00
用户CI Test
ab413413b7
perf(P3): 三项代码审查优化 — strict模式/session合并/HEAD重试
...
CI/CD Pipeline / Frontend Lint (pull_request) Successful in 1m34s
CI/CD Pipeline / Validate Code Quality And Tests (pull_request) Successful in 1m47s
CI/CD Pipeline / Build & Push Staging (Watchtower auto-deploy) (pull_request) Has been skipped
CI/CD Pipeline / Build Production Runtime Images (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 / Deploy Production (pull_request) Has been skipped
CI/CD Pipeline / Production Browser E2E (pull_request) Has been skipped
P3-1: _download_library_assets 增加 strict 参数(默认 true)
- strict 模式:任意素材下载失败立即抛 RuntimeError
- non-strict 模式:跳过失败素材返回成功列表,全部失败仍抛异常
- 归属校验合并到同一 DB session(P3-2),减少连接开销
P3-2: 移除 generate_video 中独立的 _validate_asset_ids_ownership 调用
- 归属校验已内联到 _download_library_assets 同一 session 中
P3-3: _verify_url_accessible 增加 HEAD 重试(默认 2 次,间隔 1s)
- 防止 OSS 抖动导致误报不可访问
新增 15 个单元测试覆盖三项优化
更新 1 个旧测试适配新 strict 模式错误信息
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com >
2026-07-10 07:42:39 +08:00
用户CI Test
c947abc038
fix: 一键生成 P0 修复 + P1 校验
...
CI/CD Pipeline / Validate Code Quality And Tests (pull_request) Successful in 1m10s
CI/CD Pipeline / Frontend Lint (pull_request) Successful in 3m40s
CI/CD Pipeline / Build & Push Staging (Watchtower auto-deploy) (pull_request) Has been skipped
CI/CD Pipeline / Build Production Runtime Images (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 / Deploy Production (pull_request) Has been skipped
CI/CD Pipeline / Production Browser E2E (pull_request) Has been skipped
P0-1: _download_library_assets 支持双模式查询(asset_library_id / project_id)
下载失败时抛出 RuntimeError,不再静默忽略
P0-2: OSS 上传失败抛异常 + 上传后 HEAD 校验 URL 可访问性
P0-3: run_ffmpeg 失败时完整 stderr 打到日志(排查 exit code 183)
_execute_ffmpeg 额外记录 filter_complex 便于诊断
P1: template_id 存在性校验(不存在/已禁用 → ValueError)
asset_ids 归属校验(不属于指定项目/素材库 → ValueError)
新增 16 个单元测试覆盖全部修复点,全量 1170 测试通过无回归
2026-07-10 00:28:47 +08:00
xiaoxia
4328854f58
feat: 统一渲染引擎 + 打通一键生成全链路
CI/CD Pipeline / Validate Code Quality And Tests (push) Successful in 1m7s
CI/CD Pipeline / Frontend Lint (push) Successful in 2m31s
CI/CD Pipeline / Build Production Runtime Images (push) Has been skipped
CI/CD Pipeline / Deploy Production (push) Has been skipped
CI/CD Pipeline / Production Browser E2E (push) Has been skipped
CI/CD Pipeline / Build & Push Staging (Watchtower auto-deploy) (push) Successful in 2m57s
CI/CD Pipeline / Staging API Integration Tests (push) Successful in 5m5s
CI/CD Pipeline / Staging E2E Tests (push) Successful in 5m29s
2026-07-09 22:59:19 +08:00
xiaoxia
5ec71f5e1e
fix(generation): 修复生成任务状态机缺失导致状态永不更新的问题 ( #198 )
CI/CD Pipeline / Validate Code Quality And Tests (push) Successful in 1m22s
CI/CD Pipeline / Frontend Lint (push) Successful in 1m47s
CI/CD Pipeline / Build Production Runtime Images (push) Has been skipped
CI/CD Pipeline / Deploy Production (push) Has been skipped
CI/CD Pipeline / Production Browser E2E (push) Has been skipped
CI/CD Pipeline / Build & Push Staging (Watchtower auto-deploy) (push) Successful in 3m56s
CI/CD Pipeline / Staging E2E Tests (push) Successful in 1m25s
CI/CD Pipeline / Staging API Integration Tests (push) Successful in 3m47s
2026-07-09 15:42:43 +08:00
灵应
9f0c064f2a
feat: 任务4 视频查重 — 历史+批次双重去重
...
CI/CD Pipeline / Deploy Staging (push) Has been skipped
CI/CD Pipeline / Staging E2E Tests (push) Has been skipped
CI/CD Pipeline / Build Production Runtime Images (push) Has been skipped
CI/CD Pipeline / Deploy Production (push) Has been skipped
CI/CD Pipeline / Production Browser E2E (push) Has been skipped
CI/CD Pipeline / Frontend Lint (push) Failing after 45h27m46s
CI/CD Pipeline / Validate Code Quality And Tests (push) Failing after 45h27m46s
- Alembic 033: generation_tasks 加 batch_id 列+索引
- Route: count>1 时生成共享 batch_id
- Repository: list_by_batch() 批次内查询
- dedup.py: check_batch_duplicate() 批次内查重
- Worker: 生成视频后创建 GeneratedVideo 记录 + 双重查重
- 单元测试: 6 个批次查重测试用例
2026-07-07 15:26:41 +08:00
灵应
1ea8fd3989
feat: P2 素材库自动匹配 - 支持 all/random/smart 三种素材选取模式
...
CI/CD Pipeline / Deploy Staging (push) Has been skipped
CI/CD Pipeline / Staging E2E Tests (push) Has been skipped
CI/CD Pipeline / Build Production Runtime Images (push) Has been skipped
CI/CD Pipeline / Deploy Production (push) Has been skipped
CI/CD Pipeline / Production Browser E2E (push) Has been skipped
CI/CD Pipeline / Frontend Lint (push) Failing after 45h41m20s
CI/CD Pipeline / Validate Code Quality And Tests (push) Failing after 45h41m20s
- Schema: 新增 asset_select_mode + asset_select_count 字段
- Domain: GenerationTask 新增 asset_select_mode 字段
- Application: Command/UseCase 透传 asset_select_mode
- Route: _select_assets_from_library() 辅助函数 + 创建任务集成
- SQLAlchemy: Model/Repository 映射 asset_select_mode
- Alembic: 032 号迁移
- Worker: _download_library_assets() 支持 asset_ids 过滤
- 单测: 15 个测试覆盖三种模式 + 边界情况
2026-07-07 15:13:05 +08:00
xiaoxia
1217d8cef0
style: apply isort formatting to pass CI validation ( #129 )
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 210h35m44s
CI/CD Pipeline / Frontend Lint (push) Failing after 210h36m11s
CI/CD Pipeline / Validate Code Quality And Tests (push) Failing after 210h36m17s
2026-06-30 18:17:44 +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
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
CI Test
ecfa0d33e4
fix(P1-2): generation.py _download_library_assets 改用 Worker SessionLocal 替代直接 create_engine
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-28 10:25:38 +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
Celery Worker Fix Agent
8210806632
fix: 修复 Celery Worker 任务注册和导入问题
...
CI/CD Pipeline / Validate Code Quality And Tests (pull_request) Has been cancelled
CI/CD Pipeline / Frontend Lint (pull_request) Has been cancelled
1. 修复 Worker 启动入口: celery_app → worker_app.celery_app
- 旧 celery_app.py 不导入任何任务模块,导致 Worker 注册 0 个任务
- 删除旧版 apps/worker/celery_app.py,统一使用 worker_app/celery_app.py
2. 为缺少装饰器的任务补充 @celery_app.task:
- classification.py: classify_asset() 添加装饰器
- generation.py: generate_video() 添加装饰器,修正签名匹配 API 调用方式
3. 确保 voice_extraction 任务被正确注册:
- 添加 voice_extraction 到 celery_app imports
- 修复 voice_extraction.py 中错误的相对导入 (.celery_app → worker_app.celery_app)
- 修复 dedup.py 中指向已删除模块的导入
4. 修复 worker_app/celery_app.py:
- 添加 broker_connection_retry_on_startup=True
- imports 中添加 voice_extraction 和 dedup 模块
5. 修复 Dockerfile:
- CMD 改为 celery -A worker_app.celery_app
- 添加非 root 用户 celery 运行 Worker
6. 新建 packages/shared/config.py 和 storage.py 兼容层
- 为 worker 任务模块提供统一的 config/storage 访问入口
2026-06-27 19:31:07 +08:00
xiaoxia
299f42a6aa
feat: 实现四种视频剪辑模式 ( #23 )
2026-06-26 20:58:26 +08:00
Xiaoxia AI
6e8394d749
style: sort Python imports for CI
2026-06-24 19:57:19 +08:00
Xiaoxia AI
f85e389ced
style: format Python files for CI
2026-06-24 19:54:36 +08:00
Xiaoxia AI
0f59b412bc
feat(plans): add edit plan preview workflow
2026-06-24 10:10:25 +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
f2a9b0868b
feat(assets): track generation usage review state
2026-06-23 21:52:47 +08:00
Xiaoxia AI
ea92092d12
chore(security): triage bandit findings
2026-06-21 13:38:46 +08:00
Xiaoxia AI
bfbaddbd9a
style: normalize python formatting gates
2026-06-21 06:52:19 +08:00
Xiaoxia AI
1e3a52fa17
fix(worker): persist generated mp4 without oss
2026-06-20 23:17:52 +08:00
Xiaoxia AI
3afe9689f7
feat(worker): generate real mp4 outputs
2026-06-20 22:42:07 +08:00
Xiaoxia AI
48fbe3d287
fix(worker): register generation task
2026-06-20 19:43:08 +08:00