Sustituye BytePlus Ark/Seedance por el contrato async de essia-server (h3api.essia.coop):
POST /v1/jobs (multipart, mode=ref2va) -> poll GET /v1/jobs/{id} -> download /video (X-API-Key).
Firma de generateVideo/downloadVideo sin cambios (el route no se toca). Env: H3API_BASE_URL, H3API_KEY.
Coste 0 (self-hosted). Sin key no rompe el arranque (lazy).
Limitación anotada: jobs pedidos fuera de la ventana nocturna pueden tardar horas; el polling
síncrono solo es viable en ventana. Cola SQLite + worker pendiente de decidir UX. NO mergear a
master hasta que essia-server confirme "live" + provea H3API_KEY.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
- build script usa --webpack (Next 16 default es Turbopack, incompatible con la config webpack de @remotion)
- tsconfig excluye remotion/ (subproyecto autocontenido con su propio tsconfig; rompía el type-check con un import faltante)
- Dockerfile de producción (build + next start) y .dockerignore que deja fuera projects/ y data/ (llegan por volúmenes)
- CLAUDE.md actualizado al estado real (SQLite, webpack, Ark, Remotion integrado)
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>