Skip to content

ACTUALIZACIONES Rebel Girl FM

v3.6.35 2026-07-16
Programación cambiada a ocho turnos fijos de tres horasLa radio por turnos reproduce solo los personajes asignados a cada franjaMei sigue alternando semanalmente entre los turnos de día y de nocheLa pestaña Radio muestra ahora toda la programación sin turnos recortadosLa búsqueda y la lista de canciones permanecen ocultas en la pestaña RadioLas listas de audio y vídeo llegan ahora más cerca del borde inferior del reproductorLa política de privacidad ahora documenta por completo la aplicación nativa para Android/iOS

Nueva programación

  • 06:00–09:00: Las Hermanas de Radio sin Cerebro; Mei durante las semanas de turno diurno.
  • 09:00–12:00: Charlie – La Voz del Sur; El Diablo como invitado.
  • 12:00–15:00: Las Hermanas de Radio sin Cerebro; El Diablo como invitado.
  • 15:00–18:00: Charlie – La Voz del Sur; Mei durante las semanas de turno diurno.
  • 18:00–21:00: Rebel Girl y Shadowman; La pequeña bruja folk como invitada; Mei durante las semanas de turno nocturno.
  • 21:00–00:00: Rebel Girl y Shadowman; La pequeña bruja folk como invitada.
  • 00:00–03:00: Rebel Girl y Shadowman; Rumpelstilzchen como invitado.
  • 03:00–06:00: Rebel Girl y Shadowman; La novia psicótica como invitada; Mei durante las semanas de turno nocturno.

Función de radio

  • Rebel Player muestra la programación actual completa directamente en la pestaña Radio.
  • Los invitados y Mei aparecen identificados con sus funciones correspondientes.
  • En cada cambio de turno, la cola de radio se reconstruye y mezcla automáticamente con las canciones de los presentadores, invitados y la becaria asignados.
  • La rotación semanal de Mei sigue la semana ISO en la zona horaria de la emisora Europe/Berlin.

Validacion

  • npm run check: 0 errores, 0 advertencias y 0 indicaciones.
  • Build de producción y validación del sitemap: correctos.
v3.6.34 2026-07-15
CDN e indice multimedia completamente sincronizadosTres portadas que faltaban subidas a Cloudflare R2Dependencias del proyecto comprobadas

CDN e indice multimedia

  • Los 3699 archivos CDN locales se compararon con el bucket de Cloudflare R2.
  • 3696 archivos ya eran identicos; se subieron Rebel-Girl-cover-259.webp, Rebel-Girl-cover-260.webp y Shadowman-cover-44.webp.
  • public/media-index.json se regenero desde la fuente local de Object Storage y contiene 1002 audios, 1009 videos, 1002 archivos de letras y 661 imagenes de galeria.
  • Los sitemaps de imagenes y videos se regeneraron desde el inventario multimedia sincronizado.

Dependencias y documentacion

  • Astro ^7.0.9, Preact ^10.29.7, Vite ^8.1.4, Wrangler ^4.111.0 y los demas paquetes instalados corresponden a las versiones compatibles actuales del registro.
  • TypeScript permanece deliberadamente en ^6.0.3, la version principal mas reciente compatible con el verificador actual de Astro.
  • README y los modulos del proyecto de IA se sincronizaron con la version 3.6.34.

Validacion

  • npm run check: 0 errores, 0 advertencias y 0 indicaciones.
  • npm run check:assets: 32 rutas CDN, sin errores.
  • npm audit --audit-level=moderate: 0 vulnerabilidades.
  • Build de produccion, comprobacion de sitemap y dry run de Cloudflare: correctos.
v3.6.33 2026-07-15
Radio continuo por turnos en el Rebel PlayerMei alterna semanalmente entre los turnos diurno y nocturnoPaquetes de Astro, Cloudflare y frontend actualizados

Rebel Player y horario de la emisora

  • La fuente de radio, antes vacia, reproduce ahora de forma continua canciones de los personajes asignados al turno actual.
  • La lista del turno se mezcla cada vez que se enciende la radio y la siguiente cancion comienza automaticamente al terminar cada tema.
  • El horario utiliza la hora de Berlin y cambia automaticamente entre los turnos de manana, mediodia, dia, relevo y noche.
  • Las Hermanas de Radio Sin Cerebro y Charlie cubren los turnos diurnos. Rebel Girl, Shadowman, la Pequena Bruja del Folk, la Novia Psicotica y Rumpelstilzchen forman el turno nocturno.
  • Como becaria, Mei alterna semanalmente entre los turnos diurno y nocturno. Su perfil y su lore fueron actualizados.

Dependencias y documentacion

  • Astro se actualizo a ^7.0.9, Preact a ^10.29.7, Vite a ^8.1.4 y Wrangler a ^4.111.0.
  • @astrojs/cloudflare esta en ^14.1.3, @cloudflare/workers-types en ^5.20260715.1 y la anulacion de ws en ^8.21.1.
  • TypeScript permanece en ^6.0.3, la version mas reciente compatible con el verificador actual de Astro.
  • La fecha de compatibilidad de Workers se fijo en 2026-06-24, la mas reciente compatible con el runtime local incluido.
  • El build elimina automaticamente del manifiesto generado el campo obsoleto legacy_env, que Wrangler 4.111 ya no admite.
  • README, modulos del proyecto, indice multimedia y sitemaps fueron sincronizados.

Validacion

  • npm run check: 0 errores, 0 advertencias y 0 indicaciones.
  • i18n: 584 claves por idioma.
  • Pruebas de seguridad del Generador de Canciones: correctas.
  • npm audit: 0 vulnerabilidades.
v3.6.32 2026-07-04
Funkwhale anadido a la pestana de redes socialesCDN/R2 y documentacion del proyecto actualizados

Redes sociales

  • La antigua tarjeta de marcador “Mas canales” fue sustituida por una tarjeta de Funkwhale.
  • La tarjeta de Funkwhale enlaza con https://krasses.berlin/federation/music/libraries/4c2fba08-fe08-4c83-a629-550aa1faff99.
  • Funkwhale y Storytellerz Discord se reordenaron para que Funkwhale aparezca a la izquierda y Discord a la derecha.
  • Los textos se anadieron en aleman, ingles y espanol.

CDN y copia de seguridad

  • funkwhale.webp esta en downloads/Logos/funkwhale.webp y se sirve mediante https://cdn.rebel-girl-fm.de/downloads/Logos/funkwhale.webp?v=20260704.
  • La sincronizacion R2/CDN reviso 3696 objetos, dejo 3694 sin cambios y subio 2 objetos.
  • README y changelog se actualizaron a v3.6.32.

Validacion

  • npm.cmd run check: correcto.
  • npm.cmd run check:assets: correcto.
  • npm.cmd run build: correcto.
  • Comprobacion HEAD del CDN para funkwhale.webp: 200 OK.
v3.6.31 2026-07-04
Tooling de frontend y Cloudflare actualizadoREADME y changelog actualizados al ultimo estado de paquetes

Actualizacion de dependencias

  • Astro se actualizo de ^7.0.5 a ^7.0.6.
  • Las integraciones de Astro se actualizaron: @astrojs/cloudflare a ^14.1.1 y @astrojs/preact a ^6.0.1.
  • Preact se actualizo de ^10.29.3 a ^10.29.4.
  • Vite se actualizo de ^8.1.2 a ^8.1.3.
  • Wrangler se actualizo de ^4.106.0 a ^4.107.0.
  • @cloudflare/workers-types se actualizo a ^5.20260704.1.

Documentacion

  • README y los metadatos tecnicos del proyecto reflejan ahora el nuevo estado de paquetes y la version web v3.6.31.
  • El tab Changelog de la web lee esta entrada desde las fuentes Markdown localizadas para aleman, ingles y espanol.

Validacion

  • npm outdated --json: no hay paquetes desactualizados.
  • npm audit --audit-level=moderate: 0 vulnerabilities.
  • npm run check: correcto.
