Changelog
Qué ha cambiado en cada versión de la mesa.
# Changelog Los cambios notables de Crónicas y Leyendas se anotan aquí. El formato sigue [Keep a Changelog](https://keepachangelog.com/es-ES/1.1.0/). La versión de la aplicación es la de `package.json`. La interfaz la muestra como «Crónicas y Leyendas x.y.z». Cada publicación sube las dos cosas a la vez: el número en `package.json` y una sección nueva en este archivo. ## [0.1.16] - 2026-10-06 ### Añadido - Avisos Android con la app cerrada vía **ntfy** autoalojado (sin Firebase/FCM): el servidor publica al tema secreto del usuario tras chat/tirada (mismas reglas de visibilidad que los avisos de escritorio); la APK mantiene un servicio en primer plano que escucha el stream JSON y muestra notificaciones del sistema. Activación en el menú de avisos de la campaña. - Variables `NTFY_BASE_URL` y opcional `NTFY_TOKEN`; documentación de operaciones en `docs/ntfy-push.md`. ## [0.1.15] - 2026-10-06 ### Añadido - Android edge-to-edge: Capacitor `SystemBars` (`insetsHandling: css`, `viewport-fit=cover`), `EdgeToEdge.enable` en `MainActivity`, y padding de safe-area en cabecera, compositor y pantallas de auth/inicio. El fondo del tema llega al notch y a la barra de gestos; los iconos de las barras del sistema siguen el tema (oscuros en Fantasía, claros en DnD/Cyberpunk). ## [0.1.14] - 2026-10-06 ### Cambiado - El producto pasa a llamarse **Crónicas y Leyendas** en la interfaz, metadatos, app Android (nombre visible), Capacitor `appName`, README y documentación. El paquete npm interno sigue siendo `cronica`; el `appId` Capacitor permanece `dev.rayolaser.cronicas` para no romper actualizaciones. - Dominio previsto: `cronicasyleyendas.es` (documentado en `.env.example` y guías). Mientras el DNS no apunte al VPS, la producción sigue en el sslip y `PUBLIC_URL` no se cambia al dominio nuevo. - Intent-filter Android adicional para `https://cronicasyleyendas.es/unirse/...`. ## [0.1.13] - 2026-10-06 ### Corregido - En el ambiente «Dragones y mazmorras», el texto de ayuda de diálogos y paneles de pergamino (p. ej. «Nueva hoja» sin jugador) vuelve a leerse: `--muted-foreground` ya no queda casi del mismo tono que el fondo claro. ## [0.1.12] - 2026-10-06 ### Añadido - El máster puede crear hojas de personaje sin jugador («Nueva hoja»), etiquetadas «Sin jugador», y asignarlas después a un jugador que aún no tenga hoja. También puede quitar el jugador de una hoja. - Las hojas sin dueño las lee toda la mesa; solo el máster las edita y mueve sus fichas en el mapa hasta asignarlas. ## [0.1.11] - 2026-10-06 ### Cambiado - «Dragones y mazmorras» es el ambiente visual por defecto en toda la app (inicio, entrar, registro, campañas, unirse, changelog y errores), no solo dentro de una campaña. Dentro de una campaña sigue mandando el tema guardado. - En ese ambiente, los campos de texto, selects y casillas usan fondo, borde y tipografía más oscuros para que no se pierdan sobre la madera y el pergamino. ## [0.1.10] - 2026-10-06 ### Añadido - Ambiente «Dragones y mazmorras»: madera oscura, paneles de pergamino, acentos de latón y burdeos. Es el predeterminado al crear una campaña nueva (Fantasía y Cyberpunk 2020 siguen disponibles en Configuración). ## [0.1.9] - 2026-10-06 ### Cambiado - En pantallas estrechas la mesa por defecto es cabecera compacta + hilo + compositor fino: presentes, mapas y ritmo del máster ya no ocupan filas encima del chat; van detrás del botón «Canal» (panel inferior). - Las opciones del compositor (voz, destinatario, manera, susurro, dados) en móvil viven en el menú «Más»; el campo de texto y Publicar quedan a la vista. - En pantallas anchas (lg+) se mantiene la columna lateral de 0.1.5. ## [0.1.8] - 2026-10-06 ### Corregido - En la cabecera de campaña, el enlace «Crónica» a la lista de campañas vuelve a verse también en pantallas pequeñas (ya no queda oculto bajo `sm`). - El menú de la campaña (incluido el sheet móvil) incluye «Mis campañas» al inicio para salir de la partida. - La etiqueta de versión («Crónica x.y.z») enlaza a `/changelog`, página que muestra este archivo. - Las fichas del mapa dejan de estirar el retrato: el token usa un contenedor cuadrado y `Face` acepta `size-full` sin pelear con el `size-7` por defecto. ## [0.1.7] - 2026-10-01 ### Añadido - Proyecto Android con Capacitor: la app abre la Crónica desplegada en HTTPS (WebView), con icono y pantalla de carga. URL configurable con `CAPACITOR_SERVER_URL` (por defecto el sslip de producción). - Enlaces profundos para `/unirse/...` en el sslip y en `cronicas.rayolaser.dev`. - Guía en [docs/app-android.md](docs/app-android.md): requisitos, `npm run cap:sync`, Android Studio y APK/AAB firmado. ## [0.1.6] - 2026-09-25 ### Añadido - Borrado de mensajes: el autor puede eliminar los suyos; el máster, cualquiera del canal. Soft-delete: el hilo muestra «Mensaje eliminado» y oculta el cuerpo. El máster ve quién lo borró y cuándo. El control pide confirmación y respeta el refresco por sondeo. Los eliminados no cuentan en las insignias de no leídos. En susurros y pendientes solo puede borrar quien ya podía leerlos (autor o máster). ## [0.1.5] - 2026-09-25 ### Cambiado - La mesa deja más sitio al hilo: cabecera de canal más compacta; en pantallas anchas (lg+) presentes, mapas y ritmo del máster van en una columna lateral estrecha (~280–300px); el chat y el compositor ocupan el resto. - En pantallas estrechas esos paneles siguen apilados y plegables por defecto, encima del hilo. - Las opciones del compositor (voz, destinatario, manera, susurro, dados) siguen junto al cuadro de texto. ## [0.1.4] - 2026-09-25 ### Añadido - Avisos de mensajes nuevos en todos los canales que puedes ver (general, habitación y directo): insignia con recuento en la barra lateral cuando no estás mirando ese canal. - Avisos del navegador (Notification API) cuando la pestaña está en segundo plano o no tiene el foco, con permiso en español y control en el menú de la campaña. Al hacer clic se enfoca la pestaña y se abre el canal. - Sonido suave opcional (desactivado por defecto), guardado en localStorage. - Los avisos respetan presencia, revelado pendiente y susurros: no cuentan tus propios mensajes ni lo que aún no puedes leer. ## [0.1.3] - 2026-09-25 ### Cambiado - Los enlaces de invitación usan el origen de la petición (Host / X-Forwarded-*) cuando está disponible; `PUBLIC_URL` queda como respaldo. Así coinciden con la URL que el máster está usando (IP, sslip.io o dominio). ## [0.1.2] - 2026-09-25 ### Cambiado - En pantallas pequeñas la mesa deja más sitio al chat: ritmo, presentes y mapas van en paneles plegables; el compositor usa iconos y menos chrome. ## [0.1.1] - 2026-09-24 ### Cambiado - El ambiente Cyberpunk 2020 usa negro, rojo y blanco. ## [0.1.0] - 2026-09-24 Primera versión para probar en un servidor. ### Añadido - Cuentas, campañas y código de invitación. Quien crea la campaña es el máster y no tiene hoja de personaje. - Canales generales, habitaciones y directos. El máster decide quién está presente en un general o una habitación. Quien no está no lee ese canal. El máster lee todos. Los directos los leen sus dos participantes. - Hojas de personaje, dados en el servidor y susurros privados. - Voz de personaje con destinatario opcional y manera (normal, susurro, grito o un texto libre). - Mapas de la campaña, enlazados a cero o más canales generales o de habitación. Vista grande con zoom y desplazamiento, fichas de personajes y PNJ. El máster mueve cualquier ficha; un jugador solo la suya, en un mapa que pueda ver. Los PNJ los crea el máster. - Ambientes Fantasía y Cyberpunk 2020, elegidos por el máster en Configuración. - Ritmo de escritura (libre o un mensaje) y espera de revelado, con ajuste de campaña y por canal. El máster escribe siempre y su narración se ve al momento. - Avisos de mensajes nuevos en los directos, sin correo (ampliados a todos los canales visibles en 0.1.4). - Versión visible en la portada, en el menú de la campaña y en Configuración. - Paquete de despliegue para Ubuntu: nginx, systemd y guía en `docs/despliegue-vps.md`.