2c08d47a0fb266f98f176e0f0b16e52fb55cc32f
- guión conductor: al crear capítulo con virtud sugerida se generaba con GPT-4o pero se descartaba; ahora se persiste con saveGuionConductor (antes se pagaba y se perdía). - escaleta GET: la condición de migración nunca se apagaba (planos sin personajes → []), reescribiendo toda la BD en cada carga; ahora migra solo si hay personajesEnPlano legacy y devuelve lo migrado. - ficheros huérfanos: al borrar un personaje se elimina su carpeta de imágenes; savePromptsPlanos y saveFondos borran las imágenes de IDs que desaparecen (los reutilizados no se tocan). - race en "generar todos": imágenes de plano y variaciones de personaje se persisten por fila (updatePromptPlano / nuevo updateCharacterAsset) en vez de reescribir todo el set por iteración. - path traversal: path.basename en los segmentos de URL que forman rutas de fichero (image-service + serving routes de vídeo/fondo). - hardcodes de localhost (Remotion chapter-data + CORS) ahora configurables por env con default local. - IDs de personaje: backfill/dedup de id en generatePersonajes/improvePersonajes (evita 500 y sobrescritura). - render: cola en memoria con TTL/purga (evita fuga y jobs zombie tras reinicio). - selectVideoVariation valida pertenencia al plano/capítulo; createProject rechaza slug vacío; las migraciones loguean el error en vez de tragarlo. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…
…
…
This is a Next.js project bootstrapped with create-next-app.
Getting Started
First, run the development server:
npm run dev
# or
yarn dev
# or
pnpm dev
# or
bun dev
Open http://localhost:3000 with your browser to see the result.
You can start editing the page by modifying app/page.tsx. The page auto-updates as you edit the file.
This project uses next/font to automatically optimize and load Geist, a new font family for Vercel.
Learn More
To learn more about Next.js, take a look at the following resources:
- Next.js Documentation - learn about Next.js features and API.
- Learn Next.js - an interactive Next.js tutorial.
You can check out the Next.js GitHub repository - your feedback and contributions are welcome!
Deploy
Producción: https://story-studio.carlosnarro.com — desplegada en Dokploy (instancia personal "Forja", panel.carlosnarro.com) con autodeploy desde Gitea.
- Push a
masterengit.carlosnarro.com/carlos/story-studio→ Dokploy reconstruye la imagen (Dockerfile) y redespliega automáticamente. - Build:
Dockerfile(npm run buildcon webpack +next start). Elbuildscript usa--webpacka propósito (la config de@remotiones incompatible con el Turbopack por defecto de Next 16). - Datos persistentes (bind mounts, no van en la imagen):
/app/data→ SQLite (story-studio.db)/app/projects→ imágenes y vídeos generados
- Env vars en Dokploy:
GEMINI_API_KEY(imagen),OPENAI_API_KEY(texto), y opcionalmenteARK_API_KEY(vídeo).
Description
Languages
TypeScript
94.1%
JavaScript
5.4%
CSS
0.4%
Dockerfile
0.1%