v3.6.30 2026-07-02
Rutas de imagenes CDN comprobadas y reparadasAuditoria del proyecto y limpieza cuidadosa completadas

CDN e imagenes

  • Todas las referencias CDN conocidas del indice de medios, codigo, manifest, sitemap de imagenes y sitemap de videos fueron comprobadas con peticiones GET/Range reales.
  • Se validaron 3.679 URLs CDN usadas realmente; el ultimo control informo 0 errores y 0 fuentes locales faltantes.
  • 20 objetos WebP afectados fueron reparados o recuperados en R2.
  • La web usa ahora cache busting dirigido con ?v=20260702-r2 para esas 20 rutas de imagen, porque la cache no versionada de Cloudflare aun puede servir respuestas 404 antiguas.
  • El sitemap de imagenes genera ahora URLs versionadas para las mismas imagenes afectadas.

Areas afectadas

  • Azrael y Seraphine vuelven a cargar correctamente sus imagenes de equipo.
  • Algunos covers de canciones de Charlie, El Diablo, La pequena Bruja Folk y Rebel Girl vuelven a estar correctamente referenciados.
  • Galeria, descargas, pagina Sobre nosotros, datos de personajes y sitemap de imagenes usan la misma logica de cache busting.

Auditoria y limpieza

  • Se eliminaron artefactos temporales de pruebas como .playwright-cli/ y tmp/.
  • .gitignore ignora ahora de forma permanente esos artefactos locales de pruebas/checks.
  • tsconfig.json excluye tmp y .playwright-cli, para que Astro/TypeScript no analice archivos generados de comprobacion.
  • No se eliminaron a ciegas archivos de contenido o dominio; los cambios existentes del proyecto/usuario se conservaron.

Validacion

  • npm run check:assets: correcto.
  • npm run check: correcto, 0 errors, 0 warnings, 0 hints.
  • npm run build: correcto.
  • npm audit --audit-level=moderate: 0 vulnerabilities.
  • Check de sitemap/robots: 672 rutas, 658 imagenes, 1009 videos.
v3.6.29 2026-07-02
Pestana de playlists corregida a las 19 playlists de SunoREADME y changelog actualizados al estado corregido de playlists

Playlists

  • La pestana de playlists fue corregida: la lista principal vuelve a mostrar las 19 playlists visibles actualmente en Suno para @dampferbug.
  • Se revirtio la reduccion anterior a solo cinco playlists.
  • Rebel Girl FM - El amor secreto usa ahora su propia clave heimlicheliebe.
  • Rebel Girl FM - El amor de ambas permanece como playlist separada con su propio cover y enlace.
  • El orden sigue la pestana actual de Suno y la captura de referencia.

Textos y covers

  • Se agregaron textos de playlists en aleman, ingles y espanol para la nueva clave heimlicheliebe.
  • Los archivos i18n contienen ahora 569 claves por idioma.
  • Todas las tarjetas usan covers CDN existentes de downloads/Bilder/Team/ o downloads/Bilder/playlist-cover/.

Documentacion

  • README se actualizo a la version 3.6.29, 569 claves i18n por idioma y la lista completa de 19 playlists.
  • La pestana de changelog incluye esta nueva entrada en DE, EN y ES.

Validacion y deploy

  • npm run check: correcto.
  • npm run check:assets: correcto.
  • Build alternativo de Astro en tmp/astro-build-check: correcto.
  • Deploy de Cloudflare correcto; version Worker 56d407f7-523e-4699-afaa-7f239972f252.
  • Comprobacion live /playlists: 200 OK.
v3.6.28 2026-07-02
Pestana de playlists sincronizada con las playlists actuales de SunoREADME y changelog actualizados al nuevo estado de playlists

Playlists

  • La pestana de playlists se comparo con la pestana actual de Suno para @dampferbug.
  • La fuente compartida src/lib/playlistData.ts muestra ahora las cinco playlists de Suno visibles actualmente:
    • Rebel Girl FM - El Diablo
    • Rebel Girl FM - Charlie (La Voz del Sur)
    • Rebel Girl FM - El amor secreto
    • Rebel Girl FM - Mei (La nueva becaria)
    • Sunshine State FM - Las Hermanas de Radio sin Cerebro
  • Las tarjetas principales antiguas que ya no aparecen en la pestana actual de Suno fueron retiradas de la lista principal.
  • El bloque comunitario de StorytellerZ queda sin cambios.

Textos y Covers

  • Los textos de playlists en aleman, ingles y espanol se sincronizaron para teufel, charlie, liebe, mei y radioschwestern.
  • Las nuevas tarjetas usan covers CDN existentes de downloads/Bilder/Team/ y downloads/Bilder/playlist-cover/.

Documentacion

  • README se actualizo a la version 3.6.28, 566 claves i18n por idioma y el estado actual de playlists.
  • La pestana de changelog incluye esta nueva entrada en DE, EN y ES.

Validacion

  • npm run check: correcto.
  • npm run check:assets: correcto.
  • node scripts/check_sitemap.mjs: correcto; 672 rutas, 658 imagenes, 1009 videos.
  • Build alternativo de Astro en tmp/astro-build-check: correcto.
  • Nota: el npm run build normal quedo bloqueado localmente por una carpeta dist/client bloqueada con EPERM.
v3.6.27 2026-07-02
Astro y el adaptador de Cloudflare actualizados a las versiones más recientesREADME, privacidad, changelog y documentación de IA sincronizados

Actualizaciones de Programas

  • astro se actualizó a ^7.0.5.
  • @astrojs/cloudflare se actualizó a ^14.1.0.
  • npm outdated no muestra paquetes desactualizados después de la actualización.
  • npm audit informa 0 vulnerabilidades.

Documentación y Pestañas del Sitio

  • README y todos los archivos bajo ki/ se sincronizaron con el estado actual del proyecto.
  • La pestaña de changelog incluye esta nueva entrada.
  • La pestaña de privacidad se actualizó en DE, EN y ES al estado actual del 2 de julio de 2026.

CDN e Índice Multimedia

  • La sincronización R2/CDN se ejecutó contra la estructura local de object storage.
  • public/media-index.json, public/image-sitemap.xml y public/video-sitemap.xml se regeneraron.

Validación

  • npm run sync:r2: correcto; 3695 archivos comprobados, 3634 sin cambios, 61 subidas, 0 errores.
  • npm run sync: correcto.
  • npm run check:assets: correcto.
  • npm run check: correcto.
  • npm run build: correcto.
v3.6.26 2026-06-24
Indice multimedia, rutas CDN y sitemaps resincronizadosREADME, changelog y documentacion KI actualizados

CDN y Descargas

  • public/media-index.json se regenero desde la estructura local actual de object storage.
  • Las rutas de audio, video, letras e imagenes siguen apuntando de forma consistente a https://cdn.rebel-girl-fm.de/downloads/....
  • La pestana de descargas de letras usa la estructura actual downloads/Audio, coherente con las entradas de letras del indice multimedia.

Rebel Player

  • Rebel Player carga media-index.json en el cliente y construye las URLs de audio/video desde las rutas base actuales del CDN.
  • Las rutas de audio, video y portada del reproductor se comprobaron contra el inventario multimedia actual.

Documentacion

  • README y todos los archivos bajo ki/ se sincronizaron con el estado actual del proyecto.

Validacion

  • npm run sync: correcto.
  • npm run sync:images: correcto.
  • npm run sync:videos: correcto.
  • npm run check:assets: correcto.
  • npm run check: correcto.
  • npm run build: correcto.
  • npm run sync:r2: correcto; 3634 archivos comprobados, 3634 sin cambios, 0 subidas, 0 errores.
v3.6.25 2026-06-23
Logos de Suno y Telegram actualizados con cache bustingREADME, changelog y documentacion de proyecto para IA sincronizados

