| 1 | # Канал IDE Health — слой **CCU** (cockpit compute unit) |
| 2 | |
| 3 | Папка на диске: `Cockpit/Channels/IdeHealth/`. Контракт канала и сегментов остаётся в **`CascadeIDE.Cockpit.Channels.WorkspaceHealth`** (историческое имя), а CCU вынесены в **`CascadeIDE.Cockpit.ComputingUnits.IdeHealth`** — **не** смешивать это с продуктовым «Workspace Health» (см. [ADR 0089](../../../docs/adr/0089-ide-omnibus-naming-and-ide-health-channel-rename.md)). |
| 4 | |
| 5 | ## Связь с [ADR 0097](../../../docs/adr/0097-cockpit-compute-units-transport-to-channel-dto.md) |
| 6 | |
| 7 | **CCU** — вычислительный блок между **транспортом** (например [ADR 0094](../../../docs/adr/0094-ingestion-bus-afdx-analogy-and-threading-channels.md)) и **DTO/снимком канала** кабины. Для **IDE Health** в коде уже выделена эталонная цепочка (чертёж [`workspace-health-implementation-map-v1.md`](../../../docs/design/workspace-health-implementation-map-v1.md)): |
| 8 | |
| 9 | | Роль (0097) | Тип(ы) | Примечание | |
| 10 | |-------------|--------|------------| |
| 11 | | Нормализованные **входы** (граница снимка) | `IdeHealthInputSnapshot` (`ICockpitComputeUnitPayload`), `IdeHealthSegmentInput` | Один снимок на четыре источника: build, tests, debug, git + `Stratum` (`workspace`/`solution`/`ide`, ADR 0095), `Scope` (`solution`/`project`) и `ProjectPath?` для project-level faceting. | |
| 12 | | **Свёртка в строки** (чистая логика, тесты без UI) | `IdeHealthFormattingUnit` (`ICockpitComputeUnit`, `Default`) | Не VM, не DAP-объекты в глубине — только скаляры. | |
| 13 | | **Сбор снимка из окружения** | `IdeHealthSnapshotUnit` : `IIdeHealthChannel` | Делегаты и DAP подставляются с `MainWindowViewModel`; канал **не** тянет `UiChrome` внутрь. | |
| 14 | | **Композиция поверхности канала** (порядок сегментов) | `IdeHealthSurfaceCompositor` в `Cockpit/Composition/IdeHealth/` | Build → Tests → Debug → Git; не Avalonia. | |
| 15 | |
| 16 | **Не CCU:** шина [0094](../../../docs/adr/0094-ingestion-bus-afdx-analogy-and-threading-channels.md), CDS-маршрутизация [0036](../../../docs/adr/0036-cds-channel-compositor-surface-pipeline.md), сами `Views/*Strip*`. |
| 17 | |
| 18 | **Дальше по 0095:** при эволюции контрактов — поле **`stratum`** (`workspace` / `solution` / `ide`) и/или **отдельные** юниты (рабочие имена WSCU/SSCU/ISCU в [0095](../../../docs/adr/0095-workspace-solution-ide-health-stratification.md#adr0095-stratum-ccu-examples)) — **без** обязательного переименования `IdeHealth*` в `*ComputeUnit` в одном PR. |
| 19 | |