Forge
markdowndeeb25a2
1# Cascade IDE — макет главного окна (v1)
2
3Описание раскладки главного окна для согласования с MCP и онбординга. **Эталон —** `Views/MainWindow.axaml` и связанные view (в т.ч. `DocumentsDockView`, `MfdShellView`).
4
5**Режим UI:** в поставке один id в **`UiModes/index.toml`** — **Flight** (полигон PFD · Forward · MFD). Отдельных продуктовых пресетов **Focus / Balanced / Power** и переключателя «режим интерфейса» в меню **нет**. Семья **`UiModeFamily.Flight`** и capabilities — в TOML режима; контракт — **[ADR 0010](../adr/0010-ui-modes-toml-configuration.md)**, обзор — **[ui-modes-overview-v1.md](ui-modes-overview-v1.md)**, внимание и зоны — **[ADR 0021](../adr/0021-pfd-mfd-cockpit-attention-model.md)**.
6
7---
8
9## 1. Общая структура
10
11Окно: **Grid** (корень) → внутри **DockPanel** — сверху **Menu**, ниже **`MainGrid`** (одна сетка рабочей области).
12
13**Размер по умолчанию:** 1000×600. Ресайз по границе окна и **сплиттерам** между колонками PFD / Forward / MFD.
14
15Поверх — **CommandPalette** (`ZIndex` 5000), при необходимости оверлеи зон/подсветки.
16
17---
18
19## 2. Меню (`Menu`, DockPanel.Top)
20
21Актуальный состав (см. код):
22
23- **Файл:** открыть решение / папку / файл, экспорт Markdown, выход.
24- **Отладка:** шаг F5/старт, стартовый проект, attach, остановка, шаги (over/into/out).
25- **Вид:** палитра команд; чекбоксы видимости **PFD** (обозреватель / карта — по раскладке), **вывод сборки** (страница MFD), **MFD** (колонка), **терминал** (страница MFD), **Git** (страница MFD), **док инструментирования**; подменю **Тема**; язык интерфейса; Markdown preview в MFD; превью в отдельном окне.
26- **Настройки:** параметры AI и чата.
27- **Справка:** о программе.
28
29**MCP-баннер:** `McpBannerView` в строке 0 `MainGrid` (не в меню), если IDE в режиме MCP-сервера.
30
31---
32
33## 3. `MainGrid` — сетка
34
35**Строки (RowDefinitions):** три строки — `Auto`, `Auto`, `*`.
36
37| Row | Содержимое |
38| --- | --- |
39| 0 | `McpBannerView` (при `IsMcpServerMode`) |
40| 1 | **`TaskCockpitView`** — полоса задач, CascadeChord, быстрые действия (по capabilities) |
41| 2 | **Три зоны внимания:** PFD · Forward · MFD (см. ниже) |
42
43**Колонки (ColumnDefinitions):** `220, 4, *, 4, 340` (базовые ширины; PFD и MFD могут схлопываться по привязкам).
44
45| Col | Содержимое |
46| --- | --- |
47| 0 | **PFD** — `AttentionZoneContainer Zone="Pfd"`: обозреватель решения и/или карта навигации workspace (по runtime/placement), опциональный mount инструмента. |
48| 1 | `GridSplitter` (видимость/блокировка с VM) |
49| 2 | **Forward** — `AttentionZoneContainer Zone="Forward"`: **`DocumentsDockView`** (Avalonia Dock — вкладки документов, редактор). |
50| 3 | `GridSplitter` |
51| 4 | **MFD** — `AttentionZoneContainer Zone="Mfd"`: **`MfdShellView`** (вторичный контур: полоса сверху + стек **страниц**). |
52
53Оверлей геометрии зон (отладка раскладки): `SkiaZoneGeometryOverlayPfd` / `Forward` / `Mfd`. Подсветка агента: `AgentHighlightLayer` на весь `MainGrid`.
54
55`UiModeBloomOverlay` — декоративный bloom по настройкам хрома (семья/тема из TOML).
56
57---
58
59## 4. Зона Forward (`DocumentsDockView`)
60
61- **HUD** (стр. [ADR 0021](../adr/0021-pfd-mfd-cockpit-attention-model.md) §9): при непустом баннере — полоса над доком.
62- **Док-менеджер:** `DockControl` — factory/layout из ViewModel, группы редакторов, **без** привязки «журнал сборки внизу колонки» к старому макету: длинные логи — на **страницах MFD** (сборка, тесты, терминал, …).
63
64Имена для MCP: по возможности совпадают с `Name` в XAML док-контролов (см. `DocumentsDockView` и фабрику доков).
65
66---
67
68## 5. Зона MFD (`MfdShellView` + `MfdShellPageStack`)
69
70Сверху вниз внутри колонки MFD:
71
721. **`WorkspaceChromeBandView`** — полоса в духе EICAS / IDE Health (видимость и содержимое — по TOML и VM).
732. **`MfdContourStackHost`** — `Border`-хост со **`MfdShellPageStack`**: одна **активная страница** (`CurrentMfdShellPage`), например:
74 - Workspace Health (выделенная страница), обозреватель в MFD, related files, превью Markdown, чат, настройки AI, **терминал**, **журнал сборки**, Problems, **Git**, события, тесты, гипотезы, стек отладки, …
75
76Переключение страниц — из VM/команд/меню (не отдельный `TabControl` нижней панели **главного** окна: его в текущем `MainWindow` **нет**).
77
78**Терминал** на странице MFD — заглушка «одна команда → вывод»; не Integrated Shell — **[mfd-terminal-stub-vs-integrated-shell-v1.md](mfd-terminal-stub-vs-integrated-shell-v1.md)**.
79
80---
81
82## 6. Ключевые контролы и MCP
83
84| Зона / смысл | Имя / примечание |
85| --- | --- |
86| Корень окна | `RootWindow` |
87| Сетка | `MainGrid` |
88| Чат (страница MFD) | внутри `ChatMfdPageView` / стека |
89| Ввод в чат | `ChatInputBox` (на странице чата) |
90| Терминал (консоль) | `TerminalView` (`TerminalMfdPageView`, AvaloniaTerminal) |
91| Подсветка агента | `AgentHighlightOverlay` на `AgentHighlightLayer` |
92
93`ide_set_panel_size` и аналоги — по актуальному контракту MCP; геометрия сейчас опирается на **сплиттеры трёх колонок** и настройки из `workspace.toml` / capabilities.
94
95---
96
97## 7. Оверлей подсветки
98
99`AgentHighlightLayer` (Canvas, `ZIndex` 1000) поверх сетки; `AgentHighlightOverlay` — рамка вокруг целевого контрола (`ide_highlight_control`). `IsHitTestVisible=false`, чтобы не перехватывать клики.
100
101---
102
103## 8. Исторический контекст (не эталон раскладки)
104
105Ранние макеты с **нижней панелью** главного окна (вкладки Terminal / Build / … в одном `BottomPanelView`) и пресетами **Focus / Balanced / Power** относятся к **старой** топологии. Текущий **Flight** — **PFD | Forward | MFD** в одной сетке, длинные потоки — **страницы MFD**. Уточнения по старым PNG — `concept-to-implementation-map-v1.md`, `concept-generated/`; визуал концептов **не** обязан совпадать с кодом.
106
107---
108
109## 9. Troubleshooting (симптомы раскладки)
110
111Операционная диагностика («узкая полоса», пустота по бокам, неверный монитор, лишние колонки PFD/MFD): KB **`playbook-layout-presentation-intercom-troubleshooting-v1.md`** (указатель в репо: [playbook-layout-presentation-intercom-troubleshooting-v1.md](playbook-layout-presentation-intercom-troubleshooting-v1.md)). Не путать с дизайном ленты Intercom (`docs/design/intercom-design-hub-v1.md`).
112
113---
114
115*Версия документа: 2.0. Соответствует `MainWindow.axaml` и `UiModes/index.toml` (только **Flight**). При смене разметки — обновить этот файл.*
116
View only · write via MCP/CIDE