Novedades
Cada versión, con todos los cambios detallados. Las mejoras más recientes aparecen primero.
Hardening de seguridad — auditoría completa
Aplicamos diez correcciones derivadas de una auditoría de seguridad externa realizada con dos agentes especializados — uno simulando un usuario externo buscando vulnerabilidades, otro actuando como experto en seguridad IT. Todos los hallazgos críticos y altos quedaron resueltos.
- Fix Rate limiting de 5 intentos/minuto agregado al paso de verificación 2FA, igual que en el login.
- Fix Race condition en la creación del secreto TOTP — el archivo ahora se crea con permisos restrictivos desde el primer byte, sin ventana de exposición.
- Fix TTL del token CSRF reducido de 60 a 30 minutos.
- Nuevo Subresource Integrity (SRI) — todos los assets CSS y JS incluyen hash
sha384para que el navegador detecte cualquier modificación. - Nuevo Variable de entorno
SECURITY_CONTACTpara configurar el email publicado en/.well-known/security.txt. - Nuevo
.dockerignore— el directoriodata/y el archivo.envya no se incluyen en el contexto de build de Docker. - Fix Historial git reescrito para eliminar referencias a herramientas de desarrollo internas.
Cantarell, Phosphor Icons y open source
FlowCast es ahora open source bajo la licencia PolyForm Noncommercial 1.0.0. Uso personal y educativo libre; uso comercial prohibido sin permiso. También estrena tipografía e iconografía nuevas, más alineadas con el diseño GNOME Adwaita.
- Nuevo Licencia PolyForm Noncommercial 1.0.0 — FlowCast es open source. El código está disponible en GitHub.
- Nuevo Aviso de licencia y autoría en la página de Configuración, con enlace a la licencia completa.
- Nuevo Tipografía migrada a Cantarell — la fuente oficial del entorno GNOME, servida localmente.
- Nuevo Iconografía migrada a Phosphor Icons 2.1.2, también servida localmente. Sin dependencias externas.
- Nuevo Controles tipo interruptor rediseñados con estilo AdwSwitch — el mismo aspecto que GtkSwitch en GNOME.
- Fix Los signos
¿y¡se renderizan correctamente en todos los navegadores y sistemas operativos. - Fix Icono inexistente en el dashboard reemplazado por el equivalente correcto de Phosphor Icons.
FlowCast, con mayúscula
La app ya tiene nombre oficial: FlowCast. Corregimos el nombre en todo el texto visible de la aplicación — login, sidebar, pantalla de verificación, documentación y logos. Los identificadores internos de código no cambiaron. También estrenamos el nuevo logo: el círculo con barras de audio reemplaza al diseño anterior en el sidebar, la pantalla de login y la verificación en dos pasos. Cambia automáticamente entre la versión clara y oscura según el tema activo.
- Nuevo Nuevo logo en sidebar, login y verificación 2FA — cambia automáticamente entre versión clara y oscura según el tema activo.
- Nuevo Nombre corregido a FlowCast en toda la interfaz visible.
- Fix Logo duplicado que aparecía en ciertas condiciones de carga.
- Fix Tamaño del logo en login y 2FA — ahora respeta las dimensiones correctas.
Mejoras visuales y documentación de seguridad
- Fix Alineación correcta de listas
ul/ol— el reset CSS borraba elpadding-leftdel navegador. - Nuevo Ventana de confirmación nativa (elemento
<dialog>) al desconectar YouTube, reemplazando elconfirm()del navegador. - Nuevo Creación de
SECURITY.mdcon documentación completa de los 19 controles de seguridad implementados. - Fix Corrección de espaciado en la sección de credenciales de la página de configuración.
Títulos de página alineados y diseño consistente
- Fix Altura mínima de
38pxen los encabezados de página para que los títulos queden al mismo nivel visual en todas las secciones. - Fix Actualización de cache busting a
?v=0.9.17en todos los assets CSS y JS.
Rediseño completo de la interfaz — Fase final
- Nuevo Sistema de diseño basado en GNOME Adwaita HIG: tokens CSS, tipografía Inter Variable, íconos Bootstrap Icons.
- Nuevo Sidebar fijo con toggle de tema claro/oscuro sincronizado con la preferencia del sistema (
prefers-color-scheme). - Nuevo Rediseño de todas las páginas: Dashboard, Episodios, Podcasts, Plantillas, Configuración, Login y TOTP.
- Nuevo Botones pill, cards con elevación y transiciones suaves entre temas.
- Fix Todos los event handlers movidos a
addEventListenerpara cumplir con la Content Security Policy (CSP con nonce).
Pipeline completo end-to-end
- Nuevo Pipeline automático: RSS → descarga MP3 → renderizado FFmpeg → publicación YouTube.
- Nuevo Autenticación en dos pasos: contraseña + TOTP (RFC 6238) con
pyotp. - Nuevo Token OAuth2 de YouTube cifrado con Fernet (AES-128-CBC + HMAC-SHA256).
- Nuevo Protección SSRF en todas las URLs externas (feeds, audio, proxy de imágenes).
- Nuevo Sanitización de HTML de feeds RSS con
nh3antes de guardar en base de datos. - Nuevo Rate limiting en
POST /login(5/min) yGET /health(30/min).