Registro consolidado de mejoras incorporadas desde el inicio de la interfaz V2.
- V2.331
Pago de salarios · media clase y profesor efectivoLas clases completadas desde ND App pueden registrar duración completa o media clase y el profesor que efectivamente la dictó. Pago de salarios suma 1,0 o 0,5 unidad por clase y atribuye el importe al profesor efectivo o reemplazante.
- V2.330
Acceso rápido · sesiones durables tras inactividadEl bloqueo de 1 hora deja de revocar el refresh token de la sesión y pasa a bloquear localmente la interfaz. Las cuentas guardadas actualizan su credencial cifrada cuando Supabase rota tokens; si el JWT ya venció, ND renueva la sesión antes del handoff. Cuando existen cuentas guardadas, la pantalla de ingreso incorpora Acceso rápido para volver con PIN sin reescribir la contraseña.
- V2.329
Cambio rápido · handoff instantáneo, aviso con margen y salto de PINEl cambio entre cuentas deja de esperar auth.setSession en primer plano: instala la sesión cifrada ya validada en el storage oficial de Supabase, recarga inmediatamente y revalida Auth/permisos en segundo plano antes de habilitar escrituras. El aviso de acceso correcto suma separación visual y, al completar 4 dígitos, el foco avanza automáticamente a Repetir PIN.
- V2.328
Cambio rápido · cuenta actual protegida y entrada más velozAntes de agregar una segunda cuenta, ND obliga a crear primero el PIN de la sesión actual para que siempre exista un camino de regreso. El cambio conserva un handoff validado de la sesión destino para mostrar el ERP inmediatamente tras recargar mientras Auth y permisos se revalidan en segundo plano. Se elimina el botón Cerrar inferior porque la X superior ya cumple esa función.
- V2.327
Cambio rápido de usuario · PIN uniforme y visible a demandaLos campos PIN adoptan la misma altura que correo y contraseña, permanecen ocultos por defecto y agregan un control de ojo para mostrar u ocultar temporalmente los 4 dígitos. El texto de validación de contraseña se ordena en dos líneas para mantener simetría y lectura clara.
- V2.326
Cambio rápido de usuario · espaciado uniformeLa ventana Cambiar usuario adopta un ritmo vertical uniforme entre sus bloques y elimina el espacio duplicado que aparecía cuando todavía no había cuentas guardadas. El aviso de seguridad se divide en dos líneas para mejorar lectura y jerarquía visual.
- V2.325
Cambio rápido de usuario · apertura inmediataLa ventana Cambiar usuario abre en el mismo clic sin esperar consultas a Supabase. Las cuentas guardadas y la identidad cacheada se renderizan localmente de inmediato; la verificación de sesión se completa en segundo plano. Se elimina la demora de V2.324 provocada por consultar nd_memberships antes de mostrar el modal, sin relajar la validación al guardar o cambiar de cuenta.
- V2.324
Cambio rápido de usuario · PIN por cuentaLa barra lateral incorpora Cambiar usuario con el ícono repeat-2. En equipos de confianza pueden guardarse hasta 5 cuentas, cada una con PIN único de 4 dígitos. La contraseña se usa solamente al agregar una cuenta y no se almacena; el cambio reutiliza una sesión cifrada localmente, verifica que no existan cambios pendientes y reemplaza la sesión real de Supabase antes de recargar, preservando la atribución correcta de cada acción.
- V2.323
Pagos · auditoría financiera desacoplada del diff globalCon el cutover granular de Alumnos activo, paymentAudit conserva su fuente canónica local y la confirmación financiera sigue dependiendo del commit granular de nd_students. La copia de paymentAudit dentro del snapshot global queda como réplica secundaria: sus diferencias ya no pueden disparar Guardando/Reintentando ni impedir la autorrecuperación de una revisión ya confirmada.
- V2.322
Alumnos · fuente granular canónica desacoplada del snapshot globalnd_students queda como única fuente primaria para cambios cotidianos de alumnos y paymentHistory. El snapshot global conserva students solo como réplica secundaria/compatibilidad, pero sus diferencias ya no generan Guardando/Reintentando, conflictos ni regresiones durante hidrataciones cuando el cutover granular está activo. Los metadatos exportedAt y version tampoco disparan escrituras funcionales.
- V2.321
Staff · autorrecuperación de sincronización ambiguaSi un cambio de Staff llegó correctamente a Supabase pero la respuesta del commit se perdió o venció por timeout, ND verifica el registro remoto antes de reintentar. Si ya coincide con la intención local, libera la cola durable y vuelve a Sincronizado, evitando ciclos permanentes de Guardando/Reintentando.
- V2.320
Auditoría · origen WEB/App correcto + márgenes simétricosLa ventana Auditoría adopta el mismo eje lateral en header, cuerpo y footer, sin gutter residual. La atribución de origen prioriza marcadores explícitos de ND App y reconoce usuarios administrativos con identidad Mobile, evitando clasificar como APP un cambio realizado realmente desde WEB.
- V2.319
Hotfix de versión runtime · V2.318 preservadaSe corrige la constante runtime que permanecía anclada en 2.314 y sobrescribía la versión visible después del arranque. El bundle pasa a assets/v2.321 para forzar carga limpia; la Auditoría central y todas las funciones de V2.318 se conservan sin cambios funcionales.
- V2.318
Auditoría central WEB ↔ ND AppAjustes incorpora Auditoría con historial server-side de cambios en Alumnos, Staff, Clases y Comunicaciones. Registra origen WEB/App, usuario, fecha, entidad y campos modificados; incorpora Realtime y preserva como base histórica las acciones Mobile ya existentes antes de activar el módulo.
- V2.317
Comunicaciones · grupos verdes y pendiente alineadoLos envíos grupales se identifican con fondo verde. Mientras existan confirmaciones pendientes conservan borde amarillo y el chip de pendientes queda alineado en la esquina superior derecha, usando la misma referencia visual que el estado Confirmado de los avisos individuales.
- V2.316
Comunicaciones · envío masivo seguro y avisos grupalesLos envíos a más de un profesor exigen una confirmación adicional antes de persistir. En Últimos avisos, cada envío grupal se muestra colapsado como un solo bloque y puede desplegarse para ver el estado individual de cada destinatario; los mensajes enviados a una sola persona conservan su bloque individual.
- V2.315
Sala M 12:30 · capacidad diferenciada por díaLunes y miércoles quedan limitados a 6 cupos y mantienen 8 filas visibles: las dos últimas muestran “Horario no disponible”. Viernes conserva 8 cupos por modalidad circuito. La regla se aplica también a altas/reactivaciones, disponibilidad, Dashboard, Ver clase y validaciones de sobrecupo.
- V2.314
Comunicaciones · ventana simétrica y estándar visualSe corrige el gutter lateral reservado por el contenedor del modal: Nuevo aviso y Últimos avisos quedan alineados con el mismo margen izquierdo y derecho que header y footer. La ventana conserva centrado real y adopta una regla explícita para evitar desbalances laterales en futuros modales equivalentes.
- V2.313
Editar alumno · cupos reales al reactivarAl pasar un alumno de Inactivo a Activo, los horarios usan la misma validación de cupos que Agregar alumno: las clases completas quedan deshabilitadas y marcadas como No disponible. En edición se excluye al propio alumno del cálculo para no bloquear su horario actual, y el guardado vuelve a validar capacidad antes de confirmar.
- V2.312
Comunicaciones Profesor App ↔ WEBNotificaciones incorpora el envío de avisos a profesores con ND App habilitada. Cada aviso puede requerir confirmación; lectura y “Confirmar recibido” vuelven al WEB en tiempo real, con estados Enviado, Leído y Confirmado, auditoría e idempotencia server-side.
- V2.311
Editar alumno · actualización remota inteligenteSi otro dispositivo modifica al alumno mientras su ficha está abierta, ND actualiza el formulario automáticamente cuando no hay cambios locales. Si el usuario ya está editando, conserva intacto su trabajo y muestra un aviso para cargar los datos más recientes de forma explícita, evitando sobrescrituras silenciosas.
- V2.310
Ver clase · subtítulo "Alumno libre" en lila + versión visible corregidaEn Ver clase, el subtítulo "Alumno libre" ahora también se muestra en lila intenso, negrita y cursiva, alineado con el nombre del alumno. Además, la versión visible del sistema vuelve a reflejar correctamente la actualización actual en el footer.
- V2.309
Alumnos libres · Lila intenso, negrita y cursivaCalendario y Ver clase refuerzan la identificación visual de Alumno libre: el nombre se muestra en un lila más intenso, negrita y cursiva, incluyendo lugares liberados por ausencia o vacaciones. El cambio es exclusivamente visual y no modifica asistencia, cupos, reservas ni sincronización.
- V2.308
Ver clase · Alumnos libres en lilaLa identificación visual de Alumno libre ahora se replica dentro de Ver clase: el nombre se muestra en lila y negrita con la misma paleta del Calendario, sin modificar asistencia, cupos, reservas ni sincronización.
- V2.307
Calendario · Alumnos libres en lilaLos alumnos marcados como Alumno libre se identifican visualmente en lila y negrita dentro del Calendario, incluyendo cuando ocupan un lugar liberado por ausencia o vacaciones, sin modificar asistencia, cupos ni sincronización.
- V2.306
ND Sync Integrity V1 · Etapa 2B.6 · Alumnos externos comprimidosLa lista completa de alumnos se conserva en un archivo local comprimido separado y el shell principal deja students vacío. Al cargar, exportar, sincronizar o guardar, los 368 alumnos se reconstruyen transparentemente antes de cualquier operación; el archivo comprimido se confirma antes de reducir el shell y nunca se poda como caché. Esta versión se prepara para despliegue después de validar V2.305 en el segundo entorno real.
- V2.305
ND Sync Integrity V1 · Etapa 2B.5 · Auditoría financiera canónicaLa auditoría financiera local se unifica por eventId en una sola fuente canónica, preservando eventos históricos exclusivos y la procedencia más específica. El shell de legacy_db deja de duplicar paymentAudit y lo reconstruye transparentemente para backups y sincronización.
- V2.304
ND Sync Integrity V1 · Etapa 2B.4 · Storage histórico seguroLos bookings anteriores al día actual se preservan completos en un archivo comprimido separado, verificado antes de reducir el shell local. La base se reconstruye de forma transparente para Calendario, métricas, salarios, backups y sincronización; los commits globales vuelven a incluir la historia completa. La migración es idempotente y nunca elimina clases históricas.
- V2.303
ND Sync Integrity V1 · Etapa 2B.3 · Confirmación financiera granularLos cambios de Pagos y Cobranzas conservan su marcador crítico hasta que Supabase confirme el commit granular del alumno por operation_id. El snapshot global queda como réplica secundaria y ya no puede cerrar prematuramente un pago pendiente. El marcador financiero también se refleja en IndexedDB y se reconcilia al volver a abrir la sesión.
- V2.302
ND Sync Integrity V1 · Etapa 2B.2 · REVIEW durable + IndexedDBLos conflictos reales de Alumnos, Staff y Clases ya no salen de la cola primaria hasta quedar protegidos también como REVIEW. Cada revisión se conserva en localStorage, se refleja en IndexedDB y se registra en Supabase; al volver a iniciar sesión ND recupera las revisiones centrales del usuario. “Sincronizado” queda bloqueado mientras exista cualquier REVIEW pendiente.
- V2.301
ND Sync Integrity V1 · Etapa 2B.1 · Session Truth + Authenticated Read GuardLa interfaz Web ya no puede permanecer operativa con una sesión Supabase inexistente cuando hay conexión. Las lecturas canónicas críticas verifican sesión real, renuevan el token y realizan un único reintento controlado ante 401/42501; si Auth no puede recuperarse, ND bloquea la sesión visual en vez de hidratar datos incompletos o continuar con identidad fantasma.
- V2.300
ND Sync Integrity V1 · Etapa 1 · Auth Guard de escrituras críticasAlumnos, Staff, Clases, Asistencia, Recuperaciones y el commit global validan una sesión Supabase utilizable y el contrato del backend antes de escribir. Errores de autorización o infraestructura ya no se consideran cambios perdidos ni errores terminales: la operación permanece protegida, se reintenta y se registra para diagnóstico. “Sincronizado” exige contrato válido y ausencia de pendientes.
- V2.298
Listado de profesores · footer uniformeSe elimina el espacio vertical residual dejado por el antiguo aviso de Sala F y se igualan el alto y padding del footer con el Listado de alumnos.
- V2.297
Profesores · Sala F activaSe retira del Listado de profesores el aviso transitorio de captación de Sala F. La sala ya opera con alumnos, profesores y clases vinculadas.
- V2.296
Listado de profesores · formato compactoSe reduce el ancho general de la ventana y el aire horizontal entre columnas, manteniendo visibles C.I., fechas y la acción Editar sin scroll horizontal innecesario.
- V2.295
Listado de profesores · acción Editar restauradaSe corrige la distribución de la tabla luego de incorporar la columna C.I. La columna Acción vuelve a permanecer visible y el botón Editar permite ingresar directamente a la ficha del profesor sin desbordar la ventana.
- V2.294
C.I. canónica · alumnos y profesoresStaff adopta C.I. como dato canónico, conserva document sólo por compatibilidad y muestra la C.I. en el listado de profesores. Los campos de C.I. de Alumnos y Profesores usan formato paraguayo con separador de miles (ej.: 4.061.966) sin alterar la identidad numérica utilizada por autenticación.
- V2.293
Accesos por perfil · vista ProfesorLos perfiles Profesor dejan de visualizar y acceder a Dashboard, Recordatorios, Métricas, Cobranzas y Pago de salarios. Owner/Admin mantienen acceso completo; Débora Fernández y Analau conservan acceso institucional total. El control se aplica tanto al menú como a la navegación interna y un perfil restringido inicia directamente en Calendario.
- V2.292
Consolidación de arquitectura · rendimiento y UXSe unificó el runtime Web en una sola versión canónica por módulo, eliminando del grafo activo generaciones duplicadas de Calendar, Classes, Startup, Session Sync y Class Granular. Las clases usan cache granular autoritativo separado del snapshot global, evitando el flash de datos antiguos y el cartel “Actualizando clases…”. El watchdog de respaldo baja de ~1 consulta/segundo a una verificación liviana cada 30 segundos, manteniendo Realtime como vía principal. El login incorpora aceptación de Términos, Política de Privacidad y acceso al procedimiento de eliminación de datos.
- V2.291
App ↔ Web · clases en tiempo realLa Web conserva toda la base visual V2.284 y agrega una reconciliación server-side de clases para reflejar reservas y ausencias hechas desde ND App.
- V2.284
Historial de planes y pagos preservadosND incorpora historial server-side por período para conservar plan, modalidad, fecha de inicio y actividad anterior. Ver pagos deja de ocultar cuotas históricas cuando cambia la fecha vigente y Editar alumno agrega Historial junto a Ver pagos para consultar períodos pasados y actual, pagos completos y clases registradas sin reinterpretar el pasado con el plan vigente.
- V2.283
Historial legacy externalizado y comprimidoEl historial append-only deja de ocupar más de 1,5 MiB dentro de nd_v2_legacy_db. ND lo conserva completo en un archivo local separado y comprimido, lo recompone de forma transparente para backups y sincronización online y reduce fuertemente la presión de localStorage sin borrar bookings, alumnos ni auditoría histórica. La migración es automática y verifica la escritura antes de retirar el historial embebido.
- V2.282
Reactivación segura de infraestructura reparadaLas clases protegidas por el error histórico relation public.nd_classes does not exist vuelven a la cola activa mediante handoff durable y se reconcilian contra Supabase ahora que V2.279 completó la infraestructura. La reserva local pasa a ser adaptativa: bajo presión alta se libera en vez de ocupar espacio y solo se reconstruye cuando existe margen real.
- V2.281
Blindaje de almacenamiento y colas durablesLas colas críticas de Alumnos, Staff y Clases verifican físicamente cada escritura local y nunca eliminan una operación hasta confirmar su siguiente ubicación durable. Ante cuota local alta, ND consume una reserva de seguridad y libera únicamente cachés reconstruibles; si aun así no puede proteger el cambio, muestra Almacenamiento crítico, impide un falso Sincronizado y advierte al cerrar. También se eliminan límites silenciosos de colas legacy y se compactan cambios sucesivos por entidad cuando es seguro.
- V2.280
Rescate validado de 55 clases de EdgeSe recuperaron desde el respaldo local las 55 clases afectadas por la infraestructura granular incompleta, preservando el estado final de cada clase y evitando recalcular recuperaciones de alumnos durante el rescate. La validación server-side confirmó coincidencia exacta de las 55 clases restauradas.
- V2.279
Infraestructura granular de Clases reparadaSupabase queda con nd_classes, nd_class_commits, nd_recovery_commits y la RPC atómica de asistencia disponibles en conjunto, corrigiendo la instalación parcial que podía dejar operaciones de clases sin destino granular válido.
- V2.278
Rescate controlado de clases en revisiónDespués de reparar la RPC de asistencia en Supabase, ND detecta automáticamente las clases que habían quedado protegidas exclusivamente por el error de función ausente, las devuelve a la cola activa sin borrarlas, reinicia sus intentos antiguos y las reconcilia una por una contra el estado remoto vigente. Las revisiones por conflictos reales permanecen aisladas y no se fuerzan.
- V2.277
Cola de asistencia · cierre terminal de conflictosLas clases que agotan la reconciliación o devuelven una confirmación inconsistente dejan de rotar indefinidamente entre Reintentando y Sincronizando. ND las conserva completas en una cola durable de revisión, continúa sincronizando las demás clases y muestra Revisión pendiente únicamente cuando corresponde intervención. También se reconocen errores permanentes de RPC/schema cache para evitar bucles infinitos.
- V2.276
Rescate de cola de asistencia · sin bloqueo por una claseLas operaciones pendientes de una misma clase se compactan de forma semántica conservando la base más antigua y el estado final más reciente; ninguna cola se trunca silenciosamente en 100. Una clase con error transitorio cede el turno para que otras clases puedan sincronizarse y un error permanente se conserva íntegramente en una cola durable de revisión en vez de bloquear todas las operaciones posteriores. La hidratación conserva también esas clases protegidas y el diagnóstico de integridad expone pendientes y revisiones requeridas.
- V2.275
Auditoría integral de sincronización · blindaje contra pérdida en recargasCtrl+F5 y las hidrataciones remotas ya no pueden pisar silenciosamente operaciones granulares pendientes: ND detecta todas las colas durables, conserva su intención local sobre la revisión remota hasta confirmar Supabase, advierte al cerrar si existe cualquier operación pendiente, impide mostrar Sincronizado mientras queden colas por drenar, prioriza la migración atómica de clases antes de workers legacy y protege Realtime de Alumnos/Staff/Clases contra sobrescrituras de registros pendientes. Pagos y Cobranzas se espejan además en la escritura granular del alumno sin eliminar su respaldo financiero crítico.
- V2.274
Estados de clase atómicos y auditablesGuardar clase confirma como una sola unidad todos los estados operativos: Presente, Ausente, Ausente justificado, Cancelado, Completada, profesor/reemplazo, observaciones y recuperaciones. Las colas antiguas de clases se migran a la cola atómica y dejan de reescribir estados previos. Cada commit conserva en Supabase el snapshot exacto confirmado para auditoría y verificación.
- V2.273
Asistencia atómica · clase + recuperacionesGuardar asistencia, ausencias justificadas y recuperaciones se confirma ahora en una sola transacción de Supabase. La clase y el saldo de recuperaciones ya no usan dos colas independientes: o se confirman juntos o no se confirma ninguno, eliminando estados prolongados de Reintentando y discrepancias parciales. V2.274 también drena de forma compatible cualquier ajuste pendiente heredado de V2.272.
- V2.272
Ausencias y recuperaciones · sincronización granularGuardar asistencia, ausencia o ausencia justificada se confirma por clase granular sin reescribir el snapshot general. Los créditos de recuperación se aplican como deltas atómicos e idempotentes sobre el alumno, por lo que agendar/cancelar recuperaciones y otorgar/descontar créditos pueden reintentarse sin duplicar movimientos. Dos clases distintas pueden modificar recuperaciones del mismo alumno sin perder actualizaciones, y el flujo visible conserva Guardando → Guardado → Sincronizando → Sincronizado.
- V2.271
Clases / Reservas / Cupos · persistencia granular primaria Fase 1Las ediciones cotidianas de una clase dejan de reescribir el snapshot completo del ERP y se confirman por clase independiente en Supabase. Clases distintas pueden sincronizarse en paralelo; una misma clase usa versionado optimista y merge semántico de asistentes, mientras el servidor valida el cupo antes de confirmar para impedir sobrecupos silenciosos. Realtime distribuye la clase confirmada a las demás sesiones y los ajustes de recuperaciones mantienen temporalmente un commit transversal hasta completar su migración granular.
- V2.270
Staff/Profesores · escritura granular primariaAltas, ediciones y bajas de profesores dejan de reescribir el snapshot global y pasan a una entidad independiente versionada en Supabase. Cambios sobre profesores distintos pueden confirmarse en paralelo, Realtime distribuye las actualizaciones a otras sesiones y el mismo profesor utiliza control optimista de versión para impedir sobrescrituras silenciosas. El flujo visual conserva Guardando → Guardado → Sincronizando → Sincronizado y los reintentos transitorios no bloquean la interfaz.
- V2.269
Alumnos · escritura granular primariaLas altas, ediciones y bajas de alumnos dejan de depender del snapshot global para su confirmación diaria. Cada cambio se protege localmente, se escribe como entidad independiente en nd_students y se distribuye a las demás sesiones mediante Realtime. El flujo visible pasa por Guardando, Guardado, Sincronizando y Sincronizado; Reintentando queda reservado a demoras transitorias y el rojo únicamente a errores persistentes o conflictos reales.
- V2.267
Arranque instantáneo sin Dashboard vacíoCuando existe una copia local validada, Sistema ND la aplica y renderiza completamente antes de revelar la interfaz autenticada. F5/Ctrl+F5 ya no muestra temporalmente métricas en cero, tarjetas vacías ni identidad incompleta; Supabase confirma y reconcilia la revisión en segundo plano sin bloquear el ERP.
- V2.266
Arranque no bloqueante · recuperación online en segundo planoUna recarga con copia local válida y sesión recordada ya no mantiene todo el ERP oculto mientras Supabase resuelve operaciones pendientes o verifica la revisión online. Sistema ND abre inmediatamente la interfaz local validada, mantiene las escrituras protegidas como pre-sync y reconcilia la conexión en segundo plano hasta terminar en Sincronizado. Se evita quedar detenido en “Cargando Sistema ND…” por una recuperación online demorada.
- V2.265
Estabilización de sincronización · rollback controladoSe retiran los cambios funcionales experimentales de V2.264 que alteraban el motor principal de sincronización y se restaura el flujo de commits validado en V2.262/V2.263. Se conserva intacto el cutover granular de Alumnos y toda la protección transaccional previa. Los reintentos transitorios pueden mostrarse como Reintentando, sin modificar locks, sesión, orden de commits ni reconciliación.
- V2.263
Alumnos granulares · cutover controlado de lecturaEl módulo Alumnos puede adoptar nd_students como fuente primaria de lectura únicamente después de una verificación automática de integridad contra el snapshot vigente. Si falta, sobra o difiere un solo registro, el ERP conserva el snapshot como fallback y reintenta sin bloquear al usuario. La escritura mantiene temporalmente dual-write: snapshot transaccional validado + réplica granular auditable, permitiendo una migración reversible y sin riesgo para producción.
- V2.262
Sincronización rápida + alumnos granulares shadowSe optimiza el camino crítico de guardado sin reducir integridad: la sesión autenticada válida se reutiliza desde memoria en vez de releerse en cada operación, el debounce operativo baja a 100 ms, los reintentos y backoff de concurrencia se acortan y se registra telemetría local de latencia para diagnóstico. Mantiene íntegra la Fase Shadow de alumnos de V2.261 y su SQL, que continúa sin bloquear la sincronización principal.
- V2.261
Alumnos granulares · Fase shadow seguraSe incorpora una segunda persistencia granular por alumno en Supabase, con versionado, auditoría, soft-delete y cola durable. El snapshot transaccional V2.260 continúa como fuente operativa durante esta fase; la capa granular replica únicamente generaciones ya confirmadas, por lo que no altera la UX ni puede reemplazar datos aún pendientes. Los alumnos existentes se copian una sola vez mediante bootstrap idempotente y las altas nuevas reciben identificadores UUID estables.
- V2.260
Confirmación terminal por delta localCuando otra sesión gana una carrera de concurrencia, ND comprueba si la revisión vigente de Supabase ya contiene todos los cambios funcionales realizados localmente respecto de la base conocida. Si los contiene, adopta esa revisión como confirmada y finaliza en Sincronizado sin reescribir el snapshot, evitando bucles asimétricos donde un navegador ya convergió y otro continúa combinando o reintentando.
- V2.259
Convergencia canónica multiusuarioND compara ahora los estados mediante serialización estable y no por el orden interno de las propiedades JSON. Dos clientes con el mismo contenido real se reconocen como convergentes aunque sus objetos tengan distinto orden de claves; la huella idempotente usa la misma representación canónica. Esto elimina revisiones redundantes y corta el ciclo Combinando/Reintentando provocado por falsos cambios estructurales.
- V2.258
Convergencia multiusuario sin ping-pongCuando dos clientes ya convergieron al mismo estado después de una edición concurrente, ND detecta que el merge resultante es idéntico a la revisión remota y deja de crear revisiones redundantes. La revisión existente se adopta como confirmada y el estado termina en Sincronizado, evitando bucles Combinando/Reintentando entre navegadores.
- V2.257
Idempotencia por payload y revisiónLa clave transaccional deja de representar toda una generación y pasa a identificar exactamente cliente, generación, revisión base y huella del estado enviado. Un reintento idéntico conserva la misma clave, mientras que una combinación por concurrencia genera una clave nueva y válida. Realtime también anticipa la combinación cuando detecta una revisión superior antes del envío, reduciendo colisiones y evitando bucles de Guardando/Reintentando en altas nuevas concurrentes.
- V2.256
Sincronización acotada y autorrecuperableNingún guardado online puede permanecer indefinidamente en Guardando: el RPC usa ahora un timeout duro independiente de AbortSignal, la lectura de sesión también está acotada, los locks ocupados muestran Reintentando y el watchdog de pendientes queda realmente activado. Los reintentos conservan el mismo ID transaccional para evitar duplicados y los datos permanecen protegidos localmente hasta la confirmación de Supabase.
- V2.255
Hotfix de versionado y cache-bustingSe corrige la versión interna del motor de sincronización, que en V2.254 permanecía erróneamente identificada como 2.253 y sobrescribía la etiqueta visible después del arranque. Los recursos pasan a assets/v2.255 para forzar una carga limpia y evitar reutilizar archivos JS cacheados de la versión anterior. La lógica de concurrencia y reintentos de V2.254 se conserva sin cambios funcionales.
- V2.254
Concurrencia autorrecuperable · reintentos no bloqueantesLos conflictos normales entre operadores y las demoras transitorias de red/RPC ya no alimentan el circuit breaker de averías. ND distingue concurrencia, transitorios y errores fatales; reintenta con jitter para evitar colisiones sincronizadas, mantiene el cambio protegido y reserva Error de sincronización para fallos persistentes reales. Se amplían los reintentos de combinación y se registra localmente el último diagnóstico técnico sin frenar la operación.
- V2.253
Concurrencia semántica de clases · Fase 2ACuando dos usuarios modifican simultáneamente la misma clase, ND combina asistentes por identidad en lugar de reemplazar la clase completa. Altas independientes se conservan si existe capacidad. Si dos usuarios compiten por el último cupo, prevalece la revisión ya confirmada por Supabase; la segunda reserva no se confirma, queda registrada localmente para auditoría y el usuario recibe un aviso explícito. Se evita la pérdida silenciosa de asistentes durante la combinación multiusuario.
- V2.252
Hotfix de arranque · módulo de sincronizaciónSe corrige una declaración estructural inválida del watchdog de autorrecuperación que impedía al navegador parsear session-sync.js y dejaba el sistema detenido en Cargando Sistema ND. El watchdog se inicializa ahora después de preparar el runtime, conservando los reintentos automáticos, la cola durable y la resolución de concurrencia de V2.251.
- V2.251
Concurrencia autorrecuperable · sin F5La sincronización multiusuario incorpora reintentos rápidos y automáticos, resolución de hasta cuatro conflictos consecutivos de revisión y un watchdog que reactiva operaciones pendientes sin depender de recargar la página. Si el usuario continúa trabajando mientras se resuelve una concurrencia, los cambios posteriores se rebasan sobre la revisión confirmada para impedir que una hidratación antigua los sobrescriba. Los fallos transitorios muestran Reintentando y solo escalan después de varios errores consecutivos, manteniendo siempre la cola local durable.
- V2.250
Persistencia transaccional multiusuario · Fase 1Los commits online pasan por nd_commit_state_v2250: cada generación utiliza un identificador estable por navegador y queda registrada en Supabase de forma idempotente. Si la respuesta de un commit confirmado se pierde o expira, el reintento reutiliza la misma operación y recupera la revisión ya guardada en vez de duplicar la escritura. La bitácora del servidor y el guardado versionado se ejecutan dentro de una única transacción PostgreSQL, manteniendo intacto el flujo no bloqueante de la interfaz.
- V2.249
Toast · una línea y borde verde NDLas notificaciones toast reutilizan el verde oficial del tema ND en el borde y ajustan su ancho al contenido para mantenerse en una sola línea, sin saltos. En pantallas angostas conservan el límite del viewport y usan truncado seguro para evitar desbordamientos, sin modificar la lógica de sincronización ni persistencia.
- V2.248
Sincronización no bloqueante · operación continuaLas altas y ediciones diarias de Calendario, Alumnos, Staff, Salas y Planes ya no mantienen la ventana abierta mientras Supabase responde. El cambio se protege primero en almacenamiento local durable, se registra como operación pendiente y se envía a Supabase inmediatamente en segundo plano, sin debounce. La ventana se cierra al instante y el usuario puede continuar trabajando; el indicador global distingue Guardando, Sincronizado, Pendiente, Sin conexión y Error. Importaciones y reversiones de backup continúan esperando confirmación por tratarse de operaciones masivas excepcionales. Pagos y Cobranzas mantienen su circuito crítico especializado.
- V2.247
Blindaje de persistencia · guardado confirmado por servidorLas acciones explícitas de Calendario, Alumnos, Staff, Salas y Planes fuerzan sincronización inmediata y solo se presentan como sincronizadas cuando Supabase confirma una revisión. Mientras se procesa, el botón queda temporalmente en Sincronizando. Si falla Internet o el servidor, el dato permanece protegido localmente y el sistema informa Pendiente sin afirmar falsamente que quedó online. Se incorpora un diario local de operaciones pendientes/confirmadas, reintentos rápidos, Realtime más inmediato y se elimina el guardado genérico de formularios que podía mostrar Datos guardados sin persistencia real. Pagos y Cobranzas conservan además su circuito crítico especializado.
- V2.246
Integridad universal de guardado onlineLos cambios operativos dejan de esperar 3,5 segundos y se envían a Supabase prácticamente de inmediato. El sistema mantiene el marcador pendiente mientras existan cambios posteriores a una escritura en curso, advierte antes de recargar o cerrar con datos sin confirmar y recupera cambios locales pendientes combinándolos con revisiones remotas más nuevas en vez de descartarlos. Calendario, Alumnos, Staff, Salas, Planes y demás datos persistentes reutilizan esta protección; Pagos y Cobranzas conservan además su mecanismo crítico especializado.
- V2.245
Editar sala · eje derecho exacto en Sala FEn Sala F, cuando la ventana Editar sala no necesita scroll vertical, el ancho útil completo del contenido termina exactamente donde termina la columna de la papelera. Selectores, listado, botón Agregar horario y acciones del footer respetan ahora ese mismo eje derecho, recuperando un margen visual idéntico al del lado izquierdo. Si el listado llegara a desbordar, el sistema vuelve a expandir el carril de scroll sin cortar controles.
- V2.244
Editar sala · margen derecho uniforme en Sala FLa ventana Editar sala ahora detecta si realmente necesita scroll interno. Cuando Sala F no desborda, deja de reservar carril para scrollbar y alinea nuevamente la papelera, el botón Agregar horario y las acciones del footer sobre el mismo eje derecho útil, manteniendo la estética y los márgenes simétricos. Si en el futuro el listado sí desborda, el carril del scroll se reintroduce automáticamente sin tapar controles.
- V2.243
Editar sala · ancho corregido para sábadoLa ventana Editar sala amplía únicamente su ancho útil al trabajar con Sala F para alojar la columna Sábado y la papelera completa, conservando la misma retícula, tamaños de controles y márgenes laterales. Salas M y K mantienen exactamente el ancho anterior.
- V2.242
Clases de sábado en Sala FSala F incorpora sábado como día operativo exclusivamente a las 10:00 y 11:00. El Calendario agrega la columna Sábado solo cuando la sala seleccionada tiene actividad ese día; Salas M y K conservan su vista de lunes a viernes. Los nuevos horarios también quedan disponibles para asignación de alumnos, profesores, cupos disponibles, Ver clase y Dashboard, respetando la capacidad configurada de cada horario.
- V2.241
Persistencia de sala y sexta fila visible en Sala FAl recargar con F5 o Ctrl+F5, el sistema conserva la sección principal y la sala activa del navegador cuando la sesión continúa vigente. Sala F mantiene 5 cupos por defecto, pero el Calendario muestra una sexta fila estructural desactivada con “Cupo no disponible”, evitando el hueco visual. Si el cupo baja por debajo de 5, las filas excedentes también permanecen visibles y desactivadas hasta completar las 6 posiciones estructurales.
- V2.240
Filas estructurales de cupo en Salas M y KEditar sala iguala la tipografía de Horario 1, Horario 2 y sucesivos al tamaño de los demás textos de la ventana. En el Calendario, Sala M y Sala K conservan siempre sus 6 filas estructurales cuando un horario se configura con menos de 6 cupos: las posiciones excedentes permanecen visibles, desactivadas y muestran “Cupo no disponible”. Ningún alumno existente se elimina ni se oculta al reducir capacidad; si queda un sobrecupo previo, continúa visible hasta liberarse.
- V2.239
Cupos configurables por horario en Editar salaCada fila se identifica como Horario 1, Horario 2 y sucesivos, e incorpora un campo compacto de cupos de un solo dígito. La capacidad se guarda por sala y horario, admite valores del 1 al 9 y se aplica al Calendario, Ver clase, altas, disponibilidad, Dashboard y validación de sobrecupos. Los horarios existentes conservan automáticamente la capacidad anterior como valor inicial: 6 en Sala M/K y 5 en Sala F.
- V2.238
Casillas visibles en Alumnos libresLas clases pendientes muestran sus recuadros con borde verde para mejorar la lectura mensual. Las clases tomadas conservan el relleno verde y la fecha en verde, manteniendo una diferencia inmediata entre disponibilidad y asistencia contabilizada. No cambian conteos, fechas ni dimensiones.
- V2.237
Header uniforme sin cambios visuales adicionalesSe conserva únicamente la altura común de 30 px en los controles del header principal. Sala M/K/F, borrar filtros, buscador, conexión y Agregar alumno recuperan íntegramente sus colores, fondos, bordes y estados hover originales. Las ventanas continúan sin recibir esta regla.
- V2.236
Header principal uniforme y verdeLa altura de 30 px queda limitada exclusivamente a Sala M, Sala K, Sala F, borrar filtros, buscador, conexión y Agregar alumno. Todos reciben borde y base verde para mejorar su visibilidad. Los encabezados, filtros, dropdowns y cierres X de las ventanas recuperan sus dimensiones anteriores.
- V2.235
Altura universal de controles en encabezadosBuscadores, filtros, selectores, chips de conexión, botones de acción y cierres X utilizan 30 px de alto, tomando como referencia Sala M, Sala K, Sala F y borrar filtros. La regla se aplica globalmente a los encabezados actuales y futuros sin alterar anchos, funciones ni controles internos de las tablas.
- V2.234
Columnas proporcionadas en CobranzasLa tabla redistribuye Nombre, Celular, Fecha de ingreso, Cuotas vencidas y Acción mediante una retícula cerrada de 24%, 18%, 18%, 25% y 15%. Se elimina el hueco excesivo anterior, se iguala el padding horizontal y se evita el desplazamiento lateral en escritorio, sin modificar pagos, filtros, ordenamiento ni paginación.
- V2.233
Editar alumno bajo contrato universal de ventanasEl buscador y el recuadro de resultados de Editar alumno compensan el carril vertical y terminan sobre el mismo eje que X y Cerrar, manteniendo márgenes laterales idénticos. Se incorpora el componente obligatorio nd-standard-modal-card para que toda ventana nueva herede márgenes, scrollbar, responsive y ejes consistentes; Esc y la persistencia de submenús continúan resueltos globalmente.
- V2.232
Ejes finales y submenús persistentesEn Alumnos libres, X y Cerrar vuelven al eje derecho exacto del recuadro interno, mientras los márgenes de Editar alumno permanecen intactos. En todo el Sistema ND, abrir o cerrar una ventana mediante Esc, X, Cerrar, Cancelar o Guardar conserva desplegado el submenú de origen; solo una acción explícita de navegación puede plegarlo.
- V2.231
Márgenes matemáticos en Alumnos libresLa tabla compensa completamente los 16 px del carril vertical sin alterar el borde izquierdo. Clases tomadas termina sin padding sobrante y Acción reserva exactamente 16 px antes y después de Editar alumno. El borde útil derecho coincide con el margen izquierdo, mientras X y Cerrar conservan el mismo eje.
- V2.230
Simetría integral y catálogos de planes separadosAlumnos libres compensa el carril técnico de desplazamiento y adopta un mismo eje visual de 36 px para título, Activo, Editar alumno, X y Cerrar. El botón de acción conserva 16 px dentro de la tabla. Planes semanales y Planes personalizados pasan a submenús y ventanas independientes, ambas construidas con el componente estándar del Manual de Diseño.
- V2.229
Eje derecho alineado con AcciónEn Alumnos libres, Activo comienza a 16 px del borde izquierdo y Editar alumno termina a 16 px del borde derecho. La X y Cerrar finalizan sobre el mismo eje derecho del botón de acción, sin modificar las casillas de clases ni reintroducir desplazamiento horizontal.
- V2.228
Tabla sin desplazamiento y selectores legiblesAlumnos libres elimina el desbordamiento horizontal de escritorio y fuerza la tabla a respetar el ancho útil entre márgenes simétricos. El selector de mes amplía su campo para mostrar nombres completos y define colores nativos legibles tanto en modo claro como oscuro.
- V2.227
Filtros separados y geometría exactaAlumnos libres incorpora desplegables independientes para año y mes. El historial comienza en 2026 y el año siguiente aparece únicamente durante diciembre. La tabla usa dimensiones compatibles entre navegadores, termina exactamente después de Acción y conserva márgenes laterales simétricos sin barra horizontal cuando entran hasta 12 clases.
- V2.226
Filtro mensual desplegable y geometría simétricaAlumnos libres reemplaza el selector mensual del navegador por un desplegable de mes y año. La ventana calcula su ancho según la mayor cantidad de casillas visible, termina junto al último recuadro necesario y mantiene el mismo margen lateral en encabezado, contenido y pie. X y Cerrar comparten el eje derecho.
- V2.225
Seguimiento mensual de alumnos libresAlumnos incorpora Listado y Alumnos libres. La nueva ventana muestra únicamente alumnos libres activos, filtro mensual, plan, celular, recuperaciones y casillas de clases tomadas. Una casilla se completa exclusivamente por una asistencia guardada como Presente y agendada como Alumno libre. Los cupos mensuales son 4, 8, 12, 16 o 20 según el plan. Staff → Profesores pasa a Listado y los títulos se actualizan a Listado de alumnos y Listado de profesores.
- V2.224
Buscador del calendario reparadoLa búsqueda ya no se interrumpe cuando hay horarios no disponibles. Conserva el filtro por sala y el resaltado de nombres, sin modificar cupos ni reservas.
- V2.223
Atajo desde horarios no disponiblesSala no habilitada es un botón rojo sin opacidad reducida que abre Editar sala en la sala correspondiente. Las filas permanecen apagadas. Abrir el editor no habilita horarios ni modifica datos; se requiere Guardar cambios.
- V2.222
Textos de horarios no disponiblesLas filas informativas muestran Horario no disponible en negrita y cursiva. El chip inferior muestra Sala no habilitada, con borde y texto rojos, en negrita y una sola línea. Sin cambios en cupos, reservas ni cierre de ventanas.
- V2.221
Ventanas protegidas y sala no habilitada legibleEl clic exterior ya no cierra ventanas, incluidos Pagos, Cobranzas y Salarios. Se conservan Escape y botones explícitos. Sala no habilitada usa negrita y el chip inferior tiene ancho automático, centrado y una sola línea. Sin cambios en cupos ni datos.
- V2.220
Cupos operativos sin horarios no habilitadosEl resumen diario del calendario excluye bloques no habilitados y suma la ocupación real de cada clase, considerando ausencias y reservas. Los cupos libres se calculan por clase, sin compensar sobrecupos con vacantes de otro horario. Los horarios rojos continúan fuera de los selectores de inscripción y de la disponibilidad.
- V2.219
Horarios visibles como sala no habilitadaClic derecho en un día desmarcado de Editar sala permite mostrarlo rojo. El calendario muestra el bloque apagado, sin reservas, con Sala no habilitada en cada fila. Guardar aplica y Cancelar descarta. Un segundo clic derecho vuelve a ocultarlo; clic izquierdo lo habilita.
- V2.218
Ausencias de alumnos fijos sin rojoCalendario y Ver clase muestran alumnos fijos ausentes en negrita y tachado, con color neutro y sin fondo rojo. El aviso → Ausente también es neutro. Las recuperaciones conservan el rojo y las pruebas el azul; justificado continúa amarillo. Sin cambios en asistencia, cupos ni créditos.
- V2.217
Arquitectura modular y limpieza de redundanciasHTML, CSS, imagen y JavaScript externos. Lógica separada por responsabilidades, estado compartido explícito y orden de inicio preservado. Limpieza conservadora de CSS duplicado y estado sin lecturas. Versión técnica y visible unificadas. Texto de Liberar alumnos reorganizado, con aviso en negrita y cursiva. Los archivos se sirven por HTTP/HTTPS y requieren subir la carpeta assets completa.
- V2.216
Márgenes equilibrados en los horariosSe redistribuye el espacio entre ambos lados del desplegable: más separación a la izquierda y menor reserva a la derecha. Horario 1 y Horario 2 comparten la misma alineación. Se conservan las dimensiones de las salas y las reglas de disponibilidad.
- V2.215
Espacio derecho en los horarios desplegablesSe agrega espacio al final de las opciones para separar “No disponible” y “Liberar lugar” del borde derecho del desplegable nativo. Sin modificar dimensiones de tarjetas, horarios guardados ni reglas de cupo.
- V2.214
Cupos protegidos para nuevas inscripcionesHorarios completos desactivados y horarios que requieren liberar recuperaciones en rojo. Se revisan todas las reservas futuras desde el ingreso, sin límite de semanas. Liberaciones confirmadas junto con el alta, sin consumir crédito y con historial. Guardar clase bloquea sobrecupos sin recortar alumnos automáticamente.
- V2.213
Aviso de ausencia junto al horario fijoEn Ver clase, los alumnos de horario fijo marcados Ausente o Ausente justificado muestran “Horario fijo → Ausente”. Solo la palabra Ausente aparece en rojo; la flecha conserva el color del tipo. El aviso responde a cambios individuales y masivos.
- V2.212
Versión visible unificada y nombres por estado en Ver claseBarra lateral, título y pie del calendario vinculados a la versión central. Nombres ausentes en rojo tachado, recuperaciones en rojo, pruebas en azul y cursiva, y horarios fijos o presentes en negrita. El estilo responde al selector y a las acciones masivas sin alterar la etiqueta de tipo.
- V2.211
Tipo de alumno visible en Ver claseDebajo de cada nombre, Horario fijo se muestra en negrita, Recuperación en rojo y negrita, y Clase de prueba en azul, negrita y cursiva. Se conserva el asterisco de recuperación y no se modifican estados ni datos.
- V2.210
Colores del calendario y guía de lecturaRecuperaciones en rojo sin tachado, alumnos fijos en negro en tema claro, pruebas en azul y ausencias en rojo tachado. Etiqueta amarilla justificado y nueva sección Calendario: colores en el Manual de Uso. Se conservan las reglas de asistencia, cupos y recuperaciones.
- V2.209
Recuperación automática de cuota localSi el navegador alcanza su límite de almacenamiento durante la hidratación, el sistema libera únicamente respaldos reconstruibles y reintenta guardar la base principal. Se preservan los pagos críticos pendientes y se evita bloquear el ingreso con QuotaExceededError.
- V2.208
Fecha de ingreso como inicio real de clasesLa fecha de ingreso pasa a ser el primer día operativo del alumno. El Calendario, Ver clase, la ocupación y los cupos excluyen automáticamente al alumno de cualquier fecha anterior, aunque sus días y horarios semanales ya estén asignados.
- V2.207
Horarios canónicos sin reaparicionesEl legajo utiliza exclusivamente el horario moderno cuando está disponible. Los campos heredados se consultan solo como respaldo para registros antiguos, evitando que un horario eliminado vuelva a aparecer o que un plan de dos clases se reconstruya incorrectamente con tres.
- V2.206
Centrado óptico real de ObligatorioLos badges Obligatorio de los puntos 1, 3 y 4 —junto con Opcional e Informativo— dejan de depender del padding tipográfico variable. Utilizan 22 px de alto, línea controlada y compensación óptica de 1 px para centrar el texto de forma consistente.
- V2.205
Textos compactos perfectamente centrados“Completá manualmente” queda centrado en Contacto de Emergencia y Seguro Médico. Obligatorio, Opcional, Informativo y las demás etiquetas compactas equivalentes comparten una regla global de centrado horizontal y vertical.
- V2.204
Ancho completo restaurado en campos manualesContacto de Emergencia y Seguro Médico recuperan únicamente el ancho completo anterior de sus campos de escritura. Se conservan sin cambios la altura compacta, la alineación, las tarjetas uniformes y el resto del punto 2.
- V2.203
Ocho tarjetas internamente uniformesContacto de Emergencia y Seguro Médico dejan de usar desplazamientos visuales. Sus títulos replican las medidas de los títulos sanitarios y cada campo manual adopta el alto de un botón Sí/No, centrado verticalmente dentro de la tarjeta, sin modificar el tamaño compacto de V2.197.
- V2.202
Alineación fina de los campos manualesSin modificar el tamaño compacto recuperado de V2.197, Contacto de Emergencia y Seguro Médico reducen únicamente su desplazamiento visual de 12 a 9 px. Los campos redondeados quedan alineados con Sí/No sin aumentar la altura de ninguna tarjeta.
- V2.201
Regreso al tamaño compacto real de V2.197El punto 2 recupera exactamente su altura automática y compacta, sin height ni min-height forzados. Contacto de Emergencia y Seguro Médico conservan los campos redondeados y estos se desplazan verticalmente sin agrandar las tarjetas para coincidir con el eje de Sí/No.
- V2.200
Alineación vertical exacta del punto 2Se conserva el alto original de 88 px y los campos manuales redondeados pasan a utilizar la misma estructura vertical de las tarjetas sanitarias: título de 25 px, separación de 5 px y control de 25 px. Contacto de Emergencia y Seguro Médico quedan exactamente sobre el eje de Sí/No.
- V2.199
Altura restaurada y campos sanitarios redondeadosLos ocho recuadros del punto 2 recuperan la altura anterior de 88 px y comparten exactamente borde, radio, fondo y dimensiones. Los campos internos de Contacto de Emergencia y Seguro Médico adoptan el mismo lenguaje redondeado de los controles Sí/No.
- V2.198
Cuadrícula sanitaria uniformeLos ocho recuadros del punto 2 comparten exactamente ancho, altura, borde y separación dentro de una cuadrícula de cuatro columnas por dos filas. Contacto de Emergencia ocupa la posición superior derecha y Seguro Médico la inferior derecha.
- V2.197
Información adicional del alumno reorganizadaEl punto 2 elimina Otros y organiza las seis condiciones en dos filas de tres tarjetas. A la derecha incorpora Seguro Médico y Contacto de Emergencia como campos manuales persistentes, contemplados también por el indicador de información pendiente.
- V2.196
Flechas de dropdown unificadas en todo el sistemaTodos los selectores reutilizan la misma flecha, tamaño y separación derecha de Alumno reemplazo. Estado en Ver clase, Editar plan y los demás dropdowns quedan alineados mediante una única regla global, con espacio reservado para que el texto nunca se superponga.
- V2.195
Editar plan con márgenes realmente simétricosEl encabezado, los campos y el pie comparten un único margen lateral de 20 px en escritorio y 12 px en móvil. Se elimina el carril de scrollbar innecesario para que la X, los campos y Guardar cambios terminen sobre el mismo eje derecho.
- V2.194
Confirmación final obligatoria para pagos adelantadosGuardar dentro de Pago adelantado incorpora las cuotas únicamente como borrador visible. Los cambios se persisten, auditan y sincronizan recién al pulsar Guardar pagos; cancelar o cerrar Ver pagos descarta todo adelanto no confirmado.
- V2.193
Pago adelantado compacto y simétricoLos números del 1 al 12 reutilizan exactamente el tamaño y la forma de los selectores de días de Crear sala: 42 px en escritorio y 31 px en móvil. La ventana reduce su ancho y aplica el mismo margen lateral al encabezado, cuerpo y pie, alineando correctamente X y Guardar.
- V2.192
Filtro oscuro completo y pagos adelantadosEl selector de estado respeta el modo oscuro e incorpora Alumno becado y Alumno libre. Ver pagos permite registrar de 1 a 12 cuotas adelantadas, agregándolas cronológicamente al legajo como Pagado con respaldo, auditoría y sincronización crítica.
- V2.191
Cuotas mensuales claras, Ver pagos simétrico y filtro por estadoLas cuotas se identifican únicamente por el mes de inicio —Julio, Agosto, etc.— sin modificar sus claves, fechas, estados pagados ni observaciones. Ver pagos adopta márgenes laterales idénticos y Alumnos incorpora un filtro independiente para Todos, Activos e Inactivos.
- V2.190
Identificación visual de clases de pruebaLas personas agendadas mediante Clase de prueba se muestran en azul, negrita y cursiva tanto en el Calendario como en Ver clase, incluyendo los lugares liberados por ausencia o vacaciones.
- V2.189
Simetría real sin carril de scrollbar innecesarioAgregar alumno manualmente deja de reservar espacio para un scrollbar inexistente. Header, campos y footer utilizan exactamente 20 px a izquierda y derecha en escritorio, y 12 px en móvil.
- V2.188
Márgenes simétricos en Agregar alumno manualmenteLa X del encabezado y las acciones del pie se alinean con el eje derecho real de los campos, contemplando el carril reservado para el scrollbar. La regla se incorpora al Manual de Diseño como estándar universal para ventanas con desplazamiento interno.
- V2.187
Clases de prueba con asignación manualAgregar alumno manualmente incorpora una tercera opción para registrar una clase de prueba sin crear previamente un legajo. Permite escribir el nombre de la persona y elegir una sala activa y un horario con cupo real para la fecha seleccionada.
- V2.186
Capacidad diferenciada para Sala FSala F admite un máximo de 5 alumnos por clase, mientras Sala M y Sala K conservan 6. La regla se aplica de forma centralizada al Calendario, Ver clase, altas manuales, guardado, cupos disponibles, Dashboard y métricas de ocupación.
- V2.185
Corrección del bucle de sincronización y protección de SupabaseLa hidratación online y la resolución de conflictos dejan de interpretar un respaldo histórico del navegador como un pago nuevo. Los pagos protegidos solo se fusionan y envían cuando existe un marcador crítico real pendiente, evitando ciclos de guardado, conflictos de revisión repetidos y consumo excesivo de recursos en Supabase.
- V2.184
Recuperaciones identificadas con asteriscoLos alumnos agendados mediante una recuperación a favor muestran un asterisco junto a su nombre en el Calendario y dentro de Ver clase. Los horarios fijos y los alumnos libres conservan su nombre sin esta marca.
- V2.183
LAN y online alineados desde el arranqueSupabase pasa a ser la fuente prioritaria obligatoria al abrir el sistema con conexión. La interfaz espera la revisión online antes de mostrar y habilitar los datos operativos, evitando que una copia local anterior aparezca momentáneamente como vigente. Si la conexión falla, se permite usar el respaldo local con una advertencia visible y las escrituras online permanecen bloqueadas hasta completar una sincronización segura. Los archivos abiertos localmente muestran además la identificación permanente “LAN · PRODUCCIÓN”.
- V2.182
Recuperaciones visibles correctamente en el CalendarioCuando una recuperación o ingreso manual utiliza un lugar liberado por ausencia o vacaciones, el Calendario muestra a la persona que ocupa ese lugar en vez de conservar “(cupo libre)”. Una clase 6/6 ya no puede exhibir cupos libres ficticios. Los alumnos que ingresan mediante recuperación se distinguen en negrita y cursiva, tanto en filas propias como cuando ocupan un lugar liberado.
- V2.181
Cobranzas del Dashboard alineadas con el módulo CobranzasSe corrige la interpretación de fechas ISO del Dashboard para tratarlas como fechas locales y evitar que una cuota del día 01 aparezca visualmente en el mes anterior por conversión UTC. Cobranzas prioritarias, KPI, resumen diario e ingresos pendientes quedan alineados con la misma fecha de negocio que utiliza el módulo Cobranzas. Además, el bloque semanal del catálogo pasa a llamarse “Planes” y la ventana de Planes deja de reservar espacio lateral de scrollbar cuando no es necesario.
- V2.180
Planes personalizados, edición por tipo y tablas más compactasPlanes activos pasa a Planes semanales e incorpora debajo un catálogo de Planes personalizados con seis opciones: 1x 600.000 Gs., 2x 1.000.000 Gs., 3x 1.200.000 Gs., 4x 1.500.000 Gs., 5x 2.000.000 Gs. y Por clase 200.000 Gs. Editar plan solicita primero Plan semanal o Plan personalizado y permite modificar el valor real del catálogo. Recuperaciones y Lugares disponibles reducen espacios innecesarios entre columnas, y Ver clase utiliza estilo delineado verde sin relleno.
- V2.179
Ver clase desde Dashboard y tablas con margen derecho simétricoPróximas clases incorpora un botón Ver clase junto al indicador de cupos, que abre directamente la clase exacta en Calendario. En Lugares disponibles y Recuperaciones, la columna de acciones se alinea al borde derecho útil de la tabla y el scrollbar se compacta para que el espacio visual derecho coincida con el margen izquierdo.
- V2.178
Optimización estructural y limpieza de producciónSe depuró el HTML completo sin alterar las reglas de negocio: se corrigió la estructura del documento, se eliminaron selectores y exportaciones sin uso, declaraciones CSS ya sobrescritas, metadatos de versión antiguos y el parche temporal de arranque V2.175. La persistencia deja de modificar Storage.prototype y pasa a una API interna explícita, reduciendo efectos colaterales y haciendo más predecible la sincronización. También se eliminaron datos demostrativos y textos residuales de prototipo/importación, se corrigió la validación asíncrona de acciones críticas, se ajustó el orden del guardado al cerrar sesión y se mantiene exclusivamente el RPC versionado nd_save_state_v2177.
- V2.177
RPC versionado y aislamiento definitivo de clientes antiguosLa escritura online deja de utilizar el endpoint histórico nd_save_state y pasa a nd_save_state_v2177. Al renombrar la función en Supabase, cualquier copia antigua que siga intentando guardar con una revisión obsoleta deja de poder entrar al RPC de producción. Se mantiene la revisión canónica, la protección local, el bloqueo previo a hidratación y el control de reintentos.
- V2.176
Rotación de clave pública de SupabaseLa aplicación pasa a utilizar una nueva Publishable Key exclusiva de la versión vigente. Esto permite retirar la clave anterior después de verificar el acceso y cortar de forma definitiva cualquier copia antigua que continúe intentando guardar con revisiones obsoletas. Se conservan el bloqueo de escritura previa a hidratación, la revisión online canónica y las protecciones contra reintentos agresivos.
- V2.175
Bloqueo de escrituras hasta confirmar la revisión onlineEl arranque local ya no puede enviar guardados a Supabase antes de conocer la revisión vigente del servidor. Se eliminan bloqueos y pendientes obsoletos de sincronización una sola vez, el observador de cambios se habilita únicamente después de hidratar la revisión online y una copia local antigua no puede provocar conflictos repetidos como “esperada 14, actual 86”.
- V2.174
Sincronización protegida contra saturación de SupabaseSe elimina el ciclo de guardados generado por la hidratación y la auditoría de pagos. Los estados idénticos ya no se envían, los cambios se agrupan, las solicitudes tienen bloqueo por pestaña, tiempo máximo, espera progresiva y un cortacircuitos de diez minutos tras fallos repetidos. Una copia local antigua tampoco puede sobrescribir una revisión online más nueva.
- V2.173
Reversión del formato horizontal ampliadoSe revierte la ventana amplia de dos columnas incorporada en V2.172. Actualizaciones vuelve al diseño anterior, más angosto y de lectura vertical, conservando la paginación, el orden correlativo y el resto de las mejoras vigentes.
- V2.172
Actualizaciones en formato horizontal realLa ventana pasa de 720 px a un ancho operativo de hasta 1180 px y muestra dos columnas reales de cinco tarjetas por página en escritorio. En pantallas angostas se adapta automáticamente a una sola columna.
- V2.171
Ingresos pendientes ocultos por defectoEl importe sensible del KPI Ingresos pendientes inicia siempre oculto al ingresar, actualizar con F5 o volver a abrir el sistema. El ojo permite revelarlo temporalmente, pero el estado visible ya no se guarda. El briefing del Dashboard tampoco expone el monto.
- V2.170
Actualizaciones más horizontales y visualmente compactasLa sección Actualizaciones adopta un formato más horizontal: ahora se distribuye en tarjetas responsivas de varias columnas, con mejor aprovechamiento del ancho disponible, menos sensación de listado largo vertical y una lectura más moderna dentro del sistema.
- V2.169
Historial de versiones correlativo y sin duplicadosSe corrige la entrada “Margen de recuperación y panel lateral adaptable”, que había quedado numerada accidentalmente como V2.167. Recupera su versión real V2.166 y el historial vuelve a quedar ordenado, descendente y sin versiones repetidas.
- V2.168
Margen simétrico real en Cancelar recuperaciónSe eliminó el espacio reservado por el scrollbar interno de la ventana compacta. La X, el selector, el aviso y el botón rojo terminan ahora sobre el mismo eje derecho, con el mismo margen visual de 20 px que existe a la izquierda.
- V2.167
Cancelar recuperación con margen derecho corregidoLa ventana Cancelar recuperación desplaza levemente hacia la izquierda la X y el botón rojo para que el margen derecho coincida visualmente con el izquierdo, manteniendo la regla de alineación del sistema.
- V2.166
Margen de recuperación y panel lateral adaptableLa ventana Cancelar recuperación recupera márgenes laterales realmente simétricos, sin desplazamiento adicional en X ni en la acción roja. En Ver clase, el bloque Notas se expande según la cantidad de alumnos para que el panel derecho termine perfectamente alineado con Alumnos y asistencia, incluso con siete, ocho o más registros.
- V2.165
Pagos blindados y ventana de recuperación ajustadaLos pagos incorporan auditoría independiente por alumno y período, captura previa a la sincronización, respaldo local, marcador de guardado pendiente y comprobante de revisión confirmada por Supabase. Los historiales se reconstruyen desde la auditoría si una revisión remota llega incompleta. En Ver clase, Cancelar recuperación queda junto a + Recuperación y su ventana desplaza X y la acción roja hacia la izquierda.
- V2.164
Admin, cancelación de recuperaciones y protección de pagosEl rol Owner se presenta como Admin. Ver clase incorpora Cancelar recuperación, activo únicamente cuando existe una recuperación agendada, con selección del alumno y restauración del crédito cuando corresponda. Los pagos ahora se respaldan localmente, sincronizan inmediatamente y se combinan por período para impedir que una edición simultánea del legajo reemplace historiales de pago.
- V2.163
Dashboard canónico y acceso tolerante a conexiones lentasEl Dashboard se recalcula desde clases no canceladas, salas activas, ocupación real, cobranzas canónicas, recuperaciones justificadas, staff activo y cumpleaños vigentes. Próximas clases pasa a ser cronológica y las notificaciones muestran únicamente alertas reales. Supabase deja de bloquear la carga del HTML, incorpora CDN alternativo, tiempos de espera realistas, reintentos y apertura inmediata de la copia local validada.
- V2.162
Márgenes estándar ND y WhatsApp bloqueadoCupos disponibles y Recuperaciones ahora reutilizan exactamente el mismo sistema de márgenes de Alumnos, Profesores, Cobranzas y Pagos pendientes. Se eliminan el gutter reservado y los desplazamientos particulares de X y Cerrar. Todos los accesos de WhatsApp, incluida la integración fijada, dejan de redirigir y muestran el aviso interno correspondiente.
- V2.161
Márgenes simétricos y versión visibleLugares disponibles y Recuperaciones recuperan el mismo margen a izquierda y derecha. Los botones X y Cerrar se desplazan de manera independiente hacia la izquierda, sin aumentar el margen del contenido. La versión actual del sistema se muestra en la parte inferior de la barra lateral desplegada, a la derecha del nombre.
- V2.160
Márgenes operativos, periodos y WhatsApp internoSe amplió el margen derecho de Lugares disponibles y Recuperaciones, desplazando X y Cerrar hacia el interior. Periodo incorpora Mañana y Pasado mañana. El KPI pasa a llamarse Cupos disponibles y el botón de WhatsApp deja de abrir un enlace externo para mostrar el aviso de futura bandeja interna.
- V2.159
Optimización estructural integralSe realizó una auditoría completa del HTML. Se eliminan recursos duplicados, declaraciones CSS sobrescritas, comentarios de parches, variables sin uso y renderizados redundantes. El logo queda embebido una sola vez y optimizado; Calendario, Dashboard y Lugares disponibles reutilizan una única lectura e indexación de datos por renderizado. También se corrige el código del miércoles y el Manual de Diseño sube a v1.4 con una regla permanente de rendimiento.
- V2.158
Inicio rápido y sincronización progresivaSe eliminó el arranque bloqueante que esperaba sesión, usuario, membresía y estado completo antes de mostrar el sistema. En F5 se abre inmediatamente la copia local validada, Supabase sincroniza en segundo plano y las revisiones nuevas se aplican sin un segundo reload. También se agregaron preconexiones y límites de espera para evitar permanecer en “Cargando Sistema ND”.
- V2.157
Ventanas Lugares disponibles y RecuperacionesSe incorporan dos ventanas operativas modernas desde los KPI del Dashboard. Lugares disponibles enlista cupos por periodo, sala, horario, profesora y ocupación. Recuperaciones muestra únicamente créditos originados por ausencias justificadas, con trazabilidad, acceso al legajo y búsqueda de cupos. El Manual de Diseño sube a v1.3.
- V2.156
Resumen diario y KPI unificadosSalas activas ahora consulta el estado operativo real y reconoce correctamente las tres salas habilitadas. El KPI Recuperaciones y el Resumen diario utilizan una única fuente y muestran el total de clases disponibles para recuperar, evitando diferencias entre cantidad de alumnos y cantidad de recuperaciones.
- V2.155
Cupo libre idéntico a la celda vacíaEl botón ubicado junto al alumno ausente ahora reutiliza las mismas clases, borde punteado, relleno, tipografía y comportamiento de una celda vacía. El texto se muestra como “(cupo libre)”.
- V2.154
Estilo unificado para cupos libresEl botón “cupo libre” ubicado junto a un alumno ausente ahora utiliza exactamente el mismo borde punteado, relleno, tono, tipografía y comportamiento visual que una celda completamente vacía.
- V2.153
Ausente y cupo libre separadosLa fila de ausencia ahora contiene dos componentes independientes: el bloque rojo y tachado abre el legajo, mientras que el bloque verde “cupo libre” es pulsable y abre la carga de un reemplazo, alumno libre o recuperación.
- V2.152
Ausente justificado y recuperación automáticaSe incorpora “Ausente justificado” en Ver clase. Este estado libera el cupo y suma una recuperación; el estado Ausente común ya no suma. Los cambios son reversibles, corrigen ausencias heredadas de la regla anterior y quedan registrados en el historial de la clase.
- V2.151
Ausentes con cupo libre visibleEl alumno marcado como Ausente conserva su bloque rojo y nombre tachado. A su derecha se muestra un bloque verde “cupo libre”, y el contador de ocupación descuenta correctamente ese lugar.
- V2.150
Clases sin duplicados y ausentes visiblesEl Calendario utiliza la misma lista canónica de “Ver clase”, elimina nombres repetidos y limita cada horario a seis asistentes y 6/6. Los alumnos marcados como Ausentes aparecen en rojo y tachados. También se bloquean duplicados al agregar o guardar una clase.
- V2.149
Conexión preservada y ajustes operativos recientesSe mantiene la autenticación y sincronización con Supabase. El saludo distingue “Bienvenido” para David y “Bienvenida” para las usuarias; los alumnos becados quedan fuera de cobranzas y morosidad con pagos bloqueados; la búsqueda del Calendario resalta nombres; y las vacaciones se integran dentro de una de las seis filas, sin generar una séptima.
- V2.148
Corrección urgente de Dashboard y accesos a salasSe restauró exactamente la distribución compacta de V2.146 en Resumen diario y Ocupación por sala. Los accesos directos se trasladaron correctamente a los botones superiores Sala M, K y F ubicados antes de Borrar filtros. El aviso de Ver clases en Pago de salarios ahora funciona mediante el sistema global de notificaciones.
- V2.147
Acceso directo a salas y aviso de Ver clasesLas filas Sala M, Sala K y Sala F de Ocupación por sala ahora abren directamente el Calendario con la sala elegida. En Pago de salarios, el botón Ver clases muestra el aviso “Ver clases: futura sección del sistema.”
- V2.146
Ajustes de cobranzas en DashboardEl bloque Cobranzas pendientes muestra únicamente la cantidad de alumnos con cuotas pendientes, sin monto. Cobranzas prioritarias amplía el listado visible de cuatro a cinco personas.
- V2.145
Margen real simétrico en Ver claseEl scrollbar fue separado del margen exterior para que los paneles queden exactamente a 20 px de ambos costados. Cerrar, Ocupación y Guardar clase vuelven al mismo eje derecho. Todos presentes adopta borde verde sin relleno y Todos ausentes borde rojo sin relleno.
- V2.144
Auditoría visible y alineación de Ver claseLa cinta de última modificación queda siempre visible al editar alumnos o profesores y ocupa un espacio propio a la izquierda de Cancelar. En Ver clase, cerrar, Ocupación y Guardar clase se desplazan 15 px hacia la izquierda para alinearse con el borde real del contenido después de compensar el scrollbar vertical.
- V2.143
Margen de legajos en Ver clase y auditoría reubicadaVer clase adopta exactamente los 20 px laterales y el comportamiento de scroll utilizado en Alumnos y Profesores. La última modificación se mueve al footer, inmediatamente antes de Cancelar, y deja de mostrarse cuando un registro antiguo aún no posee datos de auditoría.
- V2.142
Márgenes ND en Pago de salarios y CobranzasAmbas ventanas adoptan exactamente la misma estructura lateral utilizada en Alumnos y Profesores: 20 px simétricos en escritorio, 12 px en pantallas pequeñas y el scroll contenido dentro del listado para no alterar el margen derecho.
- V2.141
Margen simétrico en Ver claseSe compensó el carril vertical de desplazamiento en ambos costados de la ventana para que los márgenes izquierdo y derecho tengan exactamente la misma presencia visual.
- V2.140
Ajustes finos en Ver claseEl botón Agregar alumno se deshabilita al completar 6/6, los controles de quitar alumno quedan centrados y en rojo uniforme, se eliminó el resumen superior de salario, las profesoras se ordenan de A a Z, los márgenes laterales vuelven al estándar ND y Alumno reemplazo utiliza sugerencias compactas propias.
- V2.139
Auditoría de legajos y nueva ventana Ver claseLos legajos de alumnos y profesores muestran fecha, hora y usuario de la última modificación. Ver clase fue rediseñada, el campo Alumno reemplazo sugiere alumnos activos al escribir, una clase completada computa Gs. 60.000 y una clase cancelada computa Gs. 0 en Pago de salarios.
- V2.138
Ícono oficial del Sistema NDSe incorporó el logo institucional como favicon multirresolución para identificar el sistema en la pestaña del navegador, favoritos y accesos directos.
- V2.137
Recarga sin destello del loginAl actualizar con F5, el sistema mantiene una pantalla neutra de carga mientras Supabase valida la sesión persistida. El login solo aparece cuando realmente no existe una sesión autorizada, evitando el parpadeo visual dentro del sistema.
- V2.136
Recuperación segura de contraseñaSe agrega el enlace “¿Olvidaste tu contraseña?”, envío del correo de recuperación mediante Supabase Auth y una ventana segura para establecer una nueva contraseña desde el dominio oficial.
- V2.135
Sincronización online con SupabaseSe reemplaza el acceso local por Supabase Auth, se conecta la base consolidada online, se agrega guardado automático con control de revisiones, resolución de cambios simultáneos, señal Realtime y estado visible de conexión.
- V2.134
Actualizaciones correlativas y Manual de Diseño actualizadoSe corrige la numeración repetida del historial, se ordenan las versiones de la más reciente a la más antigua y se amplía el Manual de Diseño con reglas de versionado, ventanas, filtros, ordenamiento, paginación y adaptación responsive.
- V2.133
Profesores: columna Salas y tabla compactaSe agrega Salas a la derecha de Celular, se incorpora este dato al filtro y se redistribuyen los anchos para eliminar espacios innecesarios entre columnas.
- V2.132
Pago de salarios: filtro y columnas ajustadasSe baja el filtro para alinearlo con el selector de periodo y el botón X; se compactan Nombre y apellido y Celular; y se incorpora la columna Salas antes de Clases Totales.
- V2.131
Pago de salarios alineado con CobranzasSe unifican encabezado, tipografías, filtro, botón X, tabla, bordes, colores, altura de filas, botones, footer y paginación para que Pago de salarios siga exactamente el mismo lenguaje visual de Cobranzas.
- V2.130
Reglas generales de ventanas y Pago de salarios estandarizadoLas ventanas reinician filtros, página, orden, selecciones temporales y scroll al volver a abrir. Pago de salarios adopta títulos, líneas, colores y tamaños alineados al sistema, incorpora ordenamiento por columnas y paginación obligatoria de 10 filas.
- V2.129
Pago de salarios y corrección de Aplicar pagoSe incorpora la ventana Pago de salarios con cálculo mensual a Gs. 60.000 por clase, columnas operativas y botón Ver clases. También se corrige la profundidad visual de Aplicar pago para que siempre abra por encima de Cobranzas.
- V2.128
Profesoras nuevas visibles en el buscadorLa búsqueda global ahora consulta directamente el directorio vigente de profesores guardado en la notebook, por lo que incluye inmediatamente a todas las profesoras agregadas o editadas recientemente.
- V2.127
Estados de salas reactivos y búsqueda desplegable reparadaEl Dashboard refleja inmediatamente el estado real de cada sala después de guardar. La búsqueda global ya no queda recortada por el encabezado: despliega coincidencias de alumnos y profesores y permite abrir el legajo seleccionado.
- V2.126
Importación acumulativa sin borrar registrosLos backups ahora agregan alumnos y profesores nuevos sin reemplazar los existentes. El sistema detecta posibles duplicados por ID, documento, correo, celular o nombre, los informa antes de importar y los omite automáticamente.
- V2.125
Búsqueda global y backup completo de profesoresLa barra del Dashboard ahora sugiere alumnos y profesores y abre sus legajos directamente. La exportación JSON incorpora toda la información de profesores guardada en la notebook y permite restaurarla al importar.
- V2.124
Sala F (San ber) y horarios reales de Sala MSe unifica el nombre visible de la sede como “San ber”. En Sala M, 06:30 queda habilitado únicamente martes y jueves, mientras 06:45 queda habilitado lunes, miércoles y viernes. Los días ocultos dejan de computar como clases, cupos o capacidad disponible.
- V2.123
Espaciado uniforme en el DashboardOcupación por sala, Próximos cumpleaños y Recordatorios ahora utilizan exactamente el mismo gap vertical que el resto de las tarjetas, sin márgenes adicionales entre bloques.
- V2.122
Recuperaciones y accesos rápidos visiblesSe agrega el KPI Recuperaciones junto a Lugares disponibles, contando alumnos con clases pendientes. Los Accesos rápidos incorporan elevación, barrido luminoso y un loading claramente perceptible antes de navegar.
- V2.121
Tipo de persona alineado en cumpleañosLas etiquetas (Alumno) y (Profe) ahora permanecen en la misma línea, inmediatamente al lado del nombre.
- V2.120
Identificación en Próximos cumpleañosEl Dashboard ahora indica junto a cada nombre si el próximo cumpleaños corresponde a un Alumno o a un Profe.
- V2.119
Privacidad, legajos y feedback visualSe corrige el ojo de Ingresos pendientes para que no abra Cobranzas; Ver legajo adopta un botón con borde y sin relleno; los Accesos rápidos incorporan un loading visible; y el Manual aclara que Ocupación estimada es el porcentaje global ponderado de las salas activas M y K.
- V2.118
Dashboard más compacto y operativoSe recupera la altura original del encabezado y se reduce el espacio entre tarjetas. Alumnos activos cambia a Alumnos agendados del día; se garantiza Ver legajo en Cobranzas prioritarias; e Ingresos pendientes incorpora un ojo persistente para ocultar o mostrar el monto.
- V2.117
Reparación del DashboardSe corrige la referencia residual al KPI Staff activo que detenía el renderizado. Vuelven a calcularse correctamente ocupación, lugares disponibles, cobranzas, ingresos, resumen diario, próximas clases, cumpleaños y tarjetas operativas.
- V2.116
Dashboard compacto, KPI accionables y briefing dinámicoSe compacta el encabezado; Ocupación queda junto a Alumnos activos; Clases de hoy pasa a Lugares disponibles; Staff activo pasa a Ingresos pendientes; Cobranzas muestra cantidad y monto; se incorpora una frase dinámica diaria; y “Espacio libre” cambia a “Cupo libre” en el Calendario.
- V2.114
Legajos en cobranzas, próximos cumpleaños y retorno a ProfesoresCobranzas prioritarias incorpora Ver legajo; el Dashboard muestra siempre los tres cumpleaños futuros más cercanos; y al guardar un profesor editado desde su listado se regresa automáticamente a la ventana Profesores.
- V2.113
Ocupación y resumen diario corregidosLa ocupación se calcula ahora con la capacidad semanal real de cada sala activa, considerando horarios y días habilitados. Las clases programadas y los alumnos agendados del día se obtienen del calendario vigente, incluyendo reservas manuales y excluyendo vacaciones.
- V2.112
Resumen diario compactado y alineadoSe eliminan del Resumen diario los datos Cumpleaños de hoy y Ocupación estimada, ya disponibles en tarjetas específicas. El bloque reduce su altura para finalizar alineado con las tarjetas laterales.
- V2.111
Resumen diario incorporado al DashboardSe agrega un bloque operativo con los datos cruciales de la jornada. Ocupación por sala, Próximos cumpleaños y Recordatorios quedan apilados a su derecha, manteniendo Próximas clases y Cobranzas prioritarias en la columna operativa.
- V2.110
Recordatorios reubicado en el DashboardEl bloque Recordatorios pasa a la columna izquierda, debajo de Próximos cumpleaños. La columna derecha queda reservada para Próximas clases y Cobranzas prioritarias.
- V2.109
Distribución reorganizada del DashboardAccesos rápidos, ocupación y cumpleaños pasan a la columna izquierda; próximas clases y cobranzas prioritarias quedan en la columna derecha.
- V2.108
Saludo personalizado, actualizaciones ordenadas y Manual ampliadoEl Dashboard saluda según el usuario de sesión, el historial se ordena desde la versión más reciente y el Manual de Uso incorpora una guía completa y buscable del Dashboard.
- V2.107
Dashboard sin alertas duplicadasSe eliminó Alertas importantes del Dashboard y los avisos se centralizaron en Notificaciones. El Manual de Uso pasa a funcionar como documentación viva.
- V2.106
Notificaciones y estados visualesSe centralizó la alerta de información adicional pendiente en Notificaciones y se corrigió el centrado de badges y meses vencidos.
- V2.105
Bienvenida, festividades y WhatsAppSe agregó saludo, fechas relevantes de Paraguay, acceso por WhatsApp en cobranzas prioritarias y corrección del acceso rápido a Profesores.
- V2.104
Dashboard en columnas compactasLas tarjetas se organizaron en columnas independientes con gaps uniformes para aprovechar mejor la primera pantalla.
- V2.103
Dashboard reorganizadoPróximas clases, accesos rápidos, cobranzas prioritarias y ocupación se reorganizaron según prioridad operativa.
- V2.102
Cobranzas prioritarias y Sala FCobranzas se ordena por mayor deuda, muestra meses pendientes y Sala F pasa a identificarse como Sala F (San ber) en estado Próximamente.
- V2.101
Dashboard como HomeSe incorporó el Dashboard principal con KPIs, próximas clases, accesos rápidos, cobranzas, ocupación, cumpleaños y recordatorios.
- V2.100
Cobranzas: filtro y cierre estandarizadosEl filtro se integró al header y la ventana puede cerrarse con X, Esc o clic fuera.
- V2.099
Alineación del buscador de CobranzasSe alinearon el buscador y el botón X según el patrón de Alumnos y Profesores.
- V2.098
Cobranzas como ventana modalCobranzas se abre sobre el Calendario, que permanece visible y difuminado detrás.
- V2.097
Filtros estandarizadosAlumnos, Profesores y Cobranzas adoptaron el componente de filtro uniforme.
- V2.096
Cobranzas: título y resumenSe corrigió el título Cobranzas y se reubicaron filtro y resumen de resultados.
- V2.095
Manuales funcionalesManual de Uso completo con búsqueda y navegación por módulos, además del Manual de Diseño oficial del SISTEMA ND.
- V2.061
Separación exacta en Editar salaLa papelera y la barra de scroll mantienen exactamente el mismo gap visual que existe entre los controles de días.
- V2.060
Gap uniforme junto al scrollEditar sala conserva la papelera completamente visible y separa el scroll con el mismo espacio utilizado entre los controles de días.
- V2.059
Scroll separado de la papeleraEditar sala reserva un carril exclusivo para el scroll vertical, evitando que se superponga al botón de eliminar horario.
- V2.053
Fecha de vencimiento visible en el calendarioCada alumno muestra junto a su nombre, entre paréntesis, el día mensual de pago registrado en su legajo. El dato también se aplica a alumnos de vacaciones y cargas manuales vinculadas a un legajo.
- V2.042
Ventanas estandarizadasTodos los modales comparten márgenes, encabezados, subtítulos, bordes, botones y comportamiento de desplazamiento. Editar sala adopta un ancho ajustado al contenido y selector compacto.
- V2.041
Ventanas compactas y fondo inmóvilEditar sala reduce el espacio lateral innecesario y todas las ventanas bloquean el desplazamiento del contenido de fondo mientras permanecen abiertas.
- V2.039
Días habilitados por horarioEditar sala permite definir L, M, MI, J y V para cada horario. El calendario y la ficha del alumno muestran únicamente los horarios disponibles en el día correspondiente.
- V2.034
Calendario sincronizado con alumnos realesEl calendario dejó de utilizar asignaciones demostrativas. Ahora muestra exclusivamente a cada alumno activo en la sala, día y horario guardados en su ficha, con compatibilidad para registros creados en versiones anteriores.
- V2.033
Cada horario equivale a una claseLa validación de los planes contabiliza horarios seleccionados, independientemente de la cantidad de días utilizados. Un alumno con plan de 5 clases puede distribuirlas, por ejemplo, en 2 horarios el lunes, 2 el jueves y 1 el viernes.
- V2.032
Hasta 2 horarios por díaLa carga y edición de alumnos permite seleccionar hasta dos horarios dentro del mismo día y sala. El plan se valida por cantidad total de clases semanales, se evitan horarios duplicados y los dos turnos se conservan al editar nuevamente al alumno.
- V2.031
Inactivos liberan horariosAl marcar un alumno como Inactivo se eliminan su plan y sus horarios vigentes, se liberan automáticamente sus reservas actuales y futuras y se habilita el guardado sin plan. Al volver a Activo, el sistema exige seleccionar un plan y exactamente los días y horarios correspondientes antes de habilitar Guardar alumno o Guardar cambios.
- V2.026
Filas V2.022 y submenú persistenteLas filas de Alumnos recuperan la altura visual de V2.022, las etiquetas de Estado quedan centradas, la columna Acción recibe más espacio para mostrar Editar alumno completo y el submenú Alumnos permanece expandido al abrir, editar, guardar o cerrar el listado.
- V2.025
Filas compactas y márgenes lateralesLos títulos de columnas de Alumnos recuperan su tamaño anterior, el título principal del modal permanece grande, las filas vuelven a su altura compacta, Editar alumno queda en una sola línea y se agregan márgenes laterales para separar estados y acciones de los bordes. La marca se actualizó a BY DÉBORA F. · CENTRO DE BIENESTAR.
- V2.024
Tipografía uniforme y listado sin scroll horizontalLa ventana Alumnos adopta la misma escala tipográfica de Profesores, elimina la franja superior y el scroll horizontal, ajusta todas las columnas al ancho disponible y mantiene el conteo únicamente en el pie con el texto “Mostrando 1–10 de X alumnos”. También se uniformó la tipografía de todos los menús y se actualizó la marca a BY DÉBORA FERNÁNDEZ · Centro de bienestar.
- V2.023
Listado paginado y ordenableValidaciones de C.I. y celular alineadas junto a sus títulos, tipografía normalizada en Alumnos, orden alfabético A–Z por defecto, paginación de 10 registros y ordenamiento ascendente o descendente por cada columna. Cerrar Editar alumno vuelve automáticamente al listado.
- V2.022
Listado completo y edición de alumnosAlumnos ahora muestra todos los registros importados con estado, nombre, plan, celular, cumpleaños, ingreso y clases a recuperar. Cada fila incorpora Editar alumno, que reutiliza la ficha completa, precarga los datos históricos de la V1 y guarda los cambios sobre el mismo registro.
- V2.021
Validación de identidad y header colapsadoDetección en tiempo real de C.I. y celular duplicados, bloqueo del guardado si ya pertenecen a otro alumno, formato automático de C.I. con puntos y un solo guion, eliminación del logo detrás del botón hamburguesa y espaciado uniforme entre CALENDARIO y los controles superiores.
- V2.020
Logo oficial y ficha más compactaUso del logo ND adjunto en la barra lateral expandida, colapsada y junto a Calendario; encabezado fijo al desplazarse dentro de Agregar alumno; reducción adicional del ancho máximo a 1010 px y centrado de los labels de Vacaciones.
- V2.019
Sidebar colapsado y ficha más compactaCorrección de textos e iconos de Ayuda con la barra contraída, logo ND junto a Calendario, tooltip uniforme del botón hamburguesa con estados dinámicos y reducción adicional de más de 30 px por columna en Agregar alumno, manteniendo intacto el ancho de Vacaciones.
- V2.018
Ficha de alumno más compactaReducción de 60 px en el ancho máximo de Agregar alumno, aproximadamente 20 px por cada columna principal; Vacaciones conserva un ancho estable y la reducción inferior recae sobre Notas. Se añadieron márgenes proporcionales para resoluciones menores.
- V2.017
Ficha completa de alumnosReconstrucción de Agregar alumno en bloques de tres columnas: datos personales y administrativos, estado obligatorio, asignación intuitiva de salas/días/horarios con validación automática según el plan, notas opcionales, vacaciones y guardado local compatible con la base importada desde la V1.
- V2.016
Acceso a legajosNuevos submenús Editar alumno y Editar profesor, buscador intuitivo desde la primera letra, navegación por teclado y apertura del perfil o legajo seleccionado, preparado para utilizar los datos importados desde la V1.
- V2.015
Importación reversible y accesos de salasBorde verde en todas las ventanas emergentes, Sala F en el encabezado, eliminación de la papelera y punto de restauración automático para revertir la última importación JSON.
- V2.014
Planes y control de asistenciaHistorial de versiones en orden descendente, eliminación del contador fijo de clases, métricas de cupos libres y ausencias, visual de reemplazos, nuevo módulo Planes con valores vigentes de la V1 y cierre verde en Agregar alumno.
- V2.013
Seguridad y respaldoRecordar contraseña, usuario autocompletado, cierre tras una hora de inactividad, Backup JSON compatible con la versión anterior, historial de actualizaciones, cupos libres diarios y Borrar filtros en rojo.
- V2.012
Acceso y ayudaLogin funcional, botón Salir conectado, iconos para Manual de Uso y Actualizaciones, y burbuja de notificaciones.
- V2.011
Reconstrucción limpiaReescritura completa basada en el HTML CRM de referencia, con una sola hoja de estilos y un único script organizado; Salas quedó encima de Alumnos y se agregó Editar sala.
- V2.010
Controles compactosReducción y unificación del tamaño de Sala M, Sala K y Borrar filtros.
- V2.009
Búsqueda mejoradaBúsqueda independiente de acentos, botón Borrar filtros, Recordatorios y separador sombreado antes de Ajustes.
- V2.008
Navegación persistenteDías fijos durante el desplazamiento, SVG oficial de WhatsApp Business y nueva sección de Notificaciones.
- V2.007
Barra superior y flyoutsAtajos de Sala M y Sala K junto al buscador, Agregar alumno en el top y paneles laterales reales para Ajustes y Ayuda.
- V2.006
Salas sincronizadasSincronización entre atajos y menú lateral, separación de Alumnos y Staff, y acción visual para agregar salas.
- V2.005
Submenús exclusivosUn solo submenú abierto a la vez, incorporación de Salas y Staff, e inicio de búsqueda limitada a la sala activa.
- V2.004
Sidebar y tooltipsTooltips al colapsar la barra, separación visual del perfil y flechas indicadoras en los accesos con submenú.
- V2.001
Calendario uniformeTarjetas con altura idéntica, nombres completos en cascada, seis posiciones fijas por clase y espacios libres visibles.
- V2.000
Nueva base visualPrimer prototipo moderno del calendario semanal, con estructura limpia, estética premium y navegación principal para ND.