Skip to content

v0.7.5

Choose a tag to compare

@github-actions github-actions released this 19 Jul 06:49
· 1261 commits to main since this release
e2298ba

Unica v0.7.5 — стабильный релиз

v0.7.5 — первый стабильный выпуск линейки 0.7 и следующий стабильный релиз после v0.6.1.

Главный результат — Unica теперь развёртывается через публичный thin Git marketplace с единым идентификатором unica@unica. Переходные v0.7.0–v0.7.4 использовались для технической отладки нового release/migration-контура и не считаются стабильными.

Главное

  • Создан публичный IngvarConsulting/unica-marketplace и атомарный двухфазный процесс staging → signed tag → catalog promotion.
  • Пользовательская установка больше не создаёт локальный release marketplace и не регистрирует unica@unica-local: стабильная идентичность — marketplace unica, plugin unica@unica, MCP server unica.
  • Thin plugin содержит skills, metadata и native bootstrap, а не runtime всех платформ. При первом MCP-запуске скачивается только asset текущей ОС, закреплённый за v0.7.5 и проверяемый по archive/per-file SHA-256.
  • Для установки требуются совместимый Codex CLI и Git; на Windows — Git for Windows. Node.js, Python, curl/wget, jq, tar и PowerShell 7 пользователю не требуются.
  • Реализована транзакционная миграция существующих v0.6.1/legacy-установок с точным preflight, приватным backup, rollback и идемпотентным повторным запуском.
  • Добавлено создание внешних обработок и отчётов EPF/ERF через публичные MCP-инструменты unica.epf.init и unica.erf.init с формой, ObjectModule, dry-run, no-clobber и сборкой артефакта.
  • Добавлен durable lifecycle для долгих runtime jobs: start/status/wait/logs/cancel/list, сохранение состояния после reconnect и безопасное завершение дерева процессов.
  • Существенно укреплены формы, metadata writers, persistent diagnostics, workspace-service, process runner и большие code-search/diagnostics вызовы.

Установка

codex plugin marketplace add IngvarConsulting/unica-marketplace --ref main
codex plugin add unica@unica

После установки откройте новую задачу или сессию Codex. Первый запуск MCP скачает и проверит runtime текущей платформы.

На Windows переходный installer запускается через install-unica.ps1. Сам MCP package использует обязательный Git: command-scoped Git alias вызывает sh из Git for Windows, launch.sh выбирает native win-x64/unica-bootstrap.exe, после чего запускается unica.exe.

Обновление с предыдущей версии

codex plugin marketplace upgrade unica
codex plugin remove unica@unica
codex plugin add unica@unica

Для старой локальной установки можно запустить опубликованный install-unica.sh или install-unica.ps1. Перед изменениями migration engine сохраняет точный config и найденные legacy marketplace/cache paths в приватный каталог $CODEX_HOME/unica/migration-backups/. При ошибке восстанавливаются config, permissions, marketplace и plugin cache; после успеха повторный запуск не создаёт дубликатов и работает как явное обновление.

Новые возможности и улучшения

Внешние обработки и отчёты

  • PR #82, issue #49: typed MCP-инструменты unica.epf.init и unica.erf.init, canonical platform XML, ObjectModule, управляемая форма, DefaultForm, dry-run и безопасная публикация.
  • EPF и ERF проверены на изолированной файловой ИБ и собраны через unica.runtime.execute operation=make.

Metadata, Configuration.xml и формы

  • PR #68, issue #67: comment записывается в канонический object-level Comment без дублей.
  • PR #70, issue #69: form.edit больше не создаёт невалидный XML при добавлении элемента в пустую группу с ExtendedTooltip.
  • PR #72, issue #71: восстановлена запись Columns для реквизитов формы типа ValueTable, добавлена проверка дублей колонок.
  • PR #81, issue #78: единый registry из 45 metadata kinds для cf.info/cf.edit/cf.validate, поддержка Bot, атомарный batch-preflight.
  • PR #84: root-aware canonical registrar для meta.compile, role.compile и subsystem.compile, общий dry-run/apply plan, failure-atomic publication и точный rollback. Связанная issue #75 остаётся открытой, поэтому notes фиксируют именно влитый scope PR.
  • PR #85 и PR #127, issue #77: единая платформенная матрица событий для form.edit/form.validate/form.compile, контекстные проверки, byte-stable dry-run и расширенные register record-set families.
  • PR #116, issue #114: validator принимает платформенно допустимый HierarchyOfItems.
  • PR #118, issue #113: meta.edit modify-attribute поддерживает typed fillValue.

