# Changelog

## 0.5.0 — Canal criptográfico dinámico (ECDH + AES-256-GCM), Guards de Inputs, Notificaciones y Socket en Vivo
- **Cifrado de transporte por sesión (`src/core/secure-channel.js` + `public/js/secure-client.js`):**
  - Handshake efímero **ECDH P-256 + HKDF-SHA256** único por cada acceso (`/api/security/handshake`) con emisión de certificado firmado (`ECDHE-P256-HKDF-SHA256-AES256-GCM`).
  - Cifrado de ida y vuelta **AES-256-GCM** con AAD (`channelId:timestamp`) en peticiones y respuestas JSON (`X-BNS-Channel`, `X-BNS-Accept-Encrypted`), con renovación transparente ante expiración (`440`).
- **Guards de sanitización y validación en Front-end y Back-end (`src/core/validate.js` + `public/js/ui-feedback.js`):**
  - Bloqueo de secuencias peligrosas (XSS/SQL/contaminación de prototipos) y devolución de errores detallados por campo (`issues`).
  - Verificación en vivo en cada input con avisos minimalistas de `error`, `warning` y `success`.
- **Socket en tiempo real (`/api/realtime/socket`) + Notificaciones Push + Reintento (`withRetry`):**
  - Actualización reactiva de componentes del DOM en `/admin`, `/cuenta` y fichas de producto **sin recargar la página**.
  - Notificaciones minimalistas flotantes (`.bns-notice`), soporte para **Notificaciones Push** del navegador y reintentos automáticos con backoff para que ningún contenedor quede vacío.

## 0.4.0 — Autenticación, Roles (RBAC), Cuenta de Clienta y Dashboard Administrativo
- **Migración `002_auth_rbac_schema.js`:** tablas `roles` (`admin`, `manager`, `customer`), `users` (correo y perfil cifrados con AES-256-GCM, búsqueda por SHA-256 y contraseñas con `bcrypt` factor 12), `user_sessions` (token hasheado con SHA-256 y cookie `HttpOnly; SameSite=Lax`) y `audit_logs`.
- **Login y Registro (`/ingresar`, `/registro`):** mantienen la estética editorial, tipografía, paleta e ilustraciones de la tienda web, con validación doble capa y limitador de intentos.
- **Dashboard de Clienta (`/cuenta`):** conserva el estilo visual de la tienda; muestra historial y estado de sus pedidos y permite guardar sus datos de entrega habituales cifrados.
- **Dashboard de Administración independiente (`/admin`):** interfaz tipo aplicación inspirada en el diseño de referencia y adaptada a la paleta de marca (`#FAF7F2`, `#1C1C1C`, `#D99B9B`, `#9BC4E2`), con cápsula de perfil superior, 5 tarjetas de módulos, pestañas segmentadas, tablero de procesos a 2 columnas (*En cola / Completados*) y bloque oscuro inferior para gestionar prendas, stock por talla, usuarios, roles y bitácora de auditoría.

## 0.3.0 — Animaciones de scroll, transiciones e interacciones de cursor
- **Barra de lectura global:** indicador de progreso animado (`.scroll-progress`) bajo la cabecera.
- **Navbar interactivo:**
  - Efecto magnético (`data-magnetic`) en logotipo y botón del carrito.
  - Indicador flotante en píldora/etiqueta (`.nav-indicator`) que sigue suavemente el cursor y el foco del teclado entre los enlaces del menú.
  - Cabecera compacta al hacer scroll (`.site-header.is-scrolled`).
- **Scroll dinámico & Parallax:**
  - Desplazamiento sutil con factor de profundidad en ilustraciones y tipografías flotantes (`data-parallax`).
  - Marquee de anuncios con aceleración de velocidad reactiva al desplazamiento de scroll (`initMarqueeVelocity`).
- **Footer reactivo al cursor:**
  - Letras de la firma *By Naomi* separadas dinámicamente (`.fw-letter`), con entrada escalonada y respuesta interactiva de proximidad al cursor del mouse (`--p` factor de elevación y luminosidad de color).
  - Efecto de desplazamiento y transición suave en enlaces de navegación del pie.
- **Accesibilidad:** todas las animaciones se desactivan o degradan limpiamente bajo `prefers-reduced-motion: reduce` y pantallas táctiles sin puntero fino.

## 0.2.0 — Ejecutable de control y monitor visual de observabilidad (`/dev`)
- **Ejecutable `bynaomi-control.cmd` (`scripts/dev-control.js`):** menú interactivo y comandos directos (`start`, `stop`, `restart`, `status`, `logs`) para iniciar y finalizar los servicios, abrir la tienda/monitor y seguir logs coloreados en consola.
- **Monitor visual en vivo (`/dev`, solo en desarrollo):** panel con transmisión SSE (`/dev/stream`), métricas en tiempo real (latencia HTTP media y p95, contador de peticiones/errores, memoria RSS/Heap de Node y Web Vitals del navegador) y tabla filtrable por origen (`HTTP`, `Backend`, `Frontend`, `Rendimiento`, `Errores`).
- **Telemetría de Front-end (`public/js/telemetry.js`):** envío ligero (`sendBeacon`) de tiempos de carga (TTFB, DOM Interactive, FCP, LCP), errores JS no controlados e interacciones de usuario hacia `/dev/telemetry` (validado con Zod).
- **Puente de logs de Backend:** integración de `pino` con `logs/dev.log` y el buffer circular del monitor manteniendo la redacción de datos sensibles.

## 0.1.1 — Revisión gráfica, imágenes y codificación de texto
- **Texto y codificación (UTF-8 sin BOM):** corregidos los caracteres corruptos (`Ã³`, `Ã­`, `Â©`) en `layout.js`, `catalog.views.js`, `orders.contracts.js`, `orders.service.js` y `site.webmanifest`.
- **Alineación tipográfica:** corregido `.word` (`vertical-align: baseline`) para que las palabras en cursiva (`<em>`) en titulares animados (`data-split`, `data-hero-title`) queden alineadas en su línea base y `aria-label` conserve espacios tras `<br>`.
- **Imágenes y proporciones:** dimensiones intrínsecas `500×500` en los SVG de marca (`vestido.svg`, `maquina.svg`, `tijera.svg`, `metro.svg`) desde `scripts/build-assets.js`, carga inmediata de `maquina.svg` en la sección Atelier y logo de cabecera ampliado a `60px` de alto.
- **Maquetación:** grilla de "Selección de temporada" ajustada a 4 columnas (sin huecos vacíos) y margen/interlineado de la firma del pie (`.site-footer__wordmark`) ajustado para no superponerse con el aviso legal.

## 0.1.0 — Base funcional
- Estructura modular (catalog, orders, pages) y núcleo (env, database, crypto, logger, errores, validación).
- Esquema SQLite inicial con migraciones reversibles; pedidos con PII cifrada.
- Tienda: inicio, colección, categorías, ficha, carrito, checkout, confirmación, atelier, 404.
- Sistema visual de marca, animaciones y accesibilidad (reduced-motion, foco, skip link).
- Documentación: README y guía de despliegue cPanel.
- Corregido: el manejador de errores usaba una función inexistente de pino (500 en rutas 404).
