Forge
markdowndeeb25a2
1# Features — вертикальные срезы UI
2
3Соответствует [docs/architecture-policy.md](../docs/architecture-policy.md): каждая **крупная панель** или самостоятельный блок — отдельный `*ViewModel` (и при необходимости модели) в подпапке `Features/<Имя>/`.
4
5**Примеры:**
6
7- **`Git/`** — вкладка Git нижней панели: `GitPanelViewModel.cs`.
8- **`Build/`** — вкладка Build output: `BuildOutputPanelViewModel.cs`.
9- **`Terminal/`** — вкладка Terminal: AvaloniaTerminal + ConPTY/redirected integrated shell (`Features/Terminal/DataAcquisition/*`), `TerminalPanelViewModel.cs`.
10- **`Chat/`** — правая колонка: чат с LLM — `ChatPanelViewModel.cs`.
11- **`Forge/`** — **vertical client** agent-forge: overlay slash catalog, execute, Lens/CRS, MCP ([ADR 0161](../docs/adr/0161-cide-spine-and-forge-vertical-feature-module.md)); код пока частично в `Services/Forge/` и `WorkspaceNavigation` — см. [Forge/README](Forge/README.md).
12- **`Instrumentation/`** — трасса агента, таймлайн событий, очередь задач Power, лог тестов, стек/переменные MCP-отладки — `InstrumentationPanelViewModel.cs`.
13
14Корневой неймспейс: `CascadeIDE.Features.<Имя>`.
15
16## `UiChrome` и цепочка ADR 0036
17
18Норматив: [ADR 0036](../docs/adr/0036-cds-channel-compositor-surface-pipeline.md) (канал → CDS → композитор → поверхность). Реализация слоёв вынесена в **`Cockpit/`** (неймспейсы `CascadeIDE.Cockpit.*`), чтобы не смешивать с пресетами/режимами (`UiMode*`, capabilities) в `Features/UiChrome/`.
19
20| Слой | Папка / неймспейс | Примеры типов |
21|------|-------------------|----------------|
22| Канал (п.1) | `Cockpit/Channels/**` | `WorkspaceHealthInputSnapshot`, `WorkspaceHealthProvider`, `IEicasFeed` |
23| CDS (п.2) | `Cockpit/Cds/` (`CascadeIDE.Cockpit.Cds`) | `CockpitSurfaceState`, `CockpitSurfaceSnapshotBuilder`, `AttentionLayoutSurfaceKind` |
24| Композитор (п.3) | `Cockpit/Composition/**` | `WorkspaceHealthSurfaceCompositor`, `EicasMessageSorter` |
25| Поверхность (п.4) | `Views/*`, `Cockpit/Surface/UiLayoutSnapshot` | дерево контролов, MCP `ide_get_ui_layout` |
26
27**Editor** (`Features/Editor/`) — субстрат ADR 0103: `IEditorSurfaceAdapter`, `EditorStabilizedInputThrottler`; см. [Editor/README](Editor/README.md).
28
View only · write via MCP/CIDE