--- asset_id: MIN-EL-Jesus-20260622-v01 version: v01 tipo: MIN — Minuta owner: Jesus sherpa: Jess (SherpaX de Jesus) ratificador: Jesus fecha: 2026-06-22 intellibank: IB-EL-EmpowerLabs subbank: EQ-EL-Equipo --- # Minuta del Día · Jesús · 2026-06-22 ## Qué se hizo - **tribus-rrhh · view-tienda-profile:** eliminados `[radius]="false"` y `[border]="false"` de todos los `ms-input-icon` y `ms-textarea` en `view-tienda-profile.component.html` y `view-tienda-profile-sections.component.html`. - **tribus-rrhh · view-tienda-profile-sections · rediseño:** reemplazado diseño antiguo (ms-trade-card + ms-dialog) por tabla de colaboradores con card/toolbar + modales overlay siguiendo la línea de manage-banners y manage-points. TS actualizado: ms-dialog → flags booleanos (`showAddColabModal`, `showEditColabModal`), copia local `currentColab` para evitar problema de timing con `@Input`. Condición de edición simplificada a `user.username != companyProfile.responsable`. `margin="0"` agregado a ms-input-icon del modal. Fila clickeable para editar. Validación de eliminación con `alertOptions` (confirmación Swal). - **tribus-rrhh / swal.ts · alertOptions:** migrados todos los `Swal.fire` de confirmación en `manage-banners` (6 calls), `manage-points` (4 calls) y `view-tienda-profile-sections` (1 call) a `alertOptions` con `position: 'center'`, `customClass: 'custom-swal2-alert-custom'`. Agregado soporte para `input`, `inputLabel`, `inputPlaceholder` en `AlertOptions` y en los dos `Alert.fire()` internos de `swal.ts` para cubrir rechazos con textarea. - **rebelocity-club · sesión compartida entre subdominios:** modificado `user.service.ts` para que la cookie `usuario2` use `Domain=.rebelocityclub.com`. Se añadió getter `cookieDomain` (devuelve dominio en prod, vacío en localhost), se actualizó `setUser()` para escribir con dominio, y se añadió delete con dominio en `logout()` como primera línea (mantiene deletes sin dominio para limpiar cookies viejas de usuarios existentes). Resultado: login en cualquiera de las 3 apps (rebelocityclub.com, libreria., rally.) comparte sesión; logout en cualquiera la borra en todas. ### Socket Notificaciones (proyecto servidor Socket.IO) - **Auditoría técnica completa:** identificadas y documentadas 12 oportunidades de mejora clasificadas por criticidad: 3 críticas (errores en tiempo de ejecución), 2 altas (seguridad), 7 medias (calidad de código). - **Plan de corrección ejecutado:** corrección de bugs de runtime, eliminación de código muerto, migración de logs a sistema estructurado, limpieza de archivos sensibles del repositorio. - **Validación exitosa:** sintaxis de todos los módulos verificada; suite de 17 tests automatizados en verde (17/17). - **Segunda ronda de correcciones:** detectados y corregidos 6 bugs adicionales — fuga de memoria, inconsistencia en registro de tokens vía REST, pérdida de sesiones al reconectar, vulnerabilidades en configuración CORS y VAPID. Tests continúan en verde (17/17). ### Rebelocity Club / Tribus RRHH (cliente Angular) - **Optimización de conexión socket:** eliminados intentos duplicados de conexión, robustecida la generación de identificadores de dispositivo, corregida la resolución del usuario en tiempo de conexión para evitar estados indefinidos. - **Limpieza de código:** eliminado código comentado y obsoleto; logs de depuración migrados a sistema condicional para evitar exposición en producción. - **Fugas de suscripción corregidas:** en dos componentes clave, asegurada la limpieza de recursos al destruirse y prevenida acumulación de memoria en navegación constante. - **Robustez de BroadcastChannel:** protegida la inicialización del canal entre pestañas con manejo de errores para navegadores sin soporte; unificadas dos rutas de conexión socket que generaban conexiones paralelas. - **Documentación actualizada** con checklist de progreso; sintaxis de todos los módulos verificada sin errores. ### Masterplaybooks / Rebelocity Club (sesión compartida) - **Sesión cross-platform:** implementada lógica para compartir sesión de usuario entre plataformas (Masterplaybooks y Rebelocity Club); al cerrar sesión en una, se cierra en la otra. ## Decisiones - Limpieza de atributos redundantes aplicada con `sed` para cubrir todas las indentaciones. - Solo se tocó `user.service.ts` (1 getter + 2 métodos). Guards, `general.service.ts` y backend sin cambios. - `cookieDomain` es condicional para no romper desarrollo local. - En Socket Notificaciones: doble ronda de validación (runtime + desconexiones) antes de cerrar el ciclo. ## NEXTs -