d826ae216a
根因: plan.config 中某 key 的值可能为 bool 而非 dict,
当 .get() 或 from_dict() 被调用时崩溃。
'or {}' 只能防 None/空值,防不了 True/False。
修复策略(双层防护):
1. 治本: 所有 from_dict 方法入口加 isinstance(data, dict) 检查
- chroma_key_config.py / color_grade_config.py / noise_reduction_config.py
- watermark_config.py / pip_config.py / intro_outro_config.py
- reverse_engine.py
2. 治标: 调用方直接 .get() 处加 isinstance 防护
- unified_render_service.py: tts/bgm/title/subtitle/export/bgm
- render_adapter.py: bgm/export/title
- render_audio.py: bgm/audio_tracks
- generation.py: title/subtitle/bgm/export
- edit_plan_generation.py: title
共修复 12 个文件,覆盖渲染管线全部 unprotected 调用点
xiaoxia-saas Worker
结构
worker_app/core/:worker 配置worker_app/celery_app.py:Celery 应用入口worker_app/tasks/:任务模块main.py:本地调试入口
当前任务
worker.healthcheck