Redes sociales y CDN

  • Los logos de Suno y Telegram en la pestana de redes sociales usan ahora el parametro de version v=20260623.
  • Esto evita versiones antiguas almacenadas en cache y carga los archivos WebP actuales directamente desde el CDN de Cloudflare.

Documentacion

  • README, el changelog de la web y todos los archivos de ki/ se sincronizaron con la version 3.6.25.

Validacion

  • npm run check: correcto.
  • npm run check:assets: correcto.
  • npm run build: correcto.
  • Despliegue en Cloudflare y prueba de produccion: correctos.
v3.6.24 2026-06-23
CDN/R2 e indice multimedia actualizadosPestana de redes sociales ampliada con Suno, Telegram y MastodonAstro 7, Vite 8 y herramientas de Cloudflare actualizados

CDN y medios

  • Cloudflare R2/CDN se sincronizo con la carpeta local de medios: 3503 archivos revisados, 3494 sin cambios, 9 objetos faltantes subidos y 0 errores.
  • Se subieron tres videos musicales de las Hermanas de Radio, tres portadas, Sunshine-State-FM2.webp y los logos de Suno y Telegram.
  • public/media-index.json, public/image-sitemap.xml y public/video-sitemap.xml se regeneraron.
  • Inventario actual: 897 audios, 995 videos, 942 archivos de letras y 635 imagenes de galeria.

Web y rutas

  • La pestana de redes sociales incluye ahora Suno, Mastodon y Telegram con logos CDN y textos localizados en aleman, ingles y espanol.
  • La validacion de recursos comprueba ahora tambien las rutas CDN escritas directamente contra el inventario local.
  • Las comprobaciones de objetos R2 se ejecutan en paralelo para acelerar la sincronizacion.

Herramientas

  • Astro actualizado a 7.0.0, @astrojs/cloudflare a 14.0.0, @astrojs/preact a 6.0.0 y Vite a 8.0.16.
  • Wrangler actualizado a 4.103.0 y Cloudflare Workers Types a 4.20260623.1.
  • Se elimino la dependencia local no utilizada de Lighthouse; las auditorias siguen disponibles mediante npx lighthouse.
  • npm audit informa 0 vulnerabilidades conocidas y npm outdated no muestra paquetes directos desactualizados.

Validacion

  • npm run check: correcto.
  • npm run check:assets: correcto.
  • npm run build: correcto.
  • Despliegue en Cloudflare y prueba de produccion: correctos.
  • Version del Worker de Cloudflare: 0fbd0eb9-790b-4a24-bd26-1acbe830c079.
v3.6.23 2026-06-17
Estado de medios CDN/R2 actualizadoNuevas portadas y videos de Charlie subidosIndice de medios y sitemaps actualizados

CDN y medios

  • Cloudflare R2/CDN se sincronizo con la carpeta local de medios: 3496 archivos comprobados, 3489 sin cambios, 7 objetos faltantes subidos, 0 errores.
  • Se subieron tres portadas de Charlie: Charlie - Die Stimme des Suedens-cover-4.webp, cover-5.webp y cover-6.webp.
  • Se subieron tres videos musicales de Charlie: Rebel Girl FM - Honky Tonk Gewitter (Live).webm, Rebel Girl FM - Mein Weg zum Mikrofon.webm y Rebel Girl FM - Staub, Schweiss und Radio-Blut.webm.
  • downloads/Promts/bilder promt.txt tambien se agrego a R2.
  • public/media-index.json, public/image-sitemap.xml y public/video-sitemap.xml se regeneraron desde la carpeta externa de downloads.
  • Estado actual de medios: 897 archivos de audio, 992 videos, 942 archivos de letras y 631 imagenes de galeria.

Pruebas y deploy

  • npm run check: correcto.
  • npm run build: correcto.
  • Deploy de Cloudflare Workers: correcto.
v3.6.22 2026-06-17
Lore de Charlie Reed ampliadaHistoria del rancho y Hamburgo agregadaTextos multilingues de personaje y about sincronizados

Charlie Reed

  • La historia de Charlie se amplio: crecio en un rancho del sur de Estados Unidos y alli descubrio pronto su amor por el country, el Southern rock y el honky tonk.
  • Su camino a Hamburgo queda ahora mas claro: un hombre la convencio de mudarse, pero la relacion no duro mucho.
  • Tras la ruptura, Charlie se quedo en Hamburgo, probo varios trabajos y finalmente termino en una emisora de radio de Hamburgo.
  • Sus pequenas apariciones al aire como voz de trafico, voz del tiempo y presencia suelta en el programa diurno explican por que algunos oyentes de Hamburgo ya la conocian antes de que Rebel Girl la descubriera.
  • Cantar en bares despues del trabajo se agrego como el regreso de Charlie a su verdadera musica antes de que Rebel Girl la encontrara en un pequeno bar de Hamburgo.

Lore e i18n

  • src/content/lore/lore.md y src/content/lore/figurenprofile.md se ampliaron con la nueva biografia de Charlie.
  • Los archivos ingleses y espanoles de lore y perfiles de personajes se actualizaron en sincronizacion.
  • El perfil de personaje de Charlie y los textos about.side.charlie.lore en aleman, ingles y espanol se actualizaron.

Pruebas

  • npm run check: correcto.
  • npm run build: correcto.
  • Deploy de Cloudflare Workers: correcto.
v3.6.21 2026-06-16
Bloqueo en vivo del generador de canciones corregidoCadena de modelos gratuitos de OpenRouter actualizadaProteccion de timeout para fallbacks de OpenRouter agregadaEstado de medios CDN/R2 actualizado

Generador de canciones

  • El proxy de OpenRouter ahora cancela las solicitudes de modelo colgadas despues de 8 segundos por modelo.
  • Asi el generador ya no se queda permanentemente en 35% // SENDE AN KI cuando un modelo gratuito de OpenRouter no responde.
  • La cadena activa de modelos gratuitos se redujo a modelos de texto gratuitos que OpenRouter lista actualmente.
  • Se eliminaron modelos no disponibles como moonshotai/kimi-k2.6:free y z-ai/glm-4.5-air:free.
  • wrangler.toml ahora usa openai/gpt-oss-20b:free como modelo preferido y google/gemma-4-31b-it:free como fallback.

CDN y medios

  • Cloudflare R2/CDN se actualizo con ocho objetos multimedia: tres videos musicales de Charlie, tres portadas de canciones de Charlie, Rebel-Girl-cover-255.webp y la imagen de equipo actualizada de Charlie.
  • El nombre local Charlie – Die Stimme des Südens-cover-1..webp se corrigio a Charlie – Die Stimme des Südens-cover-1.webp porque Cloudflare bloqueo el doble punto en la clave del objeto.
  • Las ocho URL actualizadas del CDN se comprobaron con HEAD y devuelven 200 OK.
  • public/media-index.json, public/image-sitemap.xml y public/video-sitemap.xml se resincronizaron.
  • Estado actual de medios: 897 archivos de audio, 989 videos, 942 archivos de letras y 628 imagenes de galeria.
  • scripts/generate-image-sitemap.mjs ahora escribe el sitemap de imagenes de forma atomica mediante un archivo temporal.

Pruebas y deploy

  • scripts/test_song_generator_security.mjs comprueba ahora la nueva cadena de modelos y la proteccion de timeout.
  • El endpoint en vivo /api/song-generator/openrouter se probo correctamente despues del deploy: estado 200, modelo openai/gpt-oss-20b:free.
  • npm run check: correcto.
  • npm run build: correcto.
  • npm run check:sitemap: correcto con 637 rutas, 628 imagenes y 989 videos.
v3.6.20 2026-06-15
Panel de administracion reforzado contra XSS almacenadoGenerador de canciones reforzado contra prompt injectionPruebas de regresion de seguridad ampliadas

