v0.11.0
Unica v0.11.0
v0.11.0 — крупное обновление надёжности публичного MCP-контракта, безопасной работы с исходниками, диагностики и поддержки Git worktree.
В релиз вошло 26 pull request из диапазона v0.10.0..v0.11.0.
Главное
- Все 7203 опубликованных поля MCP-схемы получили содержательные описания — ранее они были только у трёх. Модели теперь видят различия между
database,infobase,connection, режимамиdryRunи другими неоднозначными аргументами непосредственно вtools/list(#221). - Ручной stdio/JSON-RPC транспорт заменён официальным Rust SDK
rmcp. Сохранены единый серверunica, data-driven схемы инструментов, ограничение параллельных вызовов и доменная отмена операций (#224). - Добавлен точный UTF-8 snapshot исходного текста: BOM, профиль переводов строк и наличие завершающей новой строки.
unica.code.patchиспользует общую EOL-политику и сохраняет байтовую стабильность смешанных переводов строк. Это первый этап общего writer-контракта; формы и metadata writers пока на него не переводились (#250). unica.meta.editполучил полноценныйdryRun: тот же разбор, validation и support guard, что при применении, точный unified diff и отсутствие любых записей в исходники (#230).- Устранены ложные успешные результаты диагностики и устаревшие кеши между ветками linked worktree.
Несовместимые изменения
Read-only инструменты возвращают результат только в ответе MCP
Двенадцать read-only инструментов info и validate больше не принимают OutFile/outFile. unica.mxl.decompile также не принимает OutputPath/outputPath.
Результат необходимо получать из MCP-ответа (stdout или structured data) и при необходимости сохранять самостоятельно. Скрытого compatibility path нет (#223, #225, #244).
Удалён KeepFiles у unica.meta.remove
Аргумент KeepFiles/keepFiles полностью удалён из схемы, реализации и навыка meta-remove. Удаление объекта теперь всегда удаляет его файлы после прохождения проверки ссылок; вызов со старым аргументом завершается явной ошибкой, а не игнорирует его (#252).
В changelog присутствует промежуточная типизация этого флага в #240, но итоговый контракт релиза определяется более поздним #252: в v0.11.0 флага уже нет.
Изменено протокольное поведение MCP
После перехода на rmcp версия протокола согласуется с клиентом, первым полноценным запросом должен быть корректный initialize, а отменённый запрос больше не получает устаревший ответ -32800. Совместимые MCP-клиенты уже соблюдают этот порядок (#224).
Диагностика и workspace
unica.code.diagnosticsбольше не принимаетpathв режиме полного анализа, где он раньше мог быть проигнорирован с последующим сканированием всего source set (#216).- Путь файла обязан находиться внутри разрешённого
sourceDir; блокируются выход через.., внешний абсолютный путь и symlink за пределы исходников (#220). - Незавершённый
mode=analyzeтеперь возвращает retryablediagnostics_pending, а не успешный результат без найденных проблем (#251). unica.code.outlineразличает строящийся индекс и невалидный source root вместо общего успешного ответа (#227).- Workspace discovery останавливается на границе linked worktree, а переключение его
HEADинвалидирует кеши именно этого worktree (#228, #246).
Формы, метаданные и платформа
form.editподдерживает свойства таблицыrepresentation=ListиautoInsertNewRow, проверяя значения до записи канонического XML (#229).meta.validateпредупреждает о подчинённом регистратору регистре сведений, ошибочно включённом в командный интерфейс (#208).role.validateпредупреждает об интерактивных правах на удаление и изменение признака удаления предопределённых данных (#241).- Полная выгрузка конфигурации больше не отклоняет шесть реально встречающихся XML-корней, которые создаёт сама платформа 1С 8.3.27 (#222).
- Вопросы о поведении платформы больше не маршрутизируются в стандарты разработки. При отсутствии официального источника явно сообщается
platform-help contract gap(#232). - Исправлены относительные ссылки на справочные материалы внутри упакованного плагина (#214).
Marketplace и совместимость платформ
- Путь
git-subdirизменён с./plugins/unicaнаplugins/unica. Это исправляет установку в Claude Code на системах с Git 2.34, включая Ubuntu 22.04 (#249). - Support guard использует общий нормализатор identity путей и больше не возвращает Windows extended-length пути вида
\\?\C:\…(#256). - README больше не закрепляет быстро устаревающие номера версий Codex CLI и Claude Code; актуальные требования определяются поддержкой plugin-команд (#253).
Обновление
Codex
codex plugin marketplace upgrade unica
codex plugin remove unica@unica
codex plugin add unica@unicaПосле обновления откройте новую задачу Codex.
Claude Code
claude plugin marketplace update unica
claude plugin update unica@unicaЗатем выполните /reload-plugins.
Версии 0.7.5 и новее обновляются обычным способом. Для установок 0.3.0–0.7.4 сначала используйте замороженный migration-мост v0.7.8.
Проверка
Релиз прошёл:
- Python contract/dev suites, Rust fmt, Clippy и полный workspace test;
- сборку runtime для macOS arm64, Linux x64 и Windows x64;
- MCP/bootstrap smoke-тесты;
- публикацию, повторное скачивание и SHA-256-проверку всех runtime-артефактов;
- fresh install и обновление с предыдущей стабильной версии на всех трёх платформах;
- post-publish проверку публичного marketplace.
Source release workflow и marketplace post-publish CI завершились успешно.
Благодарности
Спасибо @korolevpavel за фундамент точной работы с исходным текстом и EOL, полноценный meta.edit dryRun, исправления диагностики и linked worktree, response-only контракты, свойства таблиц форм и корректную маршрутизацию platform help.
Спасибо @Oxotka за практические проверки метаданных и ролей: предупреждение о подчинённых регистрах в командном интерфейсе и опасных интерактивных правах на предопределённые данные.
Спасибо @zeegin за переход MCP-транспорта на rmcp, полное описание публичных схем, завершение response-only границы, исправления диагностики, full dump и marketplace, Windows-нормализацию путей и доведение выпуска до проверенной публикации.
Полный список изменений:
v0.10.0...v0.11.0