caffe7809c
Replaced communicate() (blocking) with selectors-based line-by-line stdout streaming — same pattern as still render. Each frame now streams live to the frontend: [cinematic_render] Frame 42/480 -- 55.3s elapsed (0.76 fps) Pipeline: Blender stdout → log_callback → emit() → Redis → LiveRenderLog poll (2s) → frontend display Also added log_callback parameter to cinematic render task call. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>