Forge
markdowndeeb25a2
1# Готовность окружения IDE — glance (v1, чертёж)
2
3**Статус:** живой чертёж (не ADR). **ADR решения:** [0023](../adr/0023-environment-readiness-glance.md). **Назначение:** детализировать канал **отдельно от [IDE Health](workspace-health-implementation-map-v1.md)** (build/tests/debug/git).
4
5**Связь:** [ADR 0021 §1.2](../adr/0021-pfd-mfd-cockpit-attention-model.md) — слот презентации vs канал содержимого; «статус окружения» в таблице каналов — **про этот смысл**, не про `IdeHealth*`.
6
7---
8
9## 1. Проблема и цель UX
10
11Пользователю нужно **быстро вспомнить или проверить**, готово ли окружение к работе: жив ли LSP, доступны ли нужные исполняемые файлы, заданы ли **релевантные** переменные — **без ухода в настройки**, если цель не редактирование, а **осмотр** (периферийное внимание, ADR 0021).
12
13Это **не** замена экрана настроек: редактирование путей, провайдеров и секретов остаётся в **Settings**.
14
15---
16
17## 2. Границы канала
18
19| В канал входит | В канал не входит |
20|------------------|-------------------|
21| Сигналы, которые IDE **уже использует** для своих функций (LSP, MCP, выбранный транспорт чата и т.д.) | Полный дамп переменных окружения процесса |
22| Проверка **необходимых для IDE** исполняемых файлов: явный путь из настроек или разрешение по **PATH** (Windows) / **PATH** и аналоги на Linux | Список «всех программ на диске» |
23| Итоговые статусы: ok / предупреждение / недоступно + **краткая** подсказка («добавьте в PATH», «укажите exe в настройках») | Хранение секретов в открытом виде на этом экране (ключи API — маскировать или не показывать) |
24| Ссылка «Открыть настройки» на релевантную секцию | Дублирование длинных форм настроек |
25
26**Переменные окружения:** только те имена, которые **Cascade IDE реально читает** для работы фич (или явно документированы как «нужны для сценария X»). Не «все `FOO=*` из среды». Если проверка — «нужный инструмент доступен», предпочтительно **проверка исполняемого файла** (и при необходимости PATH), а не перечисление всего `environ`.
27
28---
29
30## 3. Кандидаты сигналов v1 (репозиторий)
31
32Ниже — ориентир для первой итерации; состав уточняется по мере появления API снимка.
33
34| Область | Что показывать (пример) | Источник истины (идея) |
35|---------|-------------------------|-------------------------|
36| C# LSP | Провайдер, процесс активен / ошибка старта | `CSharpLspDiagnosticsHost` / настройки `CascadeIdeSettings` |
37| Markdown LSP | Вкл/выкл, Marksman найден по пути или PATH | Настройки + проверка запуска |
38| Внешние MCP | Подключены ли сконфигурированные серверы (агрегат) | `McpClientService` / health |
39| Чат / модель | Доступность выбранного провайдера (без ключа в явном виде) | Существующие проверки подключения |
40| Инструменты сборки | `dotnet` в PATH при необходимости сценариям IDE | Запуск/which, не весь PATH |
41
42Детализация полей — в задаче реализации; здесь зафиксирован **принцип отбора**.
43
44---
45
46## 4. Слой представления (где рисовать)
47
48Варианты, согласуемые с ADR 0021 (один канал — разные слоты):
49
50- **полноэкранная страница в регионе MFD** (оверлей поверх вкладок нижней панели), без отдельной вкладки — переключение осознанно, в т.ч. через **палитру команд** (one page at a time);
51- компактные **бейджи PFD** + раскрытие (позже).
52
53Канал **не** смешивается с полосой **`IdeHealthStripView`** и не использует ключи TOML **`ide_health_*`** (они зарезервированы под [IDE Health](../adr/0022-workspace-health-lexicon.md) в `UiModes`).
54
55---
56
57## 5. Реализация
58
59**MVP (код):** `Views/EnvironmentReadinessMfdPageView.axaml` — страница `MfdShellPage.EnvironmentReadiness` в оболочке Mfd (`MfdShellView`, v1 — колонка зоны Mfd); открытие: палитра `show_environment_readiness_page` («Готовность окружения…»), MCP `show_environment_readiness_page`, или `set_mfd_shell_page` с `page=EnvironmentReadiness` (устаревший идентификатор: `set_secondary_shell_page`); закрытие: `close_environment_readiness_page` или кнопка «Другая страница вторичного контура…». Снимок строк: `Models/AnnunciatorLampItem`, сборка — `Features/EnvironmentReadiness/Application/EnvironmentReadinessSnapshotBuilder`, fs/PATH/env — `Features/EnvironmentReadiness/DataAcquisition/`. Тесты: `CascadeIDE.Tests/EnvironmentReadinessSnapshotBuilderTests.cs`.
60
61Расширения (позже): внешние MCP, агрегат чата, дополнительные переменные — только те, что IDE реально читает.
62
63---
64
65## 6. Связанные документы
66
67- [ADR 0021](../adr/0021-pfd-mfd-cockpit-attention-model.md) — модель внимания, каналы vs слоты.
68- [IDE Health — implementation map](workspace-health-implementation-map-v1.md) — **другой** канал (задача в workspace).
69
View only · write via MCP/CIDE