Correcciones de seguridad

  • El panel de administracion ya no renderiza valores de canciones y medios con innerHTML; ahora crea nodos DOM y asigna texto dinamico con textContent.
  • Esto cierra la ruta de XSS almacenado desde titulos del archivo publico de canciones hasta la tabla de administracion.
  • El proxy de OpenRouter ya no trata los prompts system enviados por el cliente como instrucciones confiables del modelo.
  • El Worker ahora construye los mensajes hacia OpenRouter en el servidor y separa los datos de usuario del system prompt con BEGIN_USER_DATA / END_USER_DATA.
  • Frases tipicas de prompt injection como “ignore previous instructions” o “reveal the system prompt” se bloquean en las ideas de canciones.

Pruebas

  • scripts/test_song_generator_security.mjs comprueba ahora que el renderizado de administracion no use .innerHTML.
  • El mismo script comprueba filtros de prompt injection y mensajes de OpenRouter construidos en el servidor.

Validacion

  • npm run test:song-generator: correcto.
  • npm run check: correcto.
  • npm run build: correcto.
v3.6.19 2026-06-15
Charlie Reed integrada por completoGaleria y Rebel Player ampliados con CharlieSEO de imagenes con paginas de detalle e ImageObject JSON-LD

Charlie Reed

  • Charlie Reed queda integrada como nueva presentadora del turno de dia con pagina propia en /charlie.
  • La pagina de perfil incluye fecha de nacimiento 15.06.1998, rol, lore, imagen y datos estructurados de imagen.
  • Charlie esta conectada con lore, estructura de equipo de Sobre nosotros, galeria, filtros del player y persona del generador de canciones.

Galeria y medios

  • La galeria y el indice multimedia se actualizaron a 624 imagenes.
  • Las imagenes de Charlie y sus song covers se sirven mediante CDN/R2.
  • Las imagenes laterales de la pagina Sobre nosotros se adaptan dinamicamente a la altura del texto y del contenedor.

SEO

  • Las imagenes importantes de la galeria tienen paginas SEO propias bajo /bilder/....
  • Galeria, personajes y paginas de detalle de imagen emiten ImageObject JSON-LD.
  • BaseHead admite varios elementos JSON-LD por pagina.

Validacion y despliegue

  • npm run check: correcto.
  • npm run build: correcto.
  • Despliegue con Wrangler correcto, version actual de Cloudflare: ff8bb049-2489-4c41-80fc-ca74bf1a9c59.
v3.6.18 2026-06-14
Estructura del equipo en Sobre nosotros revisadaNombre visible de Mei acortadoREADME actualizado

Sobre nosotros

  • Las tarjetas del equipo en la pagina Sobre nosotros ahora se agrupan en Nachtschicht, Tagschicht y personajes secundarios.
  • Las Hermanas de Radio Sin Cerebro se movieron al turno de dia.
  • El turno de dia incluye dos tarjetas vacias como marcadores para entradas futuras.
  • El bloque de lore aparece ahora debajo de las tarjetas de personajes secundarios.

Visualizacion de personajes

  • Las tarjetas de personajes principales muestran nombres artisticos en lugar de nombres civiles, incluidos SHADOWMAN y REBEL GIRL.
  • Mei se muestra como MEI en tarjetas y en el encabezado de su pagina de personaje.
  • Los personajes secundarios usan claves de traduccion robustas para que slugs como punk-muschi no muestren nombres de clave sin traducir.

Validacion

  • npm run check: correcto.
v3.6.17 2026-06-14
Tipos de Cloudflare Workers actualizadosEstado del CDN y del indice de medios validado de nuevoREADME y documentacion del proyecto sincronizados

Programas y dependencias

  • @cloudflare/workers-types actualizado a ^4.20260613.1.
  • package-lock.json sincronizado con la nueva version del paquete.
  • npm outdated revisado: Vite 8.0.16 sigue excluido intencionadamente porque la validacion anterior del build Astro/Cloudflare fallo.

CDN y documentacion

  • Referencias R2/CDN para https://cdn.rebel-girl-fm.de revisadas en el proyecto.
  • media-index.json validado en modo R2.
  • media-index.json, sitemap de imagenes y sitemap de videos actualizados desde la fuente local de Object Storage.
  • Sync CDN/R2 ejecutado: 3.479 archivos revisados, 3.467 sin cambios, 12 objetos faltantes subidos, 0 errores.
  • README, ki/MASTER.md, ki/02-tech-stack.md y ki/09-changelog.md actualizados.

Validacion

  • npm outdated: solo Vite 8.0.16 queda abierto como major update omitido intencionadamente.
  • npm audit --audit-level=moderate: sigue informando advisories conocidos de tooling a traves de esbuild/vite; npm audit fix --force bajaria a astro@2.4.5 y no se aplico.
  • npm run check: correcto.
  • npm run build: correcto.
v3.6.16 2026-06-13
Dependencias del proyecto actualizadasAstro, adaptador de Cloudflare, Tailwind y Wrangler actualizadosVite 8 probado y no adoptado por un fallo de build con Cloudflare

Herramientas y dependencias

  • @astrojs/cloudflare actualizado a ^13.7.0.
  • astro actualizado a ^6.4.6.
  • @cloudflare/workers-types actualizado a ^4.20260612.1.
  • @tailwindcss/vite y tailwindcss actualizados a ^4.3.1.
  • wrangler actualizado a ^4.100.0.
  • package-lock.json sincronizado con las nuevas versiones.

Compatibilidad

  • Vite 8.0.16 fue instalado y probado, pero rompe el build Astro/Cloudflare con require_dist is not a function.
  • Por eso Vite se mantiene en la linea compatible mas reciente 7.x, ^7.3.5.

Validacion

  • npm run check: correcto.
  • npm run build: correcto; comprobacion sitemap/robots con 96 rutas, 607 imagenes y 977 videos.
  • npm audit --audit-level=moderate: sigue informando avisos conocidos de herramientas via esbuild/vite; npm audit fix --force bajaria a astro@2.4.5, asi que no se aplico.
v3.6.15 2026-06-12
Generador de canciones ajustado al limite de letras de SunoCampo de tema ampliado en dos lineasValidacion de archivo para letras de 5000 caracteres

Generador de canciones

  • El campo de tema del generador de canciones ahora muestra 5 lineas en lugar de 3.
  • Las letras originales generadas se limitan en el cliente a 5000 caracteres para poder pegarlas directamente en Suno.
  • El prompt de IA indica explicitamente al modelo el limite de 5000 caracteres de Suno.
  • La validacion del archivo ahora bloquea en servidor letras y versiones alemanas de mas de 5000 caracteres.

Validacion

  • npm run test:song-generator: correcto.
  • npm run check: 0 errores, 0 advertencias, 0 sugerencias; i18n se mantiene en 525 claves por idioma.
v3.6.14 2026-06-07
Backend Admin V1 nativo de Cloudflare preparado localmenteAstro, adaptador de Cloudflare, Workers Types y Wrangler actualizadosProteccion del admin, exclusion del sitemap y pruebas ampliadas

Backend Admin V1

  • Interfaz de administracion local preparada en /admin, pero no activada en produccion.
  • Nuevas APIs de administracion protegidas para sesion, estadisticas, canciones, listado de medios y subidas a R2.
  • Cloudflare Access queda previsto como capa de proteccion; ADMIN_ACCESS_ENABLED=0 mantiene el backend desactivado en produccion.
  • Nueva migracion D1 migrations/0060_admin_backend.sql para metadatos de medios y eventos de administracion.

Herramientas y Cloudflare

  • Astro actualizado a ^6.4.4, @astrojs/cloudflare a ^13.6.1, @astrojs/preact a ^5.1.5, Workers Types a ^4.20260607.1 y Wrangler a ^4.98.0.
  • compatibility_date de Cloudflare fijado en 2026-06-02, la fecha mas nueva soportada por el binario local de Workers Runtime.
  • Vite 8.0.16 fue probado, pero no adoptado porque el runner Astro/Cloudflare fallo con require_dist is not a function; Vite se mantiene en la linea compatible 7.x.

