2026-08-06 - 2026-09-06
Overview
3 Releases published by 1 user
Published
v0.1.135
Published
v0.1.134
Published
v0.1.131
355 Pull requests merged by 1 user
Merged
#1742 feat(#1741): 批量预览卡片缩小至3/5 + 每个视频播放都有声音(配音全挂载+播放互斥+静音按钮)
Merged
#1740 fix(auth): 微信 unionid 账号打通逻辑修复(staging 部署版,含 profile_completed)
Merged
#1738 fix(auth): 微信 unionid 账号打通逻辑修复(老账号自动关联 + 查找顺序优化 + 冲突保护)
Merged
#1739 fix(#1737): 生成页标题框聚焦即展开标题库列表 + 下拉箭头提示
Merged
#1736 fix(#1714): beat 调度文件改 /tmp,修复定时巡检任务从未执行
Merged
#1735 fix: SPA 路由回退的 HTML 补 no-cache 头(配合 #1732 白屏修复)
Merged
#1734 fix(#1714): 同名兜底去重误杀新视频 + ingest 链路孤儿清理/启动恢复
Merged
#1732 fix: 发版后懒加载 chunk 失效白屏——ErrorBoundary 自动刷新 + lazy 重试
Merged
#1731 feat(#1714): complete 请求携带 file_size,修复同名兜底误杀新视频
Merged
#1730 feat(#1714): prepare_direct_upload 去重 + 预建 PROCESSING asset 占位
Merged
#1728 feat(#1718): PATCH /auth/me 资料更新接口 + profile_completed 字段
Merged
#1729 feat(#1714): 前端 prepare 短路(后端 skip_transfer 命中时跳过 OSS 直传)
Merged
#1727 fix(#1718): 昵称页提交防连点 + 补 /vite.svg favicon
Merged
#1726 feat(#1718): 微信登录/绑定改为弹窗内嵌二维码,不再整页跳转
Merged
#1723 fix(#1718/#1714): 微信回调纠错 + 上传失败可观测性 + 哈希性能 + 昵称不预填
Merged
#1725 feat(#1719): 微信账号绑定/解绑三接口 + /me 返回 wechat_bound
Merged
#1724 feat(#1718): 微信 state Redis 化 + 回调 UA 日志 + 中文昵称 UTF-8 修复
Merged
#1722 feat(worker): celery 队列隔离 + 孤儿任务消息作废 (#1714)
Merged
#1721 deploy(#1718): 微信OAuth凭证纳入env模板+CI渲染,修复staging部署覆盖丢失
Merged
#1720 feat(#1718): 微信扫码登录前端——昵称引导页 + 设置页微信绑定/解绑
Merged
#1719 fix(auth): 微信OAuth服务工厂改为真单例,修复回调state必校验失败 (#1718)
Merged
#1717 fix(#1714): 素材上传去重防重 + complete幂等传递 + 轮询收敛(前端P0)
Merged
#1715 fix(upload): complete 接口幂等去重 + HEVC 转码回写占位 asset 禁止兜底新建 (#1714)
Merged
#1713 fix(#1677): 移除预览网格截断+空指针防御+排序显式Number(AI Review 第二轮)
Merged
#1712 fix(#1677): AI Review 跟进修复(标题校验/TTS依赖/排序兜底/预览数硬上限)
Merged
#1711 feat(#1677): 批量预览改纯前端Canvas实时预览 + 固定6步流程 + 第5步独立渲染进度
Merged
#1710 feat(generation): worker孤儿任务自动恢复 + 429限流结构化提示 (#1677)
Merged
#1709 fix(dedup): pHash阈值二次校准12→16 + 时序对齐允许±1反向抖动,修复降重同源对漏检 (#1702)
Merged
#1708 fix(dedup): scope=user跨项目查重不做时长预过滤,同源不同时长视频可互相检出 (#1702)
Merged
#1707 test(#1677): E2E 适配新 5 步流程(批量生成改造)
Merged
#1706 fix(dedup): check_duplicate支持exclude_video_id,修复recompute自匹配 (#1702)
Merged
#1704 feat(#1677): 多视频批量生成前端 — 数量弹窗/批量预览/独立标题配音封面/5步流程
Merged
#1705 fix(dedup): recompute任务从file_url派生OSS下载key,修复重算404 (#1702)
Merged
#1703 fix(dedup): 修复查重率恒为0%——指纹绕开降重裁剪+局部片段复用+阈值校准+3个单位bug (#1702)
Merged
#1701 feat(#1677): 多视频批量生成后端补全 — 批量预览变体数组 + 按变体独立标题/配音/封面
Merged
#1700 fix: 补充 auto-format 格式修复到 main
Merged
#1699 Release: 同步 develop 到 main(PR #1654~#1698 全量同步)
Merged
#1698 fix: 任务历史页面增加进行中任务自动轮询(每3秒刷新)
Merged
#1697 fix: 移除配音选择时长过滤逻辑,所有配音素材完整显示
Merged
#1696 fix: 移除片段时长显示 + 点击加号直接添加
Merged
#1694 fix: 编辑模板添加片段移除时长输入
Merged
#1692 fix: 配音时长过滤 + 移除时长警告 UI
Merged
#1693 feat: 片段时长自动对齐配音时长
Merged
#1691 fix: 标题默认位置 fallback 改为 bottom,与前端 DEFAULT_TITLE_SETTINGS 对齐
Merged
#1690 fix: title default position lower & drag stability
Merged
#1689 fix: unify extract video voice progress text & cleanup file input
Merged
#1688 fix: 查重系统黑屏视频过滤 — 跳过坏指纹防止虚假匹配 #1664
Merged
#1687 fix: add missing project_id to extract-voice FormData
Merged
#1686 fix: add recomputeDedup mock to ProductLibrary test
Merged
#1685 feat: 成片库添加「重新查重」按钮,触发存量视频查重率重算
Merged
#1684 fix: 查重流程全面核实修复 — 两阶段持久化 + 重新计算查重API (#1664)
Merged
#1683 fix: visual_similarity 显示为百分比(×100)+ 注释修正 (#1662)
Merged
#1682 feat: 视频渲染后随机边缘裁剪 2-5% 降重 #1664
Merged
#1680 fix: 查重 worker 无限重试 bug + 补 3 个 API/repository 单测 (#1661 follow-up)
Merged
#1674 feat: pHash阈值校准+颜色直方图融合 #1658
Merged
#1679 feat(worker): 手动查重 worker task + visual_similarity/match_count 字段 #1661
Merged
#1678 feat(api): 成品视频接口补全查重字段 duplicate_rate/visual_similarity/match_count #1660
Merged
#1676 feat: 查重结果展示升级 — 风险阈值15/30 + 视觉相似度/匹配帧数 + 片段时间轴 #1662
Merged
#1675 feat: 查重率百分比计算+跨项目查重 #1660
Merged
#1673 feat(dedup): 动态抽帧 + 滑动窗口时序匹配 (#1659)
Merged
#1671 feat: 跨视频片段避让 — 生成前注入已用区间 #1670
Merged
#1672 fix: AI配音标识被overflow:hidden裁剪不显示
Merged
#1669 feat: 分片指纹存储改造 + 存量指纹重建脚本 #1657
Merged
#1666 fix(voices): AI配音标识兼容旧素材,增加 tts_job_id 降级判断
Merged
#1665 fix: 提取视频配音 API 路径修正为 /voices/extract-voice
Merged
#1667 fix: 修复 voices.py 中 3 处 ruff B904 错误,解除 CI Validate-Style 阻塞
Merged
#1668 feat: 正式生成时片段随机重排(降重,默认开启无开关)#1663
Merged
#1656 feat(voices): TTS时长修复 + 提取视频配音 + AI配音标识
Merged
#1654 feat(voice): 提取视频配音接口 + 素材来源标识
Merged
#1655 Release: 同步 develop 到 main(PR #1649~#1653 全量同步)
Merged
#1653 fix(voice-materials): 素材时长显示修复 + 上传后状态轮询
Merged
#1652 fix(clone): 克隆音色「去配音库上传」跳转修复
Merged
#1651 fix(worker): Worker 异常时将占位 Asset 标记为 ERROR
Merged
#1650 fix(voices): 「去配音库上传」跳转自动打开上传弹窗
Merged
#1649 fix(ci): 生产部署加门禁 - 仅 main 分支触发 build/deploy production
Merged
#1647 fix(deploy): 部署脚本内嵌 nginx 配置,运行时覆盖容器内 upstream
Merged
#1646 fix(healthcheck): 生产健康检查 /docs 接受 404,修复 develop push 生产部署回滚
Merged
#1645 fix(infra): web 容器运行时覆盖 nginx 配置,防止环境错配
Merged
#1644 fix: 上传素材后视频库立即显示(创建 PROCESSING 状态 Asset)
Merged
#1641 fix(ci): SHA-based production build/deploy - bypass act runner ref variable bugs
Merged
#1640 fix(ci): use github.ref_name for tag detection (gitea.ref not available in runner)
Merged
#1639 fix(ci): use gitea.ref instead of github.ref for tag detection
Merged
#1638 fix(main): add ci-canary.yml + disable pr-auto-scan schedule on main
Merged
#1637 fix(mypy+ci): 清零 mypy 存量报错 + 修复 Integration Tests PG 依赖
Merged
#1635 fix(ci): temporarily disable pr-auto-scan schedule to stop failure spam
Merged
#1636 ci: 金丝雀 workflow 每30分钟端到端探活 runner/Docker/网络/Gitea
Merged
#1633 fix(ci): Security 扫描改为非阻塞,runner 故障不再卡住部署
Merged
#1632 feat(config): Phase 5 — 配置 Diff 验证,检测配置漂移
Merged
#1630 feat(config): Phase 4 — 修正模板 + 渲染脚本 + CI 部署改造
Merged
#1631 ci: 添加 Playwright 基础镜像构建工作流
Merged
#1628 feat(deploy): 添加环境配置模板 + 修复 compose 路径 bug
Merged
#1627 feat(migrations): 对齐 staging 数据库结构与生产
Merged
#1626 feat(assets): 素材库页面加载时自动创建默认 video 库
Merged
#1625 fix(ci): 修复 tag 触发时 production deploy 被 skipped 的问题
Merged
#1624 fix: 删除 main 上残留的重复 migration 034
Merged
#1623 chore: 同步 develop 到 main 2026-09-02(含53个 commits)
Merged
#1622 feat: SceneChange 场景检测前置到渲染前 + 场景点缓存到素材 metadata
Merged
#1620 feat: 素材选取评分注入随机噪声,降低成片查重率
Merged
#1621 feat(ci): ci-base 镜像自动重建 workflow
Merged
#1619 fix(products): 查重率 0 时显示 0.0% 而非 -
Merged
#1617 fix(title): 预设卡片间距调整 gap 1px + 列宽 52px 固定
Merged
#1618 feat: 素材分配顺序随机打乱 + MediaKit SceneChange智能选帧
Merged
#1616 fix(title): 预设间距归零 + 新增16种样式
Merged
#1615 feat: 素材选取路径接入 smart_match 评分,让用过降权真正生效
Merged
#1614 fix(render): 修复生成视频时长短于模板要求时长
Merged
#1613 fix(title): 预设4项修复—间距0.5px+删tooltip+描边对齐+背景淡化
Merged
#1612 fix(title): 预设T字双图层渲染+间距1.5px+深色改浅色
Merged
#1611 feat(asset-dedup): 素材去重机制6项优化 — 调参+警告+贪心分配
Merged
#1610 style(products+generate): 成片库播放按钮居中+卡片缩小+预设卡片紧凑化+深色T描边
Merged
#1609 ci: 触发干净构建(确保无并发取消)
Merged
#1608 fix(web): 成片库卡片查重率显示 "-" — mapVideoToProductItem 硬编码 undefined
Merged
#1607 ci: 重新触发构建(前次 Build Staging Web Image 瞬态失败)
Merged
#1605 fix(title): 拖拽时用ref直接改DOM避免React重渲染导致换行
Merged
#1606 style(title): 标题预设卡片改为深色背景大T字紧凑布局
Merged
#1604 fix(products): 移除thumb max-height限制,修复竖屏视频卡片右侧白边
Merged
#1603 fix: 恢复 package-lock.json 修复测试依赖缺失
Merged
#1601 fix(ui): 标题拖拽pointerEvents修复 + T字放大28px + 成片thumb白边修复
Merged
#1599 chore: 同步 develop 到 main(2026-08-08 至 2026-09-01)
Merged
#1590 fix(smart-match): 过滤前置+余量/高频全过滤时空结果回退保留素材
Merged
#1592 feat(title): 标题自由位置拖拽后端支持——pos_x/pos_y 注入 \pos 定位
Merged
#1600 fix(smart-match): limit 算法取 segments.length 下限,保证每片段至少 1 个素材
Merged
#1593 feat(title): 预览画面标题自由拖拽——position=custom+PlayRes坐标提交(工单#1405方案B)
Merged
#1596 fix(clips): P0 自建模板 from-assets 400 直接查 clip_configs 表兜底
Merged
#1591 feat(title): 标题预设卡片改紧凑正方形T图标(工单#1263)
Merged
#1589 feat(products): 成片卡片信息补全(分辨率/时长/大小/查重率)+ 竖屏视频cover填满 + Tab改名AI智能匹配
Merged
#1588 perf(ci): ci-base 镜像预装 ffmpeg——消除 unit-tests 每次 24min apt 安装
Merged
#1587 fix(ci): actions/cache@v4 加 continue-on-error——缓存故障不阻断 job
Merged
#1585 fix(ci): Web 镜像 buildx 幽灵缓存防护——Git Tree Hash Cache Bust
Merged
#1579 feat: 统一模板 segments 数据源到 template_clip_configs
Merged
#1584 fix(ci): 安全/风格检查 pip install 加固——防缓存损坏导致 CI 失败
Merged
#1582 fix(ci): check-push-paths 恢复脚本下载——e052c054移除checkout导致脚本找不到
Merged
#1581 fix(ci): deploy-staging 全栈 push 被错误 skip — success() 改 !cancelled()
Merged
#1580 ci: 第二批流水线提速 - 合并 validate-python + 拆分 validate-style/security
Merged
#1577 perf(ci): 流水线第一批提速 — 移除冗余checkout/ffmpeg,解除假依赖
Merged
#1578 fix(ci): push 路径检测安全回溯——防止 concurrency 取消导致前端改动丢失
Merged
#1573 feat: 成片 duplicate_rate 百分比 + 素材高频使用自动排除
Merged
#1576 feat(products): 成片库视频内联播放,去掉弹窗 + 自适应比例
Merged
#1575 fix(assets): 诊断接口改用 /projects/{projectId}/asset-diagnosis 路径
Merged
#1572 ci: 瞬态故障自动重试——runner 故障时自动 re-run,无需人工干预
Merged
#1571 fix(editing): 模板片段时长从范围改为固定值
Merged
#1570 fix(assets): 智能选素材传 limit 参数,避免「有几个选几个」
Merged
#1565 fix(assets): smart-match 响应扁平化修复自动选素材 404/422 全链路断裂
Merged
#1569 ci(retag/deploy): 增加镜像内容校验,防止静默部署旧/损坏镜像
Merged
#1562 fix(ci): 僵尸run复活防护——重负载job自检+dedupe竞态增强 [P1]
Merged
#1561 fix(ci): 定时任务防僵尸——urlopen补超时+扫描墙钟上限+降频 [P0]
Merged
#1568 fix(test): hevc 转码测试彻底移除 video_processing sys.modules mock 注入(39 用例跨文件污染修复)
Merged
#1567 fix(test): hevc 转码测试恢复 sys.modules 时删除全部 mock 条目(补 #1566 漏修)
Merged
#1564 fix(web): 上传按钮模式+卡片文字重叠+AI配音时长+smart-match结构兼容
Merged
#1566 fix(test): test_ingest_hevc_transcode_task 模块级 mock 用后清理,修复跨文件 mock 污染
Merged
#1563 fix(test): test_dedup_engine 不再 mock packages.shared 父包,修复 50 个 thumbnail 单测被 mock 污染
Merged
#1560 fix(assets): 骨架屏网格列数同步真实网格(6列)+响应式断点对齐
Merged
#1559 fix(ingest): 修复竖屏 HEVC 转码方向错误(双重旋转/ffprobe 取错行/逗号转义)
Merged
#1556 feat(tts): 正式合成支持克隆音色 + 保存到配音库改写 assets 素材体系 + 克隆接口支持 asset_id
Merged
#1558 feat(assets): 上传完成即时刷新素材网格+卡片尺寸缩小
Merged
#1557 feat(assets): 上传即入库——批量上传队列化(并发3)+真实进度+刷新不丢
Merged
#1555 feat(generate): 自动匹配模式删除「AI 已选素材」展示
Merged
#1554 fix(voices): 配音库四连修复——进度条隔离/TTS克隆音色/克隆弹窗素材选择
Merged
#1553 fix(ingest-jobs): GET /{job_id} 查不到时返回 404 而非 500
Merged
#1552 fix(voices): 配音素材上传卡「处理中…」修复
Merged
#1551 ci: 测试类job去重——同head_sha有push流水线时PR侧跳过测试
Merged
#1550 fix: 素材余量四字段兼容 Asset 领域实体(真实接口恒为 None 修复)
Merged
#1549 feat: 片段重复率控制(受控复用+15%双闸门+批量plan独立)与素材余量四字段
Merged
#1548 feat(assets): 素材余量角标 + Step2 过滤已用尽素材
Merged
#1545 feat(voices): 配音素材卡片 UI 对齐预置音色 + 删除常驻 + 批量删除
Merged
#1544 feat(voices): 配音素材卡片真实播放 + 预置/克隆音色 TTS 试听
Merged
#1543 feat: 素材片段区间持久化去重 + 区间用尽自动轮回
Merged
#1542 chore: 删除素材选取 random 模式,保持代码干净
Merged
#1541 fix(voice): 修复克隆音色弹窗「选文件无反应」死锁(isSubmittingRef 三处误用)
Merged
#1540 test(e2e): 生成向导用例同步6步流程(修复 Staging E2E 失败)
Merged
#1539 fix(ci): push 路径检测改用 compare 响应内每提交 files 聚合
Merged
#1538 fix(voices): 配音库「配音素材」tab 补删除按钮
Merged
#1536 perf(ci): 流水线提速 - 路径过滤/持久builder缓存/依赖缓存卷/部署job迁移ci-l2
Merged
#1537 fix: worker 音频 mime 推断补充 .m4a/.mp3/.wav 等 10 种音频后缀
Merged
#1534 fix: 封面选帧输入源改为最终成片,预览片段作为兼容回退
Merged
#1535 feat(generate): 确认生成按钮移至标题步骤(步骤4直接触发最终渲染)
Merged
#1533 feat: 调换确认生成与选择封面顺序,封面从最终成片选帧
Merged
#1529 fix: 标题位置默认改为顶部(top)
Merged
#1528 fix: thumbnail_url未写入generated_videos + 缩略图key避免覆盖
Merged
#1525 feat(from-assets): 改为异步执行MediaKit分析
Merged
#1524 feat(from-assets): 按模板segment创建片段,忽略前端required_clips_count
Merged
#1523 feat(editor): 接入MediaKit智能选片,基于视频内容分析推荐最佳片段起始时间
Merged
#1522 fix: 片段去重从已有片段构建used_segments,实现跨任务去重
Merged
#1520 fix: ensure cover title matches current video title
Merged
#1519 fix: 标题换行计算使用原始font_size,与CSS预览一致
Merged
#1517 fix: from-assets 创建片段后调用 mark_clips_ready 转为 ready 状态
Merged
#1516 fix(ass): Fontsize乘1.35补偿系数对齐CSS预览字号
Merged
#1514 fix(fonts): FONT_NAME_MAP改为Noto Sans SC适配容器实际字体
Merged
#1512 feat(editor): from-assets支持同素材多片段+随机起始时间+去重+required_clips_count
Merged
#1510 fix: 修复 Noto Sans CJK SC Bold 字体混入 Mono 等宽变体问题
Merged
#1509 fix: 移除 asset_durations 的 random_preview 条件限制
Merged
#1508 fix: ASS Fontname 字体名称映射到服务器注册名
Merged
#1506 fix: 标题顶部边距60→120,标题位置下移
Merged
#1505 fix: 混音主视频clip音量滤镜缺失 + 自动换行识别已有\N标记
Merged
#1504 fix: 标题/换行 + TTS replace模式静音原音 + 配音素材库静音原音
Merged
#1501 fix(ass): 字段名归一化(font_size/font_color→size/color) + 移除字号上限36
Merged
#1497 fix: /tts/preview 解析克隆音色 UUID 为 CosyVoice voice_id
Merged
#1496 feat: add POST /tts/preview endpoint for synchronous TTS preview
Merged
#1495 fix: 预览面板缩小 + 配音缺失修复
Merged
#1494 feat: 预览播放器手机风格视觉改造 — 9:16竖屏外框+毛玻璃控制条
Merged
#1493 fix: 预览面板容器高度塌陷 — CSS加高度约束 + 预览区加minHeight/背景
Merged
#1492 fix: FrontendPreviewPlayer 用 relative 容器包裹 Fragment,修复绝对定位失控
Merged
#1491 fix: FrontendPreviewPlayer video fallback 路径补充标题叠加层
Merged
#1490 feat: 预览改为前端实时播放,确认生成时一次服务器渲染
Merged
#1489 fix: 预览渲染根据video_ratio计算分辨率,不再默认1280x720
Merged
#1488 fix: 预览请求补传 output_width/output_height,匹配 video_ratio
Merged
#1487 feat: 预览改为服务器渲染视频,实现所见即所得
Merged
#1486 feat: create端点兜底复用预览产物 + confirm同步标题
Merged
#1485 fix: previewTaskId 持久化 + 配音/BGM 参数完整传递
Merged
#1484 fix: 渲染产物临时目录不在render_plan中提前清理,改由调用方上传后清理
Merged
#1482 fix: 兜底关联edit plan和回写config移到enqueue之前,消除竞态条件
Merged
#1483 fix: 移除 previewTaskId 自动清除 + 从预览响应提取 source_edit_plan_id
Merged
#1481 fix: source_edit_plan_id 为空时标记任务为 failed 而非卡在 running
Merged
#1480 fix: Step7 确认生成优先调用 confirmGeneration 复用预览产物,解决卡 10% 问题
Merged
#1479 [Do] refactor: 统一渲染链路,预览即所得
Merged
#1478 fix: 修复 CI 失败的 4 个单元测试
Merged
#1476 fix: 3个bug修复 - flush/append_log/plan_id兜底
Merged
#1475 fix: sourceEditPlanId 不再用模板ID冒充plan_id,改由后端兜底关联
Merged
#1474 fix(worker): render_plan 保留视频原声并尊重每clip音量
Merged
#1473 fix: source_edit_plan_id 正确传递 + clips时长与预览一致
Merged
#1472 chore: 清理剪辑模板编辑器生成视频死代码 + 重命名为剪辑模板
Merged
#1471 fix(worker): P1 修复任务状态覆盖 + 封面metadata属性名错误
Merged
#1469 feat: Step2选素材同步写入edit_plan_clips
Merged
#1470 fix(worker): P0 修复@celery_app.task装饰器错位导致所有生成任务崩溃
Merged
#1468 refactor(worker): generate_video直接读取edit_plan_clips渲染,删除内存重建逻辑
Merged
#1467 fix(cover): E2兜底封面标题样式透传color/position/font_size
Merged
#1466 fix(edit-flow): 批量生成 plan.config 只回写一次
Merged
#1465 feat(generate): 编辑流程自动保存草稿+创建任务参数修复+轮询改新接口+清理幽灵API
Merged
#1464 fix(edit-flow): 补全 title_config 数据链路,修复编辑流程断裂
Merged
#1463 feat(cleanup): pending 任务自动清理,防止队列占满
Merged
#1462 fix(cover): Worker本地ffmpeg抽帧 + E2源素材封面标题叠加
Merged
#1461 fix(mediakit): 抽帧轮询识别 completed 状态,修复封面抽帧始终超时失败
Merged
#1460 fix(cover): 封面 API MediaKit 抽帧短超时,避免请求挂死
Merged
#1459 fix(cover): extract cover from source asset when no backend preview exists
Merged
#1458 fix(cover): add plan.config.cover_candidates fallback in cover generation endpoint
Merged
#1456 fix(ingest): fix HEVC transcode color flag typo and H.264 level
Merged
#1455 fix(e2e): update generation API URL pattern in core-generation test
Merged
#1454 fix(ingest): separate ffprobe and ffmpeg timeout handling in HEVC transcode
Merged
#1453 fix: staging test_asset.spec.ts 适配 POST /assets 返回 410
Merged
#1452 fix: HEVC 转码条件解耦 + 缩略图函数补全 + extra_meta 字段
Merged
#1451 fix: vitest 全局超时从 5s 提到 15s,防止 CI 高负载偶发超时
Merged
#1449 feat: 上传时自动检测 HEVC 编码并转码为 1080p H.264
Merged
#1450 fix: 修复 AI Code Review 阻塞级问题 v3(useCanvasPlayer 解码策略+资源泄漏+useStep6Cover 轮询超时)
Merged
#1442 fix: HEVC description返回完整box+标题分割调试日志 (#1442)
Merged
#1441 fix: subBoxStart偏移修正+标题分割扩展Unicode斜杠字符 (#1441)
Merged
#1436 feat: Canvas + WebCodecs 预览播放器核心实现
Merged
#1435 fix: 视频预加载优化+配音时长校验提醒 (#1435)
Merged
#1430 perf(worker): optimize worker image build with unified base image
Merged
#1428 fix(e2e): update Step 5 heading for frontend preview architecture
Merged
#1427 fix(api): add /app/apps/api to PYTHONPATH in api.Dockerfile
Merged
#1426 fix: 重写 worker-base-image.yml,使用 docker build 替代 buildx
Merged
#1422 perf: 删除 psycopg2-binary 依赖 + 预构建 API 基础镜像
Merged
#1420 fix: docker buildx build 加 25 分钟超时防止无限挂起
Merged
#1418 feat: 新增 POST /assets/batch 批量获取素材详情接口
Merged
#1416 fix: token刷新数据源统一+非空断言修复+并发竞态锁
Merged
#1419 fix: 标题叠加层始终渲染+移除不存在的batch接口调用
Merged
#1413 chore: 清理 generation.py 中未使用的渲染函数和常量
Merged
#1414 refactor: 预览播放器架构改造 - 前端素材切片播放替代FFmpeg预览渲染
Merged
#1412 fix: 预览渲染完成后回写 cover_url 到 GenerationTask
Merged
#1411 fix: Step5 标题样式实时预览 - 修复 useMemo 依赖项问题
Merged
#1410 feat: generate-cover 支持 cover_type=upload + /generate 传递 custom_title/cover_url
Merged
#1409 fix(test): 修复 batch_download session 测试全量跑时 flaky 失败
Merged
#1407 fix(test): 修复 mock clip 缺失字段导致 7 个单测 Pydantic 校验失败
Merged
#1406 fix(tests): resolve flaky test_batch_download_session_closed
Merged
#1404 fix(clips): 全面修复 Clips API 响应结构 — 替换 PR #1403
Merged
#1391 refactor: 移除 Step5 左侧预览网格卡片
Merged
#1402 cleanup: 删除Canvas预览代码,简化PreviewVideoPanel
Merged
#1400 fix: Worker容器安装CJK中文字体 — 修复ASS字幕标题不渲染
Merged
#1399 fix: 预览视频标题渲染全链路修复 — custom_title注入+ASR路径标题支持
Merged
#1398 fix: 修正PreviewVideoPanel显示条件,面板从Step4开始显示,标题预览仅在Step4
Merged
#1397 fix: 修复 test_title_font_size 断言适配 PR #1393 字号上限
Merged
#1395 fix: PreviewVideoPanel仅在Step5+(预览页)显示,标题页不再显示预览视频
Merged
#1394 fix: Worker渲染后提取封面帧+预览任务自动关联edit_plan
Merged
#1393 fix: 统一前后端标题渲染参数,修复描边/阴影样式丢失
Merged
#1392 fix: 标题预览仅在Step4显示,Step5不再显示标题叠加层
Merged
#1390 fix: 预览视频标题叠加 — Step4和Step5都显示标题Canvas
Merged
#1386 fix: resolve TypeScript compile errors in PreviewVideoPanel
Merged
#1384 fix: 模板配置字段非dict类型崩溃防护 (bool/str/int)
Merged
#1380 refactor: 精简Step5预览网格 - 移除重复视频播放器,改为轻量状态卡片
Merged
#1378 fix(preview): 预览渲染支持标题配置,解决封面标题时序问题
Merged
#1377 refactor: 步骤顺序调整 - 标题(4)→预览(5) + 预览接口增加标题参数
Merged
#1375 fix(cover): 封面标题叠加 — 选标题后用 ffmpeg drawtext 在封面图上叠加文字
Merged
#1374 fix: ASR字幕路径叠加标题,修复封面没有标题的问题
Merged
#1373 fix: 统一封面管道增加cover_url多步fallback查找,修复500错误
Merged
#1372 fix: 删除封面生成多余logger调用+增加source_edit_plan_id查找兜底
Merged
#1371 refactor: 统一封面生成管道 — 从渲染后视频抽帧作为封面
Merged
#1368 fix: 修复封面标题叠加根因 - custom_title 未传入渲染流程
Merged
#1366 fix(e2e): align confirm generation response assertion with BatchGenerationTaskResponse
Merged
#1365 fix: overlay title text on auto-generated cover frames
Merged
#1364 fix: videoRatio aspect ratio parsed as resolution causing scale=9:1920
Merged
#1363 fix: cover_templates config double-encoded JSON causing 500
Merged
#1362 fix: add ffmpeg to API runtime image for cover fallback
Merged
#1360 perf: render-time cover frame pre-extraction + FFmpeg fallback, remove MediaKit
Merged
#1359 refactor(cover): 封面生成API从templates_editor解耦到generation路由
Merged
#1358 fix(cover): 修复预览视频存储路径错误导致封面生成 500
Merged
#1357 fix(cover): 修复预览视频存储路径错误导致封面生成 500
Merged
#1356 fix(cover): 封面生成前校验视频URL可达性,避免MediaKit超时120秒
Merged
#1355 fix(test): 修复 test_confirm_generation.py 中 confirm API 路径
Merged
#1354 fix: 修复封面类型解耦后的5个TypeScript import路径错误
PR #1352解耦CoverConfig后,遗漏了5处import路径更新,导致staging web镜像构建失败(tsc编译错误)。
修复内容:
- api/editing-planner/types.ts 和 api/template-editor/types.ts:CoverConfig改为从 @/page…
Merged
#1353 refactor(#1341): 删除 EditingPlanner 遗留封面生成器 + 清理 compose_video 封面代码
Merged
#1351 perf(#1341): 封面生成改用 TimeInterval 策略(避免 OOM,提高稳定性)
Merged
#1339 feat: 统一预览与确认生成渲染路径 — 预览=正式品质+确认复用
Merged
#1338 fix: 确认生成兜底增强 — project_id 为空时通过 user_id 查找素材
Merged
#1337 fix: 删除 worker entrypoint 中无效的 -W 参数,修复 worker 启动崩溃
Merged
#1334 fix: 封面生成 stub 返回 SVG data URI 占位图替代不存在的 placeholder API
Merged
#1335 fix: CI 测试环境补充 scipy/Pillow 依赖,修复 asset_quality_scoring 单测
Merged
#1333 fix: CI 部署脚本增加 graceful shutdown,避免杀死正在处理的任务
Merged
#1332 fix: CoverResult 添加 image_url 字段匹配后端响应
Merged
#1330 fix: FFmpeg mjpeg 缩略图/封面生成添加 format=yuvj420p
Merged
#1329 fix: 封面模板 API 错误处理加固,表不存在时降级返回空列表
Merged
#1328 fix: 自动生成封面添加用户提示 (#1317)
Merged
#1327 fix: 6个CSS变量/定位问题 (#1317)
Merged
#1326 fix: 5 个响应式/z-index 问题 (#1316)
Merged
#1325 fix: Modal 组件默认居中 + 4 个弹窗统一使用 Modal 封装
Merged
#1323 feat: 封面模板 CRUD API
Merged
#1321 fix: 视频 filter_complex 排除纯音频 clips 修复 FFmpeg exit=234
Merged
#1320 fix: Worker 配音下载 fallback 到 voice_ids 修复预览无声
Merged
#1314 feat: 预览生成 API 传入 voice_library_id(配音素材 ID)
Merged
#1313 fix: 预览生成接口透传 voice_library_id 修复预览无声问题
Merged
#1310 feat: 前端对接确认生成 API (POST /tasks/{task_id}/confirm)
Merged
#1312 fix: 确认生成 API 适配 develop 分支(同步 main PR #1308)
Merged
#1309 fix: 更新 test_render_adapter.py 中 ASR mock 路径以匹配 PR #1307
Merged
#1308 fix: 确认生成 API 改为复用 worker.generate_video 渲染路径
Merged
#1306 fix: 预览模式配音修复 + 预览视频不创建成片库记录 (#1294)
Merged
#1305 fix: 预览区改为手机屏尺寸,竖屏短视频 UI 体验优化
Merged
#1304 fix: 右侧预览面板 aspect-ratio 动态适配 videoRatio
Merged
#1301 fix: Worker 并发默认值从 1 改为 4(部署脚本)
Merged
#1302 fix: 预览卡片比例动态适配 videoRatio,修复16:9视频右侧白框
Merged
#1277 feat: 智能封面实际调用后端生成 + 删除封面说明文字 (#1271, #1272)
Merged
#1283 fix(ci): prevent auto-format bot from committing entire repository
Merged
#1300 fix(ci): treat skipped status as success in auto-approve check
Merged
#1295 fix: #1294 预览视频未使用用户选择的配音
Merged
#1297 fix(ci): 降低 develop 全量单元测试覆盖率门槛从65%到55%
Merged
#1292 feat: 预览数量 preview_count 上限校验 + Worker 并发提升至 4
Merged
#1293 fix: 预览功能4项优化(数量输入+并发创建+视频播放+填充修复)
Merged
#1291 fix: E2E测试步骤顺序适配PR#1285(配音→预览→标题)
Merged
#1285 feat: #1281 支持生成多个预览视频 + 配音前置
Merged
#1290 fix(ci): 修复 staging 测试 shell 引号嵌套 bug,测试从未实际运行
Merged
#1288 fix: #1286 can_generate 增加最后防线自动修复,解决「没有可渲染的就绪片段」报错
Merged
#1284 perf(#1280): 预览视频生成加速 — ultrafast编码+并行下载+跳过非必要步骤
Merged
#1276 fix: 生成时报错「没有可渲染的就绪片段」— mark_clips_ready 仅标记有素材的片段 (#1270)
Merged
#1279 fix(ci): add npm retry logic for staging tests
Merged
#1278 fix(ci): resolve Staging API Integration Tests 0s failure - container name conflict
Merged
#1268 feat: 预览生成支持随机选素材 + 随机截取片段 (#1256)
Merged
#1267 fix: 修复配音库上传按钮跳转路径错误 (#1266)
Merged
#1264 fix(ci): 修复npm registry配置 + package-lock.json同步 + pro套餐测试
Merged
#1265 fix: 配额单元测试同步添加 pro 套餐
Merged
#1260 fix: 音频上传422错误 — create_asset project_id改为可选,从library自动推导
Merged
#1262 fix: 配额系统添加 pro 套餐并支持未知套餐 fallback 到 free
Merged
#1258 fix: 上传音频弹窗修复 — 去掉性别选择 + 优化错误提示 + 更新文案
Merged
#1255 feat: 视频合成完成后生成封面
Merged
#1253 feat: Step4 标题库选择与手动输入合并为单一输入框
Merged
#1252 feat: Step5 配音选择改为展示用户上传的配音素材
Merged
#1251 fix: Canvas标题居中 - CSS尺寸匹配视频渲染区域,消除容器/视频宽度不一致导致的偏移
Merged
#1249 fix(render_audio): drop source video audio in mix_audio
Merged
#1248 fix: 删除no-video标题预览 + 视频素材可播放预览 + Canvas标题居中修复
2 Pull requests proposed by 1 user
Proposed
#1629 Release: 同步 develop 到 main(含前端素材库自动创建 + 数据库 migration)
Proposed
#1695 fix: 移除片段时长显示 + 点击加号直接添加
37 Issues closed from 1 user
Closed
#1741 [P1] 批量预览:卡片缩小至3/5 + 每个视频播放都要有声音(当前仅视频1有配音)
Closed
#1737 [P2] 生成页标题输入框聚焦不展示标题库列表(AutoComplete空态不展开+无下拉入口)
Closed
#1716 fix(#1714): 素材上传去重防重 + complete幂等传递 + 轮询收敛(前端P0)
Closed
#1677 [P1] 多视频批量生成:多预览+多标题+多配音+多封面
Closed
#1702 [P0] 查重率恒为0%:降重裁剪污染pHash指纹 + 无局部片段复用检出 + 时长/直方图/coverage单位bug
Closed
#1664 [P1] 降重手段: 随机边缘裁剪(2-5%)
Closed
#1662 [P0] 查重优化: 前端查重结果展示适配
Closed
#1659 [P0] 查重优化: 动态抽帧 + 滑动窗口时序匹配
Closed
#1658 [P0] 查重优化: pHash阈值校准 + 颜色直方图融合
Closed
#1660 [P0] 查重优化: 查重率百分比计算 + 跨项目查重
Closed
#1670 [P0] 查重优化: 跨视频片段避让 — 生成前注入已用区间
Closed
#1657 [P0] 查重优化: 分片指纹存储改造
Closed
#1663 [P1] 降重手段: 正式生成时片段随机重排
Closed
#1341 feat: MediaKit视频理解能力深度集成到渲染引擎+封面生成
Closed
#1282 P1: 多预览视频独立标题 — 每个预览视频分别设置标题
Closed
#1547 feat(assets): 素材余量角标 + Step2 过滤已用尽素材
Closed
#1532 fix: 封面选帧输入源改为最终成片,预览片段作为兼容回退
Closed
#1421 CI 稳定性治理专项 - 彻底解决 Docker 构建不稳定问题
Closed
#1281 P1: 支持生成多个预览视频 — 用户选择数量,每个可播放
Closed
#1280 P1: 预览视频生成加速 — 30秒视频1分钟内出片
Closed
#1317 [P2][UI] 多个页面 CSS 变量不一致、响应式不足与定位边界问题
Closed
#1316 [P1][UI] 多个页面存在 Drawer/Overlay 响应式与 z-index 问题
Closed
#1318 [P0][UI] 标题库/素材库部分弹窗绕过 V21 Modal 封装,样式不一致且未居中
Closed
#1319 [P0][UI] Modal 组件缺少 centered 属性导致弹窗偏移/裁剪
Closed
#1303 预览视频卡片右侧出现大片白色空白区域
Closed
#1315 test
Closed
#1294 预览视频生成未使用用户选择的配音音频
Closed
#1286 Bug: 生成视频时报错「没有可渲染的就绪片段」— can_generate 验证在 fallback 链路后仍失败
Closed
#1271 Bug: 封面设置「智能封面」功能未实际生成视频封面
Closed
#1272 UI优化: 删除封面设置中「智能封面」的说明文字,节省页面空间
Closed
#1270 Bug: 生成视频时报错「没有可渲染的就绪片段」
Closed
#1274 [E2E] Staging E2E Tests Playwright 测试失败 - UI元素selector失效
Closed
#1275 [E2E] Staging API Integration Tests 秒挂 - 容器内npm ci可能失败
Closed
#1273 [测试] test_wave78 配额系统单测失败 - pro套餐未同步到测试断言
Closed
#1256 feat: 视频库自动匹配自动触发 + 预览视频随机选素材和片段
Closed
#1266 Bug: Step5 去配音库上传按钮跳转错误,跳到概览页面而非配音库页面
Closed
#1261 fix: 创建标题429错误 — subscription_plan=pro不在配额表中导致所有配额limit为0
48 Issues created by 1 user
Opened
#1256 feat: 视频库自动匹配自动触发 + 预览视频随机选素材和片段
Opened
#1261 fix: 创建标题429错误 — subscription_plan=pro不在配额表中导致所有配额limit为0
Opened
#1263 标题预设样式显示改为紧凑T图标,节省页面空间
Opened
#1266 Bug: Step5 去配音库上传按钮跳转错误,跳到概览页面而非配音库页面
Opened
#1270 Bug: 生成视频时报错「没有可渲染的就绪片段」
Opened
#1271 Bug: 封面设置「智能封面」功能未实际生成视频封面
Opened
#1272 UI优化: 删除封面设置中「智能封面」的说明文字,节省页面空间
Opened
#1273 [测试] test_wave78 配额系统单测失败 - pro套餐未同步到测试断言
Opened
#1274 [E2E] Staging E2E Tests Playwright 测试失败 - UI元素selector失效
Opened
#1275 [E2E] Staging API Integration Tests 秒挂 - 容器内npm ci可能失败
Opened
#1280 P1: 预览视频生成加速 — 30秒视频1分钟内出片
Opened
#1281 P1: 支持生成多个预览视频 — 用户选择数量,每个可播放
Opened
#1282 P1: 多预览视频独立标题 — 每个预览视频分别设置标题
Opened
#1286 Bug: 生成视频时报错「没有可渲染的就绪片段」— can_generate 验证在 fallback 链路后仍失败
Opened
#1294 预览视频生成未使用用户选择的配音音频
Opened
#1303 预览视频卡片右侧出现大片白色空白区域
Opened
#1315 test
Opened
#1316 [P1][UI] 多个页面存在 Drawer/Overlay 响应式与 z-index 问题
Opened
#1317 [P2][UI] 多个页面 CSS 变量不一致、响应式不足与定位边界问题
Opened
#1318 [P0][UI] 标题库/素材库部分弹窗绕过 V21 Modal 封装,样式不一致且未居中
Opened
#1319 [P0][UI] Modal 组件缺少 centered 属性导致弹窗偏移/裁剪
Opened
#1336 P1: Staging E2E 视频处理流程测试失败 — 视频状态返回 missing
Opened
#1341 feat: MediaKit视频理解能力深度集成到渲染引擎+封面生成
Opened
#1405 PR#3 前端CSS标题叠加与拖拽调整
Opened
#1421 CI 稳定性治理专项 - 彻底解决 Docker 构建不稳定问题
Opened
#1532 fix: 封面选帧输入源改为最终成片,预览片段作为兼容回退
Opened
#1547 feat(assets): 素材余量角标 + Step2 过滤已用尽素材
Opened
#1574 feat: 素材诊断自动化——上传后自动触发,无需用户手动点击
Opened
#1634 恢复 CI Security job 严格门禁(移除 continue-on-error)
Opened
#1657 [P0] 查重优化: 分片指纹存储改造
Opened
#1658 [P0] 查重优化: pHash阈值校准 + 颜色直方图融合
Opened
#1659 [P0] 查重优化: 动态抽帧 + 滑动窗口时序匹配
Opened
#1660 [P0] 查重优化: 查重率百分比计算 + 跨项目查重
Opened
#1661 [P0] 查重优化: 手动查重页 Worker 任务补全
Opened
#1662 [P0] 查重优化: 前端查重结果展示适配
Opened
#1663 [P1] 降重手段: 正式生成时片段随机重排
Opened
#1664 [P1] 降重手段: 随机边缘裁剪(2-5%)
Opened
#1670 [P0] 查重优化: 跨视频片段避让 — 生成前注入已用区间
Opened
#1677 [P1] 多视频批量生成:多预览+多标题+多配音+多封面
Opened
#1702 [P0] 查重率恒为0%:降重裁剪污染pHash指纹 + 无局部片段复用检出 + 时长/直方图/coverage单位bug
Opened
#1714 [P0] 素材上传重复提交产生大量重复记录 + HEVC转码后素材永久卡"处理中"
Opened
#1716 fix(#1714): 素材上传去重防重 + complete幂等传递 + 轮询收敛(前端P0)
Opened
#1718 [Feature] 微信扫码登录(网站应用 OAuth2.0)
Opened
#1733 [P1] 转码速度优化:4核软编约0.5倍实时,长视频触900s超时被kill(preset faster + threads + timeout 1800)
Opened
#1737 [P2] 生成页标题输入框聚焦不展示标题库列表(AutoComplete空态不展开+无下拉入口)
Opened
#1741 [P1] 批量预览:卡片缩小至3/5 + 每个视频播放都要有声音(当前仅视频1有配音)
Opened
#1743 P0 批量生成降重失效:N个视频共用同一plan、片段同组同序、封面相同、查重率60%+
Opened
#1744 P1 批量预览与后端成片不一致:variantSeed纯前端假预览需对齐后端独立选片
1 Unresolved Conversation
Open
#14
chore: 修复 P2/P3 技术债务