Files
project.linkedcorp.net/CHANGELOG.md
T
Milton Gonzalez 869094c622 feat: boton de mostrar/ocultar clave en todos los campos de contraseña
Componente reutilizable PasswordInput (icono de ojo) usado en login, registro,
restablecer clave, cambiar clave, crear usuario y la clave SMTP de
Configuracion, para que el usuario pueda verificar que la esta escribiendo
correctamente.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-09 09:00:06 -05:00

4.1 KiB

Changelog - project.linkedcorp.net

[1.4.0] - 2026-09-09

Added

  • Boton de revelar/ocultar clave (icono de ojo) en todos los campos de contraseña de la app: login, registro, restablecer clave, cambiar clave (usuario logueado), crear usuario y la clave SMTP en Configuración. Nuevo componente reutilizable PasswordInput.

Fixed

  • El fix de espacios en SMTP del v1.3.0 usaba trim(), que solo recorta los bordes. El caso real en producción tenía el espacio a mitad del host ("mail.linkedcorp." + " " + "net"), asi que seguia fallando tras el primer fix. Corregido para quitar cualquier espacio, no solo los bordes.

[1.3.0] - 2026-09-06

Added

  • Configuración → Correo (SMTP): botón "Enviar prueba" con campo de destinatario. Ejecuta un envío real (POST /api/settings/smtp/test, solo superadmin, rate-limited) usando los valores actuales del formulario (aunque no se hayan guardado) y muestra el resultado real — éxito o el error tal cual lo devuelve el servidor SMTP — a diferencia de sendMail() (correo de negocio), que nunca lanza para no romper flujos como forgot-password.

Fixed

  • La pantalla de SMTP no tenía forma de verificar que la configuración guardada funcionara de verdad; un error de host/certificado/credenciales solo se detectaba cuando fallaba un correo real de negocio, sin ningún diagnóstico. Regla agregada a SEGURIDAD-Y-CALIDAD.md del orquestador: toda config de servicio externo debe incluir una acción de prueba real.

[1.2.0] - 2026-09-06

Added

  • Cambiar clave desde la app: PUT /api/auth/change-password (exige la clave actual) + opción "Cambiar clave" en el menú de usuario (popup), disponible para cualquier usuario logueado.

[1.1.0] - 2026-09-06

Added

  • Autorregistro público (/registro) con verificación de correo (enlace de un solo uso, 24h) y aprobación posterior por Administrador/Superadministrador (/api/users/:id/approve|reject).
  • Recuperación de clave (/olvide-clave → /restablecer-clave), respuesta siempre genérica.
  • Rol superadmin: el usuario más antiguo del sistema (bootstrap automático al primer registro).
  • Configuración → Correo (SMTP), solo visible/editable por el superadmin; clave cifrada (AES-256-GCM) en system_settings, nunca expuesta por la API. Sin configurar, los correos de verificación/recuperación se loguean en vez de enviarse (modo dev, no rompe el flujo).

Fixed

  • Bug real: React.StrictMode disparaba dos veces el efecto de VerifyEmailPage, y la segunda llamada (token ya consumido) mostraba "enlace inválido" aunque la verificación sí había funcionado. Corregido con una guarda por token ya solicitado.
  • Reordenado el montaje de rutas del backend: subtasksRoutes (mount genérico en /api) queda al final, para no interceptar con su requireAuth interno una request sin token dirigida a un router más específico registrado después (ver deuda técnica de la v1.0.0).

[1.0.0] - 2026-09-06

Added

  • Primer despliegue a producción: https://project.linkedcorp.net (arquetipo B, dos servicios).
  • create-admin.js: bootstrap del usuario Administrador de producción con clave fuerte generada.

Changed

  • seed-db.js separa catálogos (universal) de datos de ejemplo (solo entornos no productivos).
  • Logo real de LinkedCorp (sidebar, login) en vez del placeholder "LC"; tamaño duplicado.
  • ComboBox/Flyout se posicionan con portal a document.body (ya no se recortan dentro de un Expander o DetailPopup).
  • Master-detail de listados unificado en DetailPopup (popup de tamaño fijo, no se cierra con clic afuera) en Proyectos, Actividades, Departamentos, Usuarios, Miembros y Catálogos.
  • "Miembros" del proyecto pasa a ser su propia pestaña (antes vivía dentro de "Info").

[0.1.0] - 2026-09-03

Added

  • Estructura inicial del proyecto (backend Express + frontend React/Vite + MariaDB).
  • Modelo de datos MVP: usuarios/roles, departamentos, proyectos, actividades, subtareas, dependencias, comentarios, adjuntos, notificaciones, auditoría, catálogos.
  • Identidad UI/UX Fluent/Windows 11 (UI-UX-WINDOWS) adaptada a app web.