SEO, movil y seguridad

  • Las rutas de administracion quedan excluidas del sitemap y de la comprobacion del sitemap.
  • Las pruebas de seguridad del Song Generator ahora tambien verifican cabeceras de Admin Access, el interruptor de apagado del admin y la exclusion del admin en el sitemap.
  • La auditoria movil todavia muestra trabajo pendiente en titulares grandes para pantallas de telefono.

Validacion

  • npm audit --audit-level=moderate: 0 vulnerabilidades.
  • npm run check:assets: correcto.
  • npm run check: 0 errores, 0 advertencias, 0 sugerencias; i18n se mantiene en 525 claves por idioma.
  • npm run build: correcto; comprobacion sitemap/robots con 96 rutas y 596 imagenes.
v3.6.13 2026-06-02
Checks de mantenimiento y sincronizacion de documentacion anadidosValidacion de sitemap/robots y tests de seguridad del generador automatizadosDocumentacion KI y salidas de scripts normalizadas a ASCII limpio

Mantenimiento y automatizacion

  • npm run docs:sync sincroniza README y la documentacion KI central desde el changelog, versiones de paquetes, claves i18n y datos del indice multimedia.
  • npm run changelog:new -- <version> crea archivos de changelog en aleman, ingles y espanol desde una plantilla consistente.
  • npm run check:sitemap valida dist/client/sitemap-index.xml, dist/client/sitemap-0.xml, public/image-sitemap.xml y public/robots.txt.
  • npm run test:song-generator comprueba la validacion del generador de canciones y sus invariantes de seguridad API.
  • npm run check ahora tambien ejecuta los tests de seguridad del generador de canciones.
  • npm run build ahora ejecuta el check de sitemap/robots despues del build de Astro.

Validacion

  • npm run check paso correctamente: Astro 0 errores, 0 advertencias, 0 indicaciones; i18n sigue con 525 claves por idioma.
  • npm run build paso correctamente: 96 rutas de sitemap y 593 imagenes unicas validadas.
v3.6.12 2026-06-02
Pestana de privacidad actualizada al 2 de junio de 2026Cloudflare, OpenRouter, D1 y LocalStorage documentados con mas precisionAclaraciones sobre tracking y profiling anadidas

Privacidad

  • La politica de privacidad se actualizo en aleman, ingles y espanol al 2 de junio de 2026.
  • Cloudflare Workers, Cloudflare R2/CDN, Cloudflare D1, registros de Workers y OpenRouter se describen con mas precision.
  • Los flujos de datos del generador de canciones se actualizaron: procesamiento del prompt, procesamiento breve de IP para limites de velocidad y campos del archivo D1.
  • LocalStorage, feedback con Tally, Twitch, YouTube y FlagCDN se alinearon con el estado actual del proyecto.
  • El texto aclara que Rebel Girl FM no utiliza tracking, Google Analytics, Tag Manager ni profiling publicitario.

Validacion

  • npm run check paso correctamente.
  • i18n permanece sincronizado con 525 claves por idioma.
v3.6.11 2026-06-01
Dependencias actualizadas y npm audit limpioJapones habilitado en servidor para el generador de cancionesRespuestas de error API y cache de sitemap reforzadas

Actualizaciones

  • Astro se actualizo a ^6.4.2, Vite a ^7.3.5, Wrangler a ^4.96.0 y @cloudflare/workers-types a ^4.20260601.1.
  • npm audit --audit-level=moderate no reporta vulnerabilidades.

Correcciones

  • El generador de canciones permite ahora JAPANISCH tambien en el proxy OpenRouter del servidor. La UI ya ofrecia japones como idioma destino.
  • Se eliminaron artefactos de encoding restantes del system prompt del generador.

Hardening Pentest

  • Las excepciones API inesperadas se registran en servidor, pero ya no se devuelven al cliente como mensajes internos.
  • sitemap-index.xml queda cubierto explicitamente por la regla de cache de sitemaps en middleware.
  • Checks, build, asset check, busqueda de patrones de secretos y smoke tests de filtros de entrada pasaron correctamente.
v3.6.10 2026-06-01
Indice multimedia actualizado desde el directorio local Object Storage downloadsSiete nuevas portadas de canciones subidas a Cloudflare R2Image sitemap regenerado con 593 imagenes

Medios y CDN

  • public/media-index.json se regenero desde D:\sicherheit\Daten\Webseiten\Object Storage\rebel-girl-fm.de\downloads.
  • La galeria contiene ahora 593 imagenes WebP; audio, video y letras se mantienen en 897, 888 y 887 entradas.
  • Dos nuevas portadas de Folk-Hexe y cinco nuevas portadas de Mei se subieron directamente a Cloudflare R2 en el bucket rebel-girl-fm.

Validacion

  • Las siete nuevas URLs CDN responden a HEAD con 200.
  • public/image-sitemap.xml se regenero con 593 imagenes.
  • npm run check:assets, npm run check y npm run build pasan correctamente.
v3.6.9 2026-06-01
README y documentacion IA del proyecto actualizadasFuentes multilingues de lore y changelog documentadasSitemap renovado para las rutas DE/EN/ES actuales

Documentacion

  • El README y los modulos IA se actualizaron al estado actual con Astro 6, Cloudflare Workers, R2/CDN, archivo D1, AI discovery y paginas multilingues.
  • Las fuentes de contenido ahora documentan los archivos de lore localizados en src/content/lore/en/ y src/content/lore/es/, asi como los changelogs localizados en src/content/changelog/en/ y src/content/changelog/es/.

Indexacion

  • La documentacion de sitemap apunta ahora a sitemap-index.xml y image-sitemap.xml.
  • El build genera el sitemap para las rutas actuales en aleman, ingles y espanol, incluyendo lore, changelog, descargas y perfiles de personajes.
v3.6.8 2026-05-28
Helpers de voting no usados eliminadosArtefactos locales de build y cache limpiadosChecks del proyecto ejecutados de nuevo

Limpieza del proyecto

  • Se eliminaron los helpers de voting isVoted() y getBaseVotes() que ya no se referenciaban.
  • Carpetas generadas y logs dev locales fueron retirados; .env y node_modules se conservaron para despliegue y trabajo local.

Validacion

  • npm run check corre sin errores, warnings ni hints.
  • npm run check:assets confirma el indice multimedia R2.
  • npm run build crea la salida Cloudflare Worker sin errores.
v3.6.7 2026-05-28
Playlist Suno de las Hermanas de Radio agregadaCover CDN del equipo usado para la nueva playlistTextos de playlists sincronizados para DE, EN y ES

Playlists

  • La playlist Rebel Girl FM - Die Hirnlosen Radioschwestern fue agregada a los datos compartidos.
  • El cover usa la ruta CDN existente de la imagen de equipo.
  • Las paginas en aleman, ingles y espanol muestran la misma tarjeta con texto localizado.

Validacion

  • npm run check confirma claves i18n completas para DE, EN y ES.
  • npm run build crea la salida Cloudflare Worker sin errores.
v3.6.6 2026-05-28
Content-Signal para uso IA agregado a robots.txtNegociacion Markdown activada para paginas HTML publicasDocumentacion AI discovery actualizada en README

AI Discovery

  • robots.txt define Content-Signal: ai-train=no, search=yes, ai-input=yes.
  • Paginas HTML publicas devuelven Markdown si se solicita Accept: text/markdown.
  • Las respuestas Markdown quedan limitadas a paginas publicas; /api/ y /admin/ quedan excluidas.

Documentacion

  • README describe endpoints AI discovery, policy Content-Signal y metadatos OAuth, MCP y API catalog no publicados.
v3.6.5 2026-05-28
Botones del generador colocados juntos arribaPermisos para crawlers IA ampliados en robots.txtllms.txt, llms-full.txt y ai.txt agregadosCabeceras Worker y enlaces head para procesamiento automatico

