CSP.LMC Health Supervisor ========================== Role in the Architecture ------------------------ The CSP.LMC Health Supervisor coordinates the supervised evaluation of the aggregated system health for a CSP.LMC device. It applies debounce and maximum-latency rules to incoming subsystem events, ensuring that health evaluation is: - Stable - Predictable - Resistant to transient fluctuations - Executed within bounded time The supervisor does not contain business evaluation rules. Instead, it orchestrates when evaluation should occur and delegates the actual health computation to the health model. Responsibilities ---------------- The supervisor is responsible for: - Receiving subsystem events - Storing updates in a thread-safe structure - Applying debounce and max-latency timing control - Triggering snapshot-based evaluation - Ensuring evaluation is not repeated unnecessarily - Buffering forwarded subsystem ``HealthInfo`` updates (latest per subsystem source). - Coalescing forwarded ``HealthInfo`` with locally evaluated diagnostics into a single publication per debounced cycle (subject to change detection). It acts as the coordination layer between asynchronous subsystem inputs and deterministic health publication. Interaction with Other Components ---------------------------------- The supervisor operates between: - The subsystem event sources - The ``HealthStateModel`` (health classification) - The ``HealthInfoManager`` (diagnostic aggregation and publication) It coordinates evaluation timing and ensures that health classification and diagnostic aggregation remain independent from concurrency and scheduling concerns. For detailed API documentation, refer to :doc:`/api/observation/supervisor/health_supervisor`.