diff --git a/src/app_controller.py b/src/app_controller.py index 458f0901..a8913759 100644 --- a/src/app_controller.py +++ b/src/app_controller.py @@ -1841,12 +1841,13 @@ class AppController: def _process_pending_gui_tasks(self) -> None: """Processes pending GUI tasks from the queue on the main render thread.""" + from src.api_hooks import WebSocketMessage now = time.time() if hasattr(self, 'event_queue') and hasattr(self.event_queue, 'websocket_server') and self.event_queue.websocket_server: if now - self._last_telemetry_time >= 1.0: self._last_telemetry_time = now metrics = self.perf_monitor.get_metrics() - self.event_queue.websocket_server.broadcast("telemetry", metrics) + self.event_queue.websocket_server.broadcast(WebSocketMessage(channel="telemetry", payload=metrics)) if not self._pending_gui_tasks: return diff --git a/src/events.py b/src/events.py index 7082ed11..814a6bc2 100644 --- a/src/events.py +++ b/src/events.py @@ -34,6 +34,8 @@ import queue from pathlib import Path from typing import Callable, Any, Dict, List, Tuple, Optional +from src.api_hooks import WebSocketMessage + class EventEmitter: """ @@ -112,7 +114,7 @@ class AsyncEventQueue: elif hasattr(payload, '__dict__'): serializable_payload = vars(payload) - self.websocket_server.broadcast("events", {"event": event_name, "payload": serializable_payload}) + self.websocket_server.broadcast(WebSocketMessage(channel="events", payload={"event": event_name, "payload": serializable_payload})) def get(self) -> Tuple[str, Any]: """