Generador de canciones

  • EINGABE LEEREN esta ahora junto a ZUFALLS-SIGNAL.
  • El antiguo bloque separado bajo el campo fue eliminado.

Indexacion IA

  • robots.txt permite crawlers IA importantes en paginas publicas y bloquea /api/ y /admin/.
  • llms.txt ofrece un mapa compacto del proyecto.
  • llms-full.txt agrega identidad, reglas, endpoints, areas y contexto de personajes.
  • ai.txt apunta a archivos LLM y sitemaps.

Entrega

  • Las paginas HTML enlazan los LLM como alternates text/plain.
  • Rutas publicas Worker usan X-Robots-Tag: index, follow.
  • API y admin usan noindex, nofollow, noarchive.
  • Las respuestas HTML exponen tambien los LLM por cabecera Link.

Nota Cloudflare

  • Las reglas del dashboard deben permitir los crawlers autorizados.
  • La prueba en vivo mostro contenido gestionado por Cloudflare en robots.txt; esa opcion debe desactivarse en la zona.
v3.6.4 2026-05-28
Rutas de logos de socios corregidas a nombres con guionURLs CDN de playlists y socios codificadas robustamenteCrawl de assets en vivo sin errores 404

Assets CDN

  • Los logos de socios usan ahora los archivos existentes con guion.
  • Los tres logos se subieron de nuevo a Cloudflare R2 y son accesibles por CDN.
  • Las rutas antiguas con espacios o %20 ya no se generan.

Rutas de imagen mas robustas

  • Las paginas de socios codifican nombres de logo antes de crear la URL CDN.
  • Las playlists en DE, EN y ES codifican rutas por segmento.

QA

  • npm run check y npm run build pasaron.
  • El crawl en vivo reviso 602 URLs sin errores 404.
v3.6.3 2026-05-27
Boton para limpiar entrada en el generadorJapones agregado como idioma objetivoREADME y changelog actualizados

Generador de canciones

  • EINGABE LEEREN elimina el texto del tema y enfoca de nuevo el campo.
  • JAPANISCH fue agregado a la seleccion de idioma.
  • Japones se pasa al prompt como idioma objetivo real.

QA

  • npm run check y npm run build pasaron.
v3.6.2 2026-05-27
Generador ampliado con progresoOpenRouter cambiado a cadena fallback de modelos gratuitosSenal aleatoria corregida con fallback localSEO de imagenes mejorado con sitemap y fallbacks crawlablesPrivacidad, README y checks de seguridad actualizados

Generador de canciones

  • TRANSMISSION STARTEN muestra progreso y estado directamente.
  • Errores de validacion, OpenRouter y archivo aparecen bajo el boton.
  • El modelo usado se muestra tras generar correctamente.
  • ZUFALLS-SIGNAL acepta prompts aleatorios legitimos de escenario y cover.
  • Si OpenRouter falla, se carga un texto local de reemplazo.

OpenRouter y modelos gratuitos

  • El proxy usa una allowlist fija de modelos de texto gratuitos con :free.
  • Modelos de pago se bloquean en servidor.
  • Si un modelo gratuito falla, se intenta el siguiente de la cadena.

SEO de imagenes y CDN

  • public/image-sitemap.xml se genera desde public/media-index.json.
  • Las galerias contienen fallbacks de imagen crawlables con alt text y URLs CDN.

Privacidad

  • Los textos explican mejor la cadena OpenRouter gratuita, Workers, D1 y protecciones de entrada.
  • La nota de personajes ficticios sigue en DE, EN y ES.
  • La fecha de privacidad se puso al 27 de mayo de 2026.

Seguridad y QA

  • Checks no destructivos cubrieron cabeceras, origen, prompts invalidos, limites y rate limit.
  • npm.cmd run check, npm.cmd run check:assets y npm.cmd run build pasaron.
v3.6.1 2026-05-27
R2 CDN sincronizado con carpeta local de descargasIndice multimedia e imagenes nuevas actualizadosPaquetes del proyecto y Wrangler actualizadosNota de privacidad para personajes IA ficticios agregada

Media y CDN

  • La carpeta local de descargas se sincronizo con el bucket Cloudflare R2.
  • public/media-index.json fue regenerado.
  • El indice contiene 897 audios, 888 videos, 887 letras y 586 imagenes de galeria.
  • npm run sync:r2 queda disponible para futuras sincronizaciones.

Dependencias y build

  • Astro, adaptador Cloudflare, sitemap, Workers types y Wrangler fueron actualizados.
  • Vite permanece en la linea compatible 7.x.

Privacidad

  • La pagina de privacidad fue actualizada al 27 de mayo de 2026.
  • La nota de IA menciona ChatGPT, Claude y Google Gemini.
  • Datos de personajes, biografias, roles, edades y contactos de lore se declaran ficticios.

QA

  • npm.cmd run check, npm.cmd run check:assets y npm.cmd run build pasaron.
v3.6.0 2026-05-21
Astro 6 migrado a Cloudflare WorkersGenerador de canciones integrado con OpenRouter y archivo D1Hardening de API y entradasLore y Sobre nosotros con funcion de lecturaLogica play/pause y cambio de pistas estabilizadaSEO, privacidad y documentacion actualizados

Cloudflare Workers

  • El proyecto apunta ahora a Cloudflare Workers con runtime Astro.
  • Las APIs del generador usan bindings de Cloudflare mediante cloudflare:workers.
  • El servidor lee OPENROUTER_API_KEY, OPENROUTER_MODEL y el binding D1 DB.
  • Scripts antiguos de Pages fueron eliminados.

Generador de canciones

  • La pagina esta integrada en el layout normal con header, navegacion, fondo y rutas de idioma.
  • Rebel Player enlaza al generador desde el menu de engranaje.
  • Lore de personajes y reglas de estilo se incluyen en el prompt.
  • El generador esta disponible en aleman, ingles y espanol.

Seguridad

  • El proxy acepta solo el formato esperado del generador.
  • Personajes, idiomas, estados de animo, duraciones y formatos se validan en servidor.
  • Entradas se revisan contra spam, caracteres aleatorios, enlaces, emails, scripts y exceso de longitud.
  • OpenRouter y archivo tienen rate limits, limites de tamano y comprobaciones de origen.
  • El archivo D1 bloquea duplicados para la misma idea y personaje durante 15 minutos.

Accesibilidad y contenido

  • Lore y Sobre nosotros tienen lectura mediante Speech Synthesis del navegador.
  • Sobre nosotros se realineo al contexto completo de emisora, lore y StorytellerZ.
  • Se mejoraron alt texts y aria labels.

Rebel Player

  • Los clicks de playlist inician la pista elegida con la logica central.
  • Estado de reproduccion, cambio de fuente y descarga de medios se estabilizaron.
  • El menu de engranaje contiene enlace directo al generador.

SEO, privacidad y mantenimiento

  • README, privacidad, sitemap, robots y metadatos fueron actualizados.
  • Logs temporales y cache Vite fueron eliminados y agregados a .gitignore.

QA

  • npm run check y npm run build pasaron.
  • Se hizo un smoke test local de seguridad no destructivo.
v3.5.2 2026-05-20
Pagina de lore ampliada con navegacion por capitulosCovers de playlists formateados de forma uniformeLa playlist de Mei usa una imagen real de MeiTraducciones y encoding revisados

Lore

  • La pagina de lore genera navegacion por capitulos desde encabezados ##.
  • En desktop la caja de capitulos queda visible al lado.
  • En tablet y movil aparece compacta encima del contenido.
  • Los enlaces de capitulos usan smooth-scroll.

Playlists

  • Los covers usan el mismo marco cuadrado.
  • Los formatos originales se recortan de forma uniforme con object-fit: cover.
  • La playlist de Mei usa la imagen real de Mei.
  • El cambio aplica a aleman, ingles y espanol.

