chore: develop → main 同步 v0.1.91 #107

Merged
xiaoxia merged 7 commits from develop into main 2026-06-29 15:41:05 +08:00

7 Commits

Author SHA1 Message Date
xiaoxia 9631272cfb Merge pull request 'feat: 剪辑计划编辑器前端实现' (#106) from feat/editing-planner-frontend into develop
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
CI/CD Pipeline / Validate Code Quality And Tests (pull_request) Has been cancelled
CI/CD Pipeline / Frontend Lint (pull_request) Has been cancelled
Tests / lint (pull_request) Failing after 237h12m30s
Tests / test (pull_request) Failing after 237h13m33s
2026-06-29 15:28:45 +08:00
Audit Bot 067439a1dd fix: 修复 PR#106 代码审计问题
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: TemplateMode 改为英文枚举值(pip/voice_over/one_take/voice_pip),显示层通过 MODE_LABELS 映射中文
P0-2: EditingPlanner 通过 useSearchParams 读取 ?template=xxx&generate=1,自动加载模板并打开发成弹窗
P1-3: 848行组件拆分为 5 个子组件(TemplatePanel/TimelinePanel/SettingsPanel/SaveModal/GenerateModal)
P1-4: GenerateFromTemplatePayload voiceover_id(string) → voiceover_duration(number)
P1-5: SaveModal 分类字段 Input → Select,关联后端 categories API
P1-6: SaveTemplatePayload 补充 estimated_duration 字段
P2: TimelinePanel Slider 约束 min≤max

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-06-29 15:18:33 +08:00
xiaoxia e8cd246422 Merge pull request 'feat: 剪辑计划编辑器后端 — 模板 CRUD + 分类 + 生成校验' (#105) from feat/editing-planner-backend into develop
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-29 15:05:51 +08:00
Audit Bot 78524a04eb fix: 修复复审2个建议 (models注释 + N+1查询 + 事务边界)
CI/CD Pipeline / Validate Code Quality And Tests (pull_request) Has been cancelled
CI/CD Pipeline / Frontend Lint (pull_request) Has been cancelled
- models.py: 注释中旧模式名对齐 EditingMode 枚举
- list_by_user: 批量加载 segments 避免 N+1 查询
- create(): flush 替代 commit,create_segments 统一提交事务
2026-06-29 14:53:21 +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 fff47a7a3d feat: 剪辑计划编辑器前端实现
CI/CD Pipeline / Validate Code Quality And Tests (pull_request) Has been cancelled
CI/CD Pipeline / Frontend Lint (pull_request) Has been cancelled
- 新增剪辑计划编辑器页面 (三栏布局)
  - 左侧:模板面板(搜索/筛选/加载模板)
  - 中间:预览区 + 时间线(片段拖拽排序)
  - 右侧:标题/字幕/BGM 设置面板
- 支持 4 种模式切换(画中画/人物口播/一镜到底/口播+混剪)
- 新增「我的模板」页面(卡片视图/编辑/复制/删除/生成)
- 新增 API 模块(mock 数据,后端就绪后替换)
- 更新路由和导航菜单

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-06-29 14:35:27 +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