TriCodeBot Media Studio получил следующий слой managed video pipeline. До этого система уже умела принять идею, прогнать её через Kimi/Moonshot, получить storyboard и запустить генерации. Но дальше начиналась зона честного неудобства: озвучка, lip-sync и сборка ролика ещё не были полноценным runtime, а без логов разбираться в падениях приходилось слишком руками.
Теперь добавлен новый execution-контур:
- в
Media Studio -> Runtimeпоявился блокTTS / Voice runtime; - настройки поддерживают OpenAI-compatible
/audio/speech: base URL, model, voice и response format; - no-avatar path может реально материализовать voice track, собрать rough cut и финальные варианты через
ffmpeg; - talking-avatar path получил orchestration для
lip-sync -> assembly, если provider и assets уже отработали; sync_content_job()теперь умеет auto-refresh media tasks, а не ждать, пока оператор вручную пнёт каждую задачу.
Главное изменение не только в том, что появился TTS. Главное — pipeline перестал врать про готовность. Если voice, lip-sync или assembly не материализованы, job остаётся в честном blocked/manual-required состоянии. Если всё собрано, job переходит в rough_cut_review уже не декоративно, а с реальными asset ids в export package.
Для диагностики закреплён event-log слой: planner fallback, generation failures, scene-level task context, provider task id, error code и error detail теперь можно читать в execution log. То есть при падении больше не нужно изображать археолога с фонариком: видно, какая стадия упала, какая сцена, какой tool и какой ответ провайдера.
Проверка перед push прошла на чистой worktree: tests/test_storage.py, tests/test_planner.py и tests/test_web.py дали 89 passed. Production rollout уже жив по health/readiness, а полноценный smoke с настоящими TTS и Freepik lip-sync токенами остаётся следующим практическим шагом.
