feat: log de errores para el admin (backend + frontend)
Panel nuevo en Configuracion ("Errores del sistema", solo superadmin): errores de backend
(excepciones 500 no manejadas, con stack/ruta/metodo/usuario) y de frontend (errores JS y
promesas sin catch en el navegador del usuario, antes invisibles para cualquiera mas alla de esa
persona). Filtro por origen, boton para limpiar el historial.
Error Boundary de React: si algo rompe el render, ya no queda pantalla en blanco -- aviso simple
con boton de recargar, y el error queda reportado igual.
Nuevo error_logs (tabla, se recorta sola a 1000 filas) + GET/DELETE /api/error-logs (superadmin)
+ POST /api/error-logs (publico, rate-limited, para reportar incluso sin sesion).
Probado de punta a punta en dev: error real de backend (500) capturado con stack completo y
usuario correcto, error JS global y promesa rechazada capturados desde el navegador, panel
muestra ambos y el boton de limpiar funciona. Se encontro y corrigio un bug real en el camino: la
identificacion de usuario opcional leia jwt.payload.id en vez de .sub (como realmente lo firma
auth/service.js), asi que nunca identificaba a nadie.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
@@ -1,5 +1,19 @@
|
||||
# Changelog - project.linkedcorp.net
|
||||
|
||||
## [1.21.0] - 2026-09-17
|
||||
### Added
|
||||
- Log de errores para el administrador, panel nuevo en Configuración ("Errores del sistema",
|
||||
solo superadmin): lista errores de backend (excepciones 500 no manejadas, con stack completo,
|
||||
ruta, método y usuario si estaba logueado) y de frontend (errores JS y promesas sin `catch` en
|
||||
el navegador del usuario, capturados automáticamente — antes solo aparecían en la consola del
|
||||
navegador de esa persona, invisibles para cualquier otro). Filtro por origen y botón para
|
||||
limpiar el historial.
|
||||
- Error Boundary de React: si algo rompe el render de la app, ya no queda una pantalla en blanco
|
||||
— se muestra un aviso simple con botón para recargar, y el error queda reportado igual.
|
||||
- Nuevo `error_logs` (tabla + `GET/DELETE /api/error-logs`, solo superadmin) y
|
||||
`POST /api/error-logs` (público, con rate-limit, para que el frontend pueda reportar incluso
|
||||
sin sesión — ej. en la pantalla de login).
|
||||
|
||||
## [1.20.0] - 2026-09-17
|
||||
### Added
|
||||
- Convertir una actividad en proyecto (menú de tres puntos en el listado de Actividades). Como
|
||||
|
||||
Reference in New Issue
Block a user