- vercel.json: revertir maxDuration a 60s (300 rompe planes Hobby)
- transcriptor: detectar extensión real del audio (TikTok→mp3,
Instagram→m4a) para enviar el MIME type correcto a Whisper;
enviarlo como mp3 cuando es m4a causaba fallo de decodificación
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- validador: normaliza enums de GPT-4o (acentos, mayúsculas, aliases como
"ninguno"→"ninguna", "shock"→"declaracion_shock") y coerce strings
numéricos a enteros antes de validar con Zod
- transcriptor: reintentos automáticos (3 intentos, backoff 1.2s) para
URLs de CDN inestables; mejor mensaje de error en transcripción vacía
- analizador: captura JSON.parse inválido con mensaje diagnóstico
- vercel.json: aumenta timeout de analizar a 300s y generar a 120s
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Campo "Contexto del Video" en formulario de análisis (Paso 03)
→ se pasa a GPT-4o para enriquecer el análisis
- 4 nuevos campos de diagnóstico: fortalezas, debilidades,
sugerencias_mejora, hashtags_sugeridos (click para copiar)
- Vista de detalle: card de métricas sociales (vistas/likes/compartidos
con engagement rate calculado)
- Muestra contexto original ingresado por el usuario
- Migración SQL 07: 5 nuevas columnas en tabla guiones
- validador.js: 4 nuevos campos en schema Zod
- server.js + api/analizar.js: acepta y guarda contexto_video
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- vercel.json: rewrite explícito para /api/* evita que el catch-all SPA intercepte las serverless functions
- supabase.js: lanza error claro si SUPABASE_URL o SUPABASE_SERVICE_ROLE_KEY no están definidas
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>