v0.7.5
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: стабильная идентичность — marketplaceunica, pluginunica@unica, MCP serverunica. - 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-levelCommentбез дублей. - 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поддерживает typedfillValue.
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указывает на commite2298baabba582a0ea56be9ca1c37cc18d6fdf00. - 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, MCPinitialize/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-версией.