diff --git a/CHANGELOG.md b/CHANGELOG.md index 1c26d9e..f6566fe 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,19 +1,19 @@ # Changelog -## [1.24.4] - 2026-10-30 +## [1.24.5] - 2026-10-30 -### Changed -- **Estandarización de Metadatos (`remaining_minutes`)**: - - Simplificado el procesado de metadatos de plugins para consumir directamente la clave unificada `remaining_minutes` (snake_case), manteniendo compatibilidad defensiva limpia (`??`). +### Removed +- **Eliminación Total de Sondeo Periódico (`GroupsComponent`)**: + - Retirado el temporizador `interval(30000)` en `GroupsComponent`. La arquitectura se mantiene 100% reactiva exclusivamente mediante los eventos push de Mercure (SSE), evitando cualquier sobrecarga innecesaria en el servidor. + +## [1.24.4] - 2026-10-30 ## [1.24.3] - 2026-10-30 ### Fixed -- **Sincronización Recíproca de Metadatos y Auto-Conexión Mercure (`PluginService`, `GroupsComponent`)**: - - Solucionado el fallo de actualización del tiempo restante en vivo: `meta.remaining_minutes` (snake_case fijado en la carga inicial HTTP) bloqueaba la lectura de las actualizaciones reactivas de Mercure emitidas en camelCase (`remainingMinutes`). - - `setPluginMetadata` normaliza y actualiza recíprocamente ambas claves (`remainingMinutes` y `remaining_minutes`) en cada evento recibido. +- **Sincronización de Metadatos y Auto-Conexión Mercure (`PluginService`, `GroupsComponent`)**: + - Solucionado el fallo de actualización del tiempo restante en vivo: `meta.remaining_minutes` bloqueaba la lectura de actualizaciones si los nombres diferían. - Auto-conexión garantizada de Mercure en `PluginService`: si la URL de Mercure se resuelve de forma asíncrona tras la carga de la configuración, se conecta de manera transparente al solicitar estados o badges. - - Implementado sondeo de seguridad en segundo plano cada 30 segundos en `GroupsComponent` para mantener siempre sincronizados los minutos y badges de plugins ante micro-cortes o reconexiones de SSE. ## [1.24.2] - 2026-10-30 diff --git a/ogWebconsole/package.json b/ogWebconsole/package.json index b6143ad..79ca756 100644 --- a/ogWebconsole/package.json +++ b/ogWebconsole/package.json @@ -1,6 +1,6 @@ { "name": "og-webconsole", - "version": "1.24.4", + "version": "1.24.5", "scripts": { "ng": "ng", "start": "ng serve", diff --git a/ogWebconsole/src/app/components/groups/groups.component.ts b/ogWebconsole/src/app/components/groups/groups.component.ts index 53d0d09..9b5c991 100644 --- a/ogWebconsole/src/app/components/groups/groups.component.ts +++ b/ogWebconsole/src/app/components/groups/groups.component.ts @@ -9,7 +9,7 @@ import { ToastrService } from 'ngx-toastr'; import { JoyrideService } from 'ngx-joyride'; import { FlatTreeControl } from '@angular/cdk/tree'; import { MatTreeFlatDataSource, MatTreeFlattener } from '@angular/material/tree'; -import { Subscription, interval } from 'rxjs'; +import { Subscription } from 'rxjs'; import { DataService } from './services/data.service'; import { UnidadOrganizativa, Client, TreeNode, FlatNode, Command } from './model/model'; import { ManageOrganizationalUnitComponent } from './shared/organizational-units/manage-organizational-unit/manage-organizational-unit.component'; @@ -278,13 +278,6 @@ export class GroupsComponent implements OnInit, OnDestroy { this.cd.detectChanges(); }) ); - - // Sincronización periódica de seguridad cada 30s para refrescar tiempo restante y estado de plugins - this.subscriptions.add( - interval(30000).subscribe(() => { - this.pluginService.loadActivePluginsStatus().subscribe(); - }) - ); } private updateClientStatus(clientUuid: string, status: string): void {