Перейти к содержанию

Готовность окружения 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. Связанные документы