Главное: 1С:Напарник и EDT-MCP теперь работают в обе стороны
Оба плагина живут в одной JVM EDT, но друг друга не видели. Теперь видят — через
внутренний OSGi-сервис, без сети и без порта. — @DitriXNew, #414
- Напарник вызывает наши тулы. Из его агентского чата и из его тул-цикла доступен
весь каталог EDT-MCP: метаданные, модули BSL, формы, маркеры, Git, тесты. Один живой
прогон дал 19 вызовов наших тулов на один вопрос. - Мы вызываем Напарника — новый тул
ask_workmate. Работает фоном: старт возвращает
jobId, дальше опрос, так что долгий разговор с облаком не держит MCP-запрос открытым.
Три режима: вернуть ответ текстом, передать вопрос в агентский чат, вызвать
собственный тул Напарника напрямую. ask_workmateвыключен по умолчанию. Он обращается к внешнему сервису и его
тул-цикл может менять конфигурацию, поэтому включать его нужно осознанно —
Настройки → EDT MCP Server → список тулов.- Индикатор в статус-баре теперь считает и вызовы, пришедшие через мост, а не только
по HTTP.
Требуется совместимая установка 1С:Напарника в том же EDT. Если его нет, EDT-MCP
работает ровно как раньше — интеграция ищется в рантайме и её отсутствие ничего не
ломает.
Новое
run_yaxunit_tests: фильтр по тегам (#409). Параметрtagsуходит в
filter.tagsфреймворка: значения внутри списка объединяются по ИЛИ, тег
наследуется от модуля и набора к тесту, регистр не важен. Исключающего синтаксиса
(-tag) у YAXUnit нет — это проверено по исходникам, поэтому свой мы не выдумывали.
— @Jimmo910, #410
Исправления
write_module_sourceбольше не блокирует модуль из-за однострочного условия
(#397, #109). ОдинЕсли … Тогда … КонецЕсли;в одной строке делал недоступной для
записи всю остальную часть модуля, и обойти это можно было только отключив проверку
синтаксиса целиком. Проверка теперь разбирает все ключевые слова строки в порядке
появления, в обоих диалектах, не путаясь в директивах препроцессора и именах членов
после точки. — @DitriXNew, #403- Запись метаданных дожидается своего экспорта на диск (#406). Раньше инструмент
отвечал «готово», пока файлы ещё стояли в очереди производных данных EDT: агент,
сделавший следомgit commit, коммитил дерево, гдеConfiguration.mdoссылается на
объект, чьего файла уже нет. — @Jimmo910, #407 delete_metadataне отдаёт наружу NPE «model is null» (#402). Причина была не в
модели целевого проекта, а в модели зависимого — расширения, ещё не поднятого в момент
вызова. Операция деструктивная и уже прошла гейт согласия, так что вызывающий получал
стектрейс, не понимая, удалено что-нибудь или нет. — @DitriXNew, #405rename_metadata_object:disableIndicesгасит только обещанное (#393, #394), а
отчёт называет фактическое число погашенных точек, а не запрошенное — раньше «прошу
погасить 3» и «погашено 3» были одной и той же фразой. — @Jimmo910, #399create_infobaseотчитывается о том, что установил опрос (#412), а не о том, что
было задумано: три состояния вместо безусловного «создана и привязана к проекту»,
после которого следующий вызов отвечал «у проекта нет информационных баз».
— @Jimmo910, #415
What's Changed
- rename_metadata_object: disableIndices гасит только то, что обещано, и отчёт называет настоящее число (#393, #394) by @Jimmo910 in #399
- Однострочный блок BSL больше не блокирует запись модуля (#397, #109) by @DitriXNew in #403
- delete_metadata: NPE «model is null» больше не доходит до вызывающего (#402) by @DitriXNew in #405
- Запись метаданных дожидается своего экспорта на диск, прежде чем отвечать (#406) by @Jimmo910 in #407
- run_yaxunit_tests: filter tests by YAXUnit tag by @Jimmo910 in #410
- Двусторонняя интеграция с 1С:Напарником: он работает нашими тулами, мы — его (#413) by @DitriXNew in #414
- create_infobase: отчёт следует тому, что установил опрос, а не тому, что было запрошено (#412) by @Jimmo910 in #415
Full Changelog: v2.11.1...v2.12.1