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

67 lines
4.1 KiB
Markdown

# 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.