Skip to content

AI-EDT v0.2.35

Choose a tag to compare

@github-actions github-actions released this 20 Aug 08:53
· 66 commits to main since this release

Исправление, которое нельзя выполнить, теперь так и говорит; справка отвечает по одной операции; найден класс параметров, недостижимых через фасад.

Исправление против действия интерфейса

EDT предлагает на маркере не только правки. Часть вариантов - действия IDE: «Открыть панель структуры документирующего комментария» ничего в исходнике не меняет, а открывает панель. Выполнение такого варианта вне потока отрисовки бросает SWTException: Invalid thread access, и marker_corrections operation=apply отдавал это как The correction failed: Invalid thread access.

Теперь ответ называет, что произошло: вариант является действием интерфейса, выполнить его может только человек в редакторе, ничего не изменено, находка стоит; поле refusedBy несёт тип и сообщение отказавшего исключения. Выполнение в потоке отрисовки решением не является - оно открыло бы панель в редакторе пользователя и не изменило бы файл.

Распознавание идёт по ТИПУ исключения (org.eclipse.swt.*) и только затем по подстроке сообщения: сообщения платформы локализованы.

operation=list больше не утверждает «N findings can be corrected» - формулировка обещала то, чего apply для такого варианта выполнить не может.

Справка по одной операции

edit_metadata operation=help topic=<имя операции> отвечает параметрами этой операции:

Операция Параметры
create_object dryRun, name, objectType, projectName, synonym
set_role_right cascadeDependencies, dryRun, ownerFqn, projectName, rightName, targetFqn, value

Общая схема фасада перечисляет 113 параметров на каждый запрос.

Карта «операция -> параметры» выведена из исходников для всех 250 операций скриптом scripts/check-operation-params.py и упакована в плагин как ресурс. Способы вывода: делегирование берёт схему делегата плюс чтения переписывателя параметров; ветка, работающая на месте, - свои extract*Argument; ветка, получающая локальные переменные, разрешает их назад через два шага присваивания; крупнейший фасад маршрутизирует реестром обработчиков и разбирается отдельно, включая обработчики-пересыльщики.

Затвор в CI падает на операции, чьи параметры установить не удалось. Три операции с законным нулём перечислены с причиной (обработчик отказывает до чтения - MXL cell API отсутствует), пять инструментов вне охвата названы в отчёте docs/tools/operation-parameters.md.

Параметры, которых клиент не мог обнаружить

Схема - единственное место, откуда клиент узнаёт, что параметр существует. Карта показала 47 параметров, которые обработчики читают, а схемы фасадов не объявляют.

Пять из них - ancestorPath, decisions, decisionsPath, decisionsFrom, intent у insights: compare_three_way не мог объединять через фасад, то есть через ту поверхность, которую показывает пресет по умолчанию. Они объявлены.

Остальные 42 записаны в scripts/unadvertised-parameters.txt как планка, которая может только уменьшаться: затвор падает на новом параметре, а не на унаследованных.

Чего в выпуске нет

Параметры из общей схемы не убраны. Наличие справки по операции этого не делает безопасным: клиент, который справку не спрашивает, составляет вызов только по схеме, и обмен контекста на вызовы, которые нельзя написать, - неверный обмен.

Проверено на стенде

EDT 2026.2.0+289.

Проверка Результат
apply варианта-действия интерфейса отказ объясняет причину, refusedBy: SWTException: Invalid thread access
list на проверках без исправлений «none has a correction ... and this is not a failure»
help topic=create_object 5 параметров
help topic=no_such_thing_at_all отказ перечисляет темы и говорит про имена операций
Именованные темы справки отвечают по-прежнему

Сборка - 1645 тестов, семь затворов.