Runtime jobs, анализ кода и workspace-service

  • PR #88: добавлены unica.runtime.job.start/status/wait/logs/cancel/list, durable cache state, redacted logs, lost-state и защита от конфликтующих jobs. Связанная issue #80 остаётся открытой; в релиз вошёл фактический scope PR.
  • PR #93, issues #91 и #92: .build больше не сбрасывает persistent BSL session, initial reload доходит до ready, tool-level errors корректно инвалидируют session.
  • PR #99, issue #89: единый source root для project map/analyzer/RLM/cache, cancellable workspace-service, отдельный control path, bounded I/O и корректное завершение process group/Windows Job Object.
  • PR #119, issue #107: один ограниченный reconnect после transport reset workspace-service.
  • PR #120, issue #106: process runner завершает descendant process group до ожидания pipe-drain.
  • PR #121, issue #105: большие stdout/stderr дренируются конкурентно и не блокируют долгий analyzer process.
  • PR #122, issue #104: code.diagnostics analyze получил явный bounded timeout.
  • PR #124, issue #97: большие code.grep ответы ограничены глобальным limit/process budget, timeout всегда возвращается как ошибка с диагностическим partial output.
  • PR #125, issue #96: EOF/header timeout остаётся connection-local, handler errors имеют стабильную безопасную диагностику и не завершают workspace-service.

Публичный marketplace и release infrastructure

  • PR #128, issue #123: public thin marketplace, native bootstrap для трёх платформ, pinned runtime manifest, SHA-256 verification, Git-only acquisition и двухфазная публикация.
  • PR #129: сохранение dotfiles thin package и исправление Windows MCP startup stack.
  • PR #130: Git authentication для cross-repository staging/promotion.
  • PR #131: исправление Windows bootstrap stack и полный Node-free thin bootstrap gate на трёх ОС.
  • PR #132: обнаружение orphaned legacy config/cache, точный backup, post-verification cleanup, rollback и идемпотентность миграции.
  • PR #133: network-free Windows UNC test и корректный MCP assessment lifecycle без преждевременного EOF.
  • PR #134: published-runtime gate синхронизирован с реальным сообщением native bootstrap.

В публичный marketplace также вошли:

  • marketplace PR #3 и #4: staging/promotion технического v0.7.2 для проверки upgrade path;
  • marketplace PR #5: отдельные staged-package, fresh-install и previous-stable update matrices без Node в consumer PATH;
  • marketplace PR #7: verifier разрешает staged package быть новее stable catalog, но запрещает rollback;
  • marketplace PR #6: staging immutable package v0.7.5;
  • marketplace PR #8: атомарное переключение stable catalog на v0.7.5.

Всего в диапазоне v0.6.1..v0.7.5 — 26 merged PR в source repository и 6 merged PR в marketplace repository. Закрытые как NOT_PLANNED задачи незамерженного code.patch не включены в список возможностей релиза, поскольку соответствующий public tool не входит в тег v0.7.5.

