From 7e9a9e6eede6cc926fef64c626434e65984befbc Mon Sep 17 00:00:00 2001 From: Artur Borecki Date: Sun, 8 Mar 2026 20:38:32 +0100 Subject: [PATCH] feat(backend_server.py): add `initial_telemetry` support --- src/judas_server/backend/backend_server.py | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/src/judas_server/backend/backend_server.py b/src/judas_server/backend/backend_server.py index cce28a7..fe5cae4 100644 --- a/src/judas_server/backend/backend_server.py +++ b/src/judas_server/backend/backend_server.py @@ -8,11 +8,15 @@ import threading import time from typing import TYPE_CHECKING, Any, Final +from judas_protocol.types import TelemetryAction import yaml from judas_protocol import Category, ControlAction, Message from judas_server.backend.client import Client, ClientStatus from judas_server.backend.handler.hello_handler import HelloHandler +from judas_server.backend.handler.telemetry.initial_handler import ( + InitialTelemetryHandler, +) if TYPE_CHECKING: from typing import Callable @@ -67,11 +71,16 @@ class BackendServer: """Initialize message handlers.""" hello_handler = HelloHandler(self) + initial_telemetry_handler = InitialTelemetryHandler(self) self.message_handlers[(Category.CONTROL, ControlAction.HELLO)] = ( hello_handler.handle ) + self.message_handlers[ + (Category.TELEMETRY, TelemetryAction.INITIAL) + ] = initial_telemetry_handler.handle + def _load_known_clients(self) -> dict[str, dict[str, str | float]]: """Load the list of known clients from a YAML file and validate.""" known_clients: dict[str, dict[str, str | float]] = {} @@ -108,6 +117,9 @@ class BackendServer: client.last_seen = float( known_clients[client_id].get("last_seen", 0.0) ) + client.initial_telemetry = known_clients[client_id].get( # type: ignore + "initial_telemetry", None + ) self.clients[client_id] = client except FileNotFoundError: @@ -399,4 +411,5 @@ class BackendServer: "addr": client.addr, "last_seen": client.last_seen, "status": client.status, + "initial_telemetry": client.initial_telemetry, }