QA

  • npm run check y npm run build pasaron.
  • Se revisaron claves, valores vacios, placeholders y textos de playlists.
  • Se corrigio un problema de encoding en el teaser de lore.
v3.5.1 2026-05-20
R2 sincronizado completamente con la estructura local de descargasPNG/WAV antiguos reemplazados por WebP/OpusMei agregada al Rebel PlayerPlaylists y vista de lore actualizadas

Media y R2

  • La estructura local fue limpiada y subida de nuevo a Cloudflare R2.
  • El bucket rebel-girl-fm contiene 3.223 objetos.
  • Los PNG y WAV restantes fueron eliminados tras la conversion.
  • Los formatos actuales son .opus, .webm, .webp, .txt y .htaccess.
  • public/media-index.json fue regenerado.

Rebel Player

  • Mei-Die-neue-Praktikantin esta disponible como filtro de audio.
  • El cover de Mei apunta a la imagen CDN correspondiente.

Playlists y contenido

  • Las playlists Suno de Mei y STTZ-AprilScherz fueron agregadas.
  • La pagina de lore muestra imagenes junto a los datos de perfil.

QA

  • npm run check y npm run build pasaron.
v3.5.0 2026-05-19
Lore y perfiles centralizados en src/contentTodos los personajes conectados como Markdown con DE/EN/ESEstructura CDN e indice multimedia actualizadosCorrecciones de carga y covers en Rebel PlayerRobots.txt y cabeceras de seguridad limpiadas

Content y lore

  • El antiguo espacio de trabajo de historias se movio a la estructura productiva.
  • La cronica esta ahora en src/content/lore/lore.md.
  • Los perfiles oficiales estan en src/content/lore/figurenprofile.md.
  • Personajes principales y secundarios tienen Markdown en src/content/characters/.

Perfiles y Sobre nosotros

  • La pagina Sobre nosotros carga personajes desde la collection.
  • Personajes principales y secundarios se ordenan por category.
  • Mei fue agregada como principal y Punk-Muschi paso a secundarios.
  • Las paginas de personajes estan conectadas para DE, EN y ES.

Internacionalizacion

  • Los archivos de idioma fueron sincronizados.
  • Los tres idiomas contienen 439 claves.

CDN e indice multimedia

  • scripts/sync.js puede crear el indice desde una estructura local.
  • La galeria se escanea recursivamente y las rutas CDN se codifican de forma segura.

Rebel Player

  • Se corrigieron imagen fallback, estado inicial y URLs de covers.

SEO, seguridad y QA

  • robots.txt y cabeceras de seguridad fueron limpiadas.
  • npm run check y npm run build pasaron.
v3.4.1 2026-04-25
Node 24 como estandar.npmrc con legacy-peer-deps=true para CIPrivacidad actualizada al 25 de abril de 2026

Herramientas de build

  • Nueva .nvmrc con 24 para Cloudflare Pages, GitHub Actions y gestores locales.
  • .npmrc contiene legacy-peer-deps=true y resuelve el conflicto peer de TypeScript 6 y @astrojs/check.

Consistencia de stack

  • Los cuatro proyectos socios usan ahora la misma base: Node 24 y npm con legacy-peer-deps.

Privacidad

  • La fecha de privacidad se actualizo al 25 de abril de 2026 en DE, EN y ES.

Sin cambios de contenido

  • Codigo y claves i18n permanecen sin cambios.
v3.4.0 2026-04-24
Alineacion de stack: Rebel Girl FM sigue como referencia DE/EN/ESLos cuatro proyectos socios soportan tres idiomasi18n, privacidad y changelogs sincronizados

Release de sincronizacion

Esta entrada documenta el despliegue de idiomas en los tres proyectos socios. Rebel Girl FM ya tenia DE/EN/ES y sirvio como referencia.

Proyectos socios ampliados

  • dampferburg: nuevas rutas espanolas, tres banderas SVG inline e i18n de sitemap.
  • dampfermessen: unas 150 claves espanolas nuevas y tercer boton de bandera.
  • noob-town: espanol como tercer idioma con switcher de banderas inline.

Rebel Girl FM como referencia

El patron src/i18n/{de,en,es}.ts sirvio de modelo.

Sin cambios locales

  • La base de codigo quedo sin cambios.
  • La fecha de privacidad ya coincidia con el 24 de abril de 2026.
v3.3.0 2026-04-24
Script de configuracion CloudflareFallback de adblocker para feedback TallyStalker renombrado de Dieter a Karl LauerbachActualizaciones de TypeScript, Astro y WranglerFecha de privacidad actualizadaStack unificado con proyectos socios

Automatizacion Cloudflare

  • Se agrego wrangler.toml con binding de bucket R2.
  • npm run setup:cloudflare comprueba y crea recursos Cloudflare por CLI.
  • El script usa npx wrangler para fiabilidad multiplataforma.

Fallback de feedback

  • Si el formulario Tally es bloqueado, aparece una caja con enlace directo tras cinco segundos.
  • Se agregaron tres claves nuevas por idioma.

Renombre de personaje

  • Dieter Lauerbach paso a llamarse Karl Lauerbach en traducciones y documentacion.

Dependencias

  • Astro, TypeScript, Wrangler, Tailwind y Vite fueron actualizados.

CSS y build

  • Se elimino una directiva @source de Tailwind para evitar un problema de build.

Stack unificado

  • Rebel Girl FM comparte ahora base tecnica con los proyectos socios.

Privacidad

  • La fecha de privacidad se actualizo al 24 de abril de 2026.
v3.2.0 2026-04-19
Pagina de feedback con Tally inlineDocumentacion IA ampliada a 16 modulosPrivacidad: seccion Tally.so agregadaFavicon movido al CDNCorrecciones de hidratacion y rutas de video

Pagina de feedback

  • Nuevas paginas /feedback, /en/feedback y /es/feedback con formulario Tally embebido.
  • El popup fue reemplazado por formulario inline para mejor privacidad y UX.
  • Se agregaron enlaces en el footer y claves de traduccion.

Favicon

  • El favicon se movio al archivo WebP del CDN.
  • Se elimino una entrada SVG duplicada.

Documentacion IA

  • La documentacion antigua fue reemplazada por 16 modulos.
  • CLAUDE.md fue actualizado.

Privacidad

  • Se agrego una seccion de Tally.so en DE, EN y ES.
  • La fecha de privacidad se actualizo al 19 de abril de 2026.

Limpieza y correcciones

  • Decap CMS fue eliminado.
  • Los componentes hero hidratan mas rapido.
  • Se corrigieron filtros de ruta de video y la ruta ES de galeria.
v3.1.0 2026-04-08
Migracion completa a Astro 6Campo de sexualidad para todas las personasPlaylists de videos musicales en Rebel PlayerOptimizacion SEO y PWADocumentacion para IACorrecciones de imagenes y playlists

Migracion completa a Astro 6

  • El proyecto paso de HTML/JS estatico a Astro 6, Preact y Tailwind CSS v4.
  • 85 paginas se generan ahora con mejor rendimiento, seguridad y SEO.
  • Player, galeria y filtros funcionan como islas Preact.
  • Nanostores mantiene el estado global de reproduccion.
  • Perfiles y changelog usan Astro Content Collections.
  • Las transiciones de pagina usan <ClientRouter />.

Actualizaciones de personas

  • Se agrego un campo de sexualidad a todas las paginas de persona.
  • Todos los valores fueron traducidos a aleman, ingles y espanol.
  • Las paginas incluyen JSON-LD Person.

Rebel Player

  • Se agrego un grupo de playlists de videos musicales.
  • media-index.json se carga en el cliente para evitar problemas de hidratacion.
  • Hay indicador de carga durante la inicializacion.

SEO y rendimiento

  • Se agregaron JSON-LD RadioStation, dimensiones OG, tags Twitter/X y manifest PWA.
  • Las imagenes de persona usan carga temprana cuando corresponde.

