Тема
Рабочая область Problems
Problems — самостоятельная рабочая область конфигуратора для актуальных authoring, build и runtime problems. Она использует Endge.diagnostics.problems напрямую и не создаёт копию registry в Pinia или моделях доменных сущностей.
Сценарий работы
- Нажмите Problems в верхней группе левой панели.
- Обычное Project tree сменится собственным problem-centric деревом.
- Выберите проблемную сущность слева.
- В основной части откроются вкладки
Authoring,BuildиRuntime, если в соответствующих фазах есть problems. - Выберите problem, чтобы увидеть message, code, source range, telemetry correlation и технические attributes.
- Нажмите
Escape, чтобы снова активировать Project и вернуться к обычным вкладкам документов.
Переключение рабочей области не удаляет problems и не закрывает вкладки документов. Оно меняет только левую навигацию и центральное представление.
Иерархия дерева
Problems tree не повторяет папки и порядок исходного проекта. Это отдельная projection текущего problem registry:
text
Критические
PaymentRuntime 1F
Ошибки
FlightTable 3E 1W
ArrivalFilter 1E
Предупреждения
FlightDetails 2WСущность находится под своей максимальной текущей severity и показывается один раз, даже если problems появились в нескольких фазах. В центральной области они разделяются по phase-вкладкам.
Детализация
Для выбранной problem интерфейс показывает:
- severity, code и message;
- phase и время последнего обновления;
sourcePathи range, если producer их передал;traceIdи telemetryrecordIdдля корреляции;- flat technical attributes в сворачиваемой секции.
Кнопка Открыть сущность возвращает к Project workspace и открывает persisted document. Для runtime-only owner эта кнопка не показывается.
Та же детализация в редакторе сущности
Центральная область Problems workspace и вкладка Диагностика в редакторе используют один EntityProblemsPanel. Поэтому message, severity, phase-вкладки, source range, telemetry correlation и empty state выглядят и ведут себя одинаково в обоих местах.
Редактор передаёт панели только entityRef. Панель реактивно читает актуальный набор из Endge.diagnostics.problems и не хранит локальную JSON-копию diagnostics. Если problem registry не содержит записей для сущности, вкладка показывает состояние «Проблем не обнаружено».
В первой версии общая панель подключена к source-first редакторам Composition, Computation, Filter, DataView, Store, Mock, Query и Component SFC. Query и Component SFC получили отдельную вкладку Диагностика вместе с этой унификацией.
Compiler может публиковать generic entity type, например query или filter. Перед открытием configurator разрешает такую ссылку через текущий domain: query превращается в фактический query-rest, query-gql или query-custom, а документ открывается по стабильной identity, а не по transport-specific storage ID. Если исходный документ удалён или для типа не зарегистрирован editor, configurator остаётся в Problems и показывает предупреждение.
Граница с telemetry
Problems отвечает на вопрос «что сломано сейчас». Повторный successful build удаляет исправленные build problems через replace semantics.
Pulse и другие telemetry views отвечают на вопрос «что происходило». Они хранят logs, spans и повторяющиеся runtime occurrences. Поэтому прежний нижний Errors widget удалён: он смешивал replaceable problem state и telemetry history в одной панели.
Keyboard navigation
Escape обрабатывается в bubble phase. Открытый dialog или context menu может первым обработать и отменить событие. После его закрытия следующее нажатие Escape возвращает из Problems к Project. Полный список комбинаций находится в разделе «Горячие клавиши редактора».