Overview ======== Role in the Commands Architecture --------------------------------- Within the CSP.LMC commands architecture, a client-issued **Long Running Command (LRC)** is represented by a ``MainTask`` and decomposed into a task tree composed of ``Task`` and ``LeafTask`` instances. These tasks may be executed across multiple CSP subsystems and may follow parallel or sequential execution patterns depending on the command semantics. The Task Tracker operates as an **observer and aggregator** within this architecture, alongside the following components: - **MainTask Composer**, which constructs the task tree and defines execution structure and dependencies; - **MainTask Executor**, which drives the execution of tasks and leaf tasks. While the Composer determines *what* is executed and the Executor controls *when* execution occurs, the Task Tracker is responsible for *tracking how execution progresses and how it completes*, independently of execution control. Core Responsibilities --------------------- The Task Tracker provides a centralized view of LRC execution by: - collecting execution updates from tasks and subtasks; - tracking the lifecycle of a command from acceptance to termination; - aggregating task statuses and result codes into a single outcome; - computing and publishing overall command progress; - emitting exactly one authoritative completion notification; - enriching the completion outcome with execution context, such as: - failed devices, - aggregated health state, - normalized failure causes. By separating execution control from execution observation, the Task Tracker ensures consistent, deterministic reporting of command outcomes, even in the presence of partial failures or subsystem-specific error conditions.