Seguridad y correcciones

  • CSP se amplio para el CDN multimedia.
  • Se corrigieron URLs de imagenes, OG, playlists y despliegue.

Documentacion IA

  • Se agregaron CLAUDE.md y la carpeta ki/ para asistentes IA.
v3.0.0 2026-04-07
Migracion multimedia a Cloudflare R2 CDNFormatos antiguos eliminadosLimpieza de codigo y actualizaciones

Migracion a Cloudflare R2

  • Todos los archivos multimedia se sirven ahora desde cdn.rebel-girl-fm.de.
  • Cloudflare cachea y entrega los medios globalmente.
  • La carpeta public/downloads/ fue eliminada del repositorio.

Limpieza

  • Se eliminaron MP4, WAV y PNG antiguos; quedan WebM, Opus y WebP.
  • Se quitaron scripts PowerShell puntuales y artefactos temporales.
  • Se resolvieron hints y warnings de TypeScript.

Actualizaciones

  • Astro, Preact y dependencias de seguridad fueron actualizados.
  • La importacion z migro a astro/zod.

Correcciones

  • El indice de letras se corrigio de Audio/ a Songtexte/.
  • Se corrigio un error Unicode en el nombre del logo StorytellerZ.
  • La imagen de Ex-Freund se agrego en perfiles y Sobre nosotros.
  • La edad del Teufel se acorto.

Privacidad

  • La politica de privacidad menciona Cloudflare R2 como CDN multimedia en los tres idiomas.
v2.9.5 2026-04-05
Nuevas imagenes para personajes secundariosConversion de imagenes de PNG a WebP

Actualizaciones multimedia

  • Se agregaron nuevos assets para Stalkerin, Stalker y las Hermanas de Radio y se convirtieron a WebP.
  • Las imagenes generadas se conectaron a las paginas de personajes secundarios.
  • Los PNG antiguos se eliminaron y el indice multimedia se reconstruyo con sync.js.
v2.9.4 2026-04-03
Lore de personas en todas las paginas de perfilPagina Sobre nosotros con descripciones de lorei18n 372 claves x 3 idiomasActualizaciones de dependencias y configuracion

Lore de personas

  • Todas las paginas de persona muestran ahora la historia completa de fondo.
  • Un titulo “Lore:” con el color del personaje aparece antes de cada texto.
  • Descripcion y story antiguos se quitaron; la lore queda como texto principal.

Datos de personas

  • La edad se muestra como DD.MM.YYYY (X anos).
  • Los generos se actualizaron a los tres principales de los prompts.
  • Se elimino la visualizacion duplicada del rol.

Mejoras de layout

  • La imagen de persona llena ahora toda la altura de la caja de informacion.

Sobre nosotros e i18n

  • La pagina Sobre nosotros recibio descripciones basadas en lore en DE, EN y ES.
  • Los archivos de traduccion se sincronizaron a 372 claves por idioma.
  • El script de i18n detecta tambien valores con comillas dobles.

Dependencias y configuracion

  • Astro, Preact y la configuracion de rutas TypeScript fueron actualizados.
  • README fue reescrito con documentacion del proyecto.
v2.9.3 2026-03-24
Reescritura de rutas SPA (modo dual)Error F5 corregidoClick de tabs corregido

Reescritura de rutas SPA

  • Modo dual: produccion usa clean URLs; otros entornos usan hash routing y son seguros con F5.
  • useCleanUrls(): detecta el dominio de produccion y controla el modo de URL.
  • Deteccion universal: los handlers evaluan hash, ruta y parametro ?p=.
  • Segundo popstate: fallback de ruta para clean URLs.

Correcciones

  • Corregidos errores de archivo no encontrado al pulsar F5.
  • Las tabs vuelven a responder al click.
  • Eliminada una } duplicada en el primer handler popstate.
v2.9.2 2026-03-24
Fallback de imagen y conversion multimediaPerfiles de personajes con bloques de datosSincronizacion i18n (308 claves x 3 idiomas)Plan de migracion a Astro creado

Fallback de imagen y conversion multimedia

  • Las 52 imagenes recibieron WebP <source> mas fallback JPG <img>.
  • Se generaron 397 JPG, se convirtieron 6 MP4 a WebM y se quitaron 7 PNG duplicados.
  • Los pares de formato estan completos: Opus/MP3, WebM/MP4 y WebP/JPG.

Perfiles de personajes

  • Se agregaron perfiles para Rebel Girl, Shadowman, Folk-Hexe, Punk-Muschi, Freundin y Rumpelstilzchen.

Sincronizacion i18n

  • Nuevas claves de etiquetas, correcciones de duplicados y 29 claves ES faltantes.
  • Cobertura completa: 308 claves para DE, EN y ES.
v2.9.1 2026-03-21
Correccion de rutas en sistema locali18n completado (284 claves)Correccion del validador de assets

Correcciones y enrutamiento

  • Rutas locales: fallback por hash para acceso directo local.
  • OnLoad SPA reset: eliminacion de un listener obsoleto.
  • i18n completado: titulos faltantes de la pagina de error en DE y ES.
  • Validador de assets: regex corregida en check_assets.js.
v2.9.0 2026-03-17
Actualizacion RGPD/GDPRIntegracion de streaming en TwitchMigracion a Cloudflare

Cumplimiento y hosting

  • Actualizacion RGPD/GDPR: revision completa de la politica de privacidad en DE, EN y ES.
  • Migracion a Cloudflare: hosting mediante Cloudflare Pages y GitHub.

Media y Twitch

  • Streaming en Twitch: integracion fluida en el reproductor.
  • Adaptacion automatica de UI: los controles se ocultan automaticamente durante directos.
v2.8.0 2026-03-16
Clean URLs (History API)Playlists jerarquicasAuditoria y refuerzo de seguridadCumplimiento WCAG

Gran actualizacion de funciones

  • Clean URLs: cambio completo a enrutamiento moderno con History API.
  • Playlists jerarquicas: estructura de carpetas mas profunda para fuentes de audio.
  • Selector de idioma moderno: menu desplegable para DE, EN y ES.

Seguridad

  • Cabeceras HTTP de seguridad, CSP, Permissions-Policy y mitigacion XSS.

UX y accesibilidad

  • Mejora de contraste, indicadores de foco y pagina 404 renovada.
v2.7.0 2026-03-16
Refuerzo de seguridad (HSTS/CSP)Cumplimiento WCAG (contraste)Clean URLs mediante redireccion 404

Seguridad y accesibilidad

  • Refuerzo de seguridad: endurecimiento inicial de cabeceras.
  • Cumplimiento WCAG: mejora de contraste para mejor legibilidad.
  • Clean URLs: configuracion inicial mediante redireccion 404.
v2.6.0 2026-03-16
Soporte multilingue completo (DE, EN, ES)Funciones shuffle y repetirImplementacion ARIA

Global y accesible

  • Soporte multilingue completo: localizacion completa mediante i18n.
  • Implementacion ARIA: etiquetas ARIA completamente traducidas.

Actualizacion del reproductor

  • Modos de reproduccion: shuffle y repetir.
  • Deduplicacion: limpieza automatica de formatos multimedia redundantes.
v2.5.0 2026-03-14
Enrutamiento inicialIntegracion de personas

Primera implementacion

  • Enrutamiento inicial: hashes SPA y deduplicacion de videos.
  • Integracion de personas: playlists de Shadowman, Freundin y Rumpelstilzchen.
v2.0.0 2025-12-23
Carga diferidaSoporte WebP y WebM

Impulso de rendimiento

  • Carga diferida, WebP y WebM para una carga mas rapida de paginas y medios.
v1.0.0 2025-12-19
Lanzamiento inicialSPA basica con reproductor, galeria y funciones sociales

Lanzamiento inicial

  • SPA basica con reproductor, galeria y funciones sociales.