Проверка опубликованного релиза

  • Signed source tag v0.7.5 указывает на commit e2298baabba582a0ea56be9ca1c37cc18d6fdf00.
  • Source release workflow 29676808984 успешно выполнил source guardrails, Rust tests, build/package трёх target, MCP smoke, публикацию, повторное скачивание и проверку опубликованных bytes.
  • Release содержит install-unica.sh, install-unica.ps1, а также archive + JSON manifest для darwin-arm64, linux-x64 и win-x64.
  • Signed marketplace tag v0.7.5 закрепляет immutable thin package.
  • Marketplace main CI 29677311675 успешно прошёл staged package, public fresh install и explicit update v0.7.2 → v0.7.5 на macOS arm64, Linux x64 и Windows x64.
  • Отдельно проверена реальная миграция опубликованного v0.6.1 → v0.7.5: один unica@unica, один Git marketplace, checksum-pinned runtime, MCP initialize/tools/list, prompt-visible skills, rollback backup и идемпотентный второй запуск.

История технических выпусков 0.7

  • v0.7.0 — первый thin-marketplace contour; staging остановлен Windows MCP stack overflow.
  • v0.7.1 — Windows MCP runtime исправлен; staging обнаружил stack overflow отдельного bootstrap.
  • v0.7.2 — оба Windows entrypoint исправлены; использовался как технический rollout/upgrade candidate.
  • v0.7.3 — подписанный технический тег без GitHub Release: workflow остановил синтетический UNC test.
  • v0.7.4 — runtime assets опубликованы, но stable promotion остановлен ложным published-smoke marker.
  • v0.7.5 — исправленный и полностью проверенный stable release.

Теги и опубликованные assets технических выпусков не переписывались: каждое исправление получало новую версию.

Благодарности

Спасибо @Sejix за точные воспроизведения и исправления канонического Comment, XML пустых групп формы и колонок ValueTable — эти изменения закрыли реальные writer/parity дефекты, которые легко пропустить синтетическими тестами.

Спасибо @korolevpavel за огромный пласт работы: единый metadata registry, EPF/ERF scaffold, canonical registrar, матрицу событий форм, durable runtime jobs, стабилизацию persistent BSL diagnostics и систематические issue по process/workspace reliability. Отдельная благодарность за platform-проверки и подробные доказательства по каждому изменению.

Спасибо @Agrajaga за глубокое расследование и исправление workspace-service/source-root/cancellation в issue #89 и PR #99, а также за практические отчёты по платформенным metadata-значениям HierarchyOfItems и fillValue.

Спасибо @zeegin за интеграцию изменений, root-cause исправления process/workspace boundary, архитектуру public marketplace, native bootstrap и migration transaction, release automation, cross-repository promotion и доведение всей цепочки до опубликованной проверки на трёх ОС.

И спасибо всем, кто запускал промежуточные 0.7.0–0.7.4, присылал логи и позволил остановить проблемные кандидаты до признания их стабильными. Благодаря этому v0.7.5 опирается не на формальную сборку, а на проверенный пользовательский путь установки, обновления и миграции.

Политика поддержки legacy-миграции

Прямой переход с прежних локальных и unica-local установок поддерживается только в линейке 0.x. Последний стабильный выпуск 0.x будет переходным мостом: перед обновлением до 1.0 старую non-marketplace установку необходимо сначала мигрировать на него, после чего использовать обычное обновление marketplace.

Начиная с 1.0 код прямой legacy-миграции будет удалён. Это не затрагивает обычную установку и обновление уже зарегистрированной marketplace-версии. Работа отслеживается в issue #135.

Уточнение по регрессии миграции #90 — 19 июля 2026

После публикации выполнен расширенный разовый прогон перехода на v0.7.5: 11 реально доступных выпущенных состояний успешно прошли стандартную миграцию на macOS arm64, Linux x64 и Windows x64 — 33 успешных сценария из 33.

Точная дублированная конфигурация из issue #90 отдельно воспроизвела дефект на всех трёх ОС: после удаления старой канонической регистрации теряется вложенная таблица [plugins."unica@unica".settings]. Поэтому #90 остаётся открытой, а v0.7.5 нельзя считать исправляющей именно этот частный сценарий. Подробности и ссылки на CI зафиксированы в комментарии к #90 и marketplace PR #9. Опубликованный тег и артефакты v0.7.5 остаются неизменными; исправление должно выйти новой patch-версией.