Готовность окружения IDE — glance (v1, чертёж)¶
Статус: живой чертёж (не ADR). ADR решения: 0023. Назначение: детализировать канал отдельно от IDE Health (build/tests/debug/git).
Связь: ADR 0021 §1.2 — слот презентации vs канал содержимого; «статус окружения» в таблице каналов — про этот смысл, не про IdeHealth*.
1. Проблема и цель UX¶
Пользователю нужно быстро вспомнить или проверить, готово ли окружение к работе: жив ли LSP, доступны ли нужные исполняемые файлы, заданы ли релевантные переменные — без ухода в настройки, если цель не редактирование, а осмотр (периферийное внимание, ADR 0021).
Это не замена экрана настроек: редактирование путей, провайдеров и секретов остаётся в Settings.
2. Границы канала¶
| В канал входит | В канал не входит |
|---|---|
| Сигналы, которые IDE уже использует для своих функций (LSP, MCP, выбранный транспорт чата и т.д.) | Полный дамп переменных окружения процесса |
| Проверка необходимых для IDE исполняемых файлов: явный путь из настроек или разрешение по PATH (Windows) / PATH и аналоги на Linux | Список «всех программ на диске» |
| Итоговые статусы: ok / предупреждение / недоступно + краткая подсказка («добавьте в PATH», «укажите exe в настройках») | Хранение секретов в открытом виде на этом экране (ключи API — маскировать или не показывать) |
| Ссылка «Открыть настройки» на релевантную секцию | Дублирование длинных форм настроек |
Переменные окружения: только те имена, которые Cascade IDE реально читает для работы фич (или явно документированы как «нужны для сценария X»). Не «все FOO=* из среды». Если проверка — «нужный инструмент доступен», предпочтительно проверка исполняемого файла (и при необходимости PATH), а не перечисление всего environ.
3. Кандидаты сигналов v1 (репозиторий)¶
Ниже — ориентир для первой итерации; состав уточняется по мере появления API снимка.
| Область | Что показывать (пример) | Источник истины (идея) |
|---|---|---|
| C# LSP | Провайдер, процесс активен / ошибка старта | CSharpLspDiagnosticsHost / настройки CascadeIdeSettings |
| Markdown LSP | Вкл/выкл, Marksman найден по пути или PATH | Настройки + проверка запуска |
| Внешние MCP | Подключены ли сконфигурированные серверы (агрегат) | McpClientService / health |
| Чат / модель | Доступность выбранного провайдера (без ключа в явном виде) | Существующие проверки подключения |
| Инструменты сборки | dotnet в PATH при необходимости сценариям IDE |
Запуск/which, не весь PATH |
Детализация полей — в задаче реализации; здесь зафиксирован принцип отбора.
4. Слой представления (где рисовать)¶
Варианты, согласуемые с ADR 0021 (один канал — разные слоты):
- полноэкранная страница в регионе MFD (оверлей поверх вкладок нижней панели), без отдельной вкладки — переключение осознанно, в т.ч. через палитру команд (one page at a time);
- компактные бейджи PFD + раскрытие (позже).
Канал не смешивается с полосой IdeHealthStripView и не использует ключи TOML ide_health_* (они зарезервированы под IDE Health в UiModes).
5. Реализация¶
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.
Расширения (позже): внешние MCP, агрегат чата, дополнительные переменные — только те, что IDE реально читает.
6. Связанные документы¶
- ADR 0021 — модель внимания, каналы vs слоты.
- IDE Health — implementation map — другой канал (задача в workspace).