Release: 同步 develop 到 main(PR #1649~#1653 全量同步) #1655
Reference in New Issue
Block a user
Delete Branch "release/sync-develop-20260903"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
变更内容
将 develop 分支最新代码同步到 main,确保生产与 staging 100% 一致。
包含的 PR
冲突解决
所有冲突文件以 develop 为准(-X theirs),确保与 staging 完全一致。
1. Production 模板 SMTP_HOST 改为空值(与实际一致) 2. ci-pipeline.yml MinIO Bucket Secret 名称修正为 STAGING_MINIO_BUCKET - render_env.sh 增加特殊映射:STAGING_MINIO_BUCKET → MINIO_BUCKET_NAME 3. 修正模板中与实际运行不一致的配置值: Staging: JWT_ACCESS_TOKEN_EXPIRE_MINUTES=1440, COSYVOICE_VOICE=longxiaoxia_v3, COSYVOICE_FORMAT=wav, CORS_ORIGINS_RAW 使用 staging-api Production: COSYVOICE_VOICE=longxiaoxia_v3, COSYVOICE_FORMAT=wav, CORS_ORIGINS_RAW 使用 api(非 www)🚀 预览环境已部署
🗑️ 预览环境已清理
PR #1655 已关闭或合并,对应的预览环境已被清理。
【阻塞级判定】
📊 审查概览
🔴 阻塞级问题(必须修复)
[apps/api/app/api/routes/templates_editor/effects.py: 多处] 数据结构访问不匹配风险
p["id"])改为对象属性访问(p.id),但对应的源数据TRANSITION_PRESET_LIBRARY和FILTER_PRESET_LIBRARY是从packages.domain导入的。本次 PR 的修改文件列表中并未包含packages/domain下的相关文件更新。如果这些常量仍保持为字典列表,运行时将抛出AttributeError导致服务崩溃。packages.domain.transition_presets和packages.domain.filter_presets中的常量已同步更新为对象列表(如 Pydantic Model 或 Dataclass),或者回退此处的访问方式修改。[apps/api/app/api/routes/upload.py: 247-270, 338-350] 资源创建与任务提交的事务一致性问题
_create_pending_asset创建并持久化 Asset 记录(状态为 PROCESSING),随后才调用_submit_ingest_job提交后台处理任务。如果任务提交失败(例如 Redis 连接断开、队列满等),函数会抛出异常,但 Asset 记录可能已经写入数据库(取决于 Repository 的事务管理机制)。这将导致产生永久处于 "PROCESSING" 状态的僵尸数据,且无法被自动恢复。💡 改进建议(不阻塞合并)
[.gitea/workflows/ci-pipeline.yml: 1610] 生产环境部署策略变更确认
startsWith(github.ref, 'refs/tags/v')(Tag 触发)变更为github.event_name == 'push' && github.ref_name == 'main'(主分支 Push 触发)。这是一个重大的流程变更,意味着每次合并到 main 都会自动部署生产环境,失去了版本号控制。请确认这是有意为之(切换为持续部署模式),而非误操作。[apps/api/app/api/routes/generation_cover.py: 750] 变量重定义类型抑制
# type: ignore[no-redef]来抑制变量cover_data的重定义警告。这通常意味着变量作用域或初始化逻辑存在混淆。建议重构代码,在条件块外部显式初始化cover_data,避免使用类型忽略来掩盖潜在的代码结构问题。✅ 良好实践
ci-pipeline.yml中为安全扫描添加了continue-on-error: true,防止非关键的安全扫描阻塞流水线,并添加了清晰的注释说明理由。server_default,保证了线上数据迁移的安全性。useVoiceMaterialData.ts中实现了智能轮询逻辑,仅当存在处理中的素材时才开启轮询,避免无效请求。.gitignore合理配置了环境变量模板的忽略规则,既允许提交模板又防止泄露渲染后的真实密钥。🤖 由 AI 代码审查机器人自动生成 | 2026-09-03 10:32:55 | 模型: