| 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 | |