v0.9.1
Unica v0.9.1
v0.9.1 — крупное обновление Unica: безопасное точечное изменение BSL,
поддержка удаления элементов форм, единый профиль выгрузки 1С 8.3.27,
восстановление RLM-индекса и обновлённые правила проектирования форм и
метаданных.
В релиз вошли 32 pull request из диапазона v0.8.1..v0.9.1.
Главное
- Новый
unica.code.patchвыполняет безопасную точечную вставку в существующий
BSL-модуль: строгий selector по методу или anchor, структурная проверка через
bsl-analyzer, dry-run, защита от stale preimage и типизированный результат
(#162). unica.form.editполучил строгийremoveElements: удаляются точные поддеревья
элементов и связанные companion-узлы, а висячие ссылки и конфликтующие цели
блокируются до публикации
(#195).- Все поддерживаемые XML-мутаторы переведены на фиксированный профиль
1С 8.3.27 / формат выгрузки 2.20 с fail-closed проверкой владельца и
версии исходников
(#188). - Runtime умеет ограниченно запускать внешнюю EPF с ожиданием завершения,
timeout, раздельными stdout/stderr и фактическим exit code
(#189). unica.meta.editподдерживаетLineNumberLengthдля табличных частей с
проверкой диапазона и эффективной версии совместимости
(#194,
#196).
Изменение публичного API
Домен СКД переименован в официальный английский термин DCS:
unica.skd.*→unica.dcs.*;- навыки
skd-*→dcs-*.
Это намеренное несовместимое изменение до 1.0: старые aliases не сохранены.
Имена платформенных XML-сущностей, включая DataCompositionSchema, не
менялись. Подробная таблица миграции включена в README плагина
(#169).
Формы и метаданные
- В
form-patternsдобавлены адаптированные UX-правила из 1C Design Guide:
поля, флажки, переключатели, кнопки, таблицы, диалоги, подсказки и
условное оформление
(#182). - Добавлен справочник соглашений по метаданным, а
unica.meta.validateтеперь
учитывает владельца конфигурации, зарегистрированные языки и приоритет
ListPresentationнадSynonym
(#184). - Внутренний publisher одного файла получил CAS по точному preimage, общие
блокировки, atomic replace/no-clobber, сохранение portable permissions и
fail-closed защиту от symlink, hard link и read-only целей
(#163).
Исправления и устойчивость
- RLM после
stale (content)выполняет один полный rebuild и возвращает
реальное terminal-состояние вместо бесконечногоindex building
(#190). - Публичная схема
unica.code.diagnosticsснова показываетcwd,
sourceDir,path,codesи timeout, поэтому диагностику можно привязать к
выбранному worktree
(#166). - Исправлена привязка внешней EPF без
CONFIGURATION, а выгрузка исходников
защищена от per-infobase CDFI state
(#146,
#150). - Development installer корректно определяет Windows x64 из Git Bash
(#172).
Анализатор, toolchain и CI
- bsl-analyzer обновлён до
v0.2.62; в bundled analyzer вошла поддержка анализа
расширений. Dependency-aware topology пока не включена и остаётся отдельной
работой
(#207). - v8-runner обновлён до закреплённого nightly build
(#187). - Внешние инструменты теперь поставляются из
unica-toolchain; RLM использует
готовые release assets, а проверки больше не привязаны к захардкоженным тегам
(#149,
#151,
#152). - CI получил единый required gate, маршрутизацию проверок по затронутому
контуру и платформе, кэширование сборок и более узкий поток артефактов
(#156,
#160,
#164). - Donor parity теперь хранит проверенные отношения для каждого кейса и
поддерживает двухфазное обновление без публикации donor scripts в плагине
(#197).
Обновление
Для канонической установки из публичного marketplace:
codex plugin marketplace upgrade unica
codex plugin remove unica@unica
codex plugin add unica@unicaЕсли установка локальная, дублированная или создана до публичного marketplace,
сначала используйте неизменяемый migration-мост v0.7.8.
Проверка
Релиз прошёл Python contract/dev suites, Rust fmt/clippy/tests, сборку runtime
для macOS, Linux и Windows, MCP/bootstrap smoke-тесты и повторную проверку
скачанных опубликованных артефактов.
Workflow: https://github.com/IngvarConsulting/unica/actions/runs/30117190305
Благодарности
Спасибо @korolevpavel за фундамент
безопасных изменений исходников: single-file publisher с атомарной публикацией
и CAS, а также первый публичный unica.code.patch со строгими selectors,
структурной проверкой BSL, dry-run и типизированным результатом
(#163,
#162).
Спасибо @Agrajaga за исправление публичного
контракта unica.code.diagnostics для worktree/sourceDir и глубокое исправление
RLM recovery: точные terminal-состояния, восстановление после stale content и
безопасное владение lock
(#166,
#190).
Спасибо @Oxotka за адаптацию практических UX-правил
1C Design Guide для навыков форм и за соглашения по метаданным, на основе
которых появилась owner-aware и language-aware проверка представлений
(#182,
#184).
Спасибо @zeegin за интеграцию релиза и основную
реализацию профиля 1С 8.3.27, перехода SKD → DCS, bounded EPF runtime,
безопасного удаления элементов форм, совместимости LineNumberLength,
обновления analyzer/toolchain, CI и release infrastructure.
Полный список изменений:
v0.8.1...v0.9.1