Обновление в ProcessForge всегда явное и управляется оператором. Система может найти новую версию, подготовить её, проверить контрольные суммы и записать уведомления, но не применяет обновление без подтверждения.
Основной порядок:
update entity-sources rebuildсобирает сведения о серверах обновлений из манифестов установленных сущностей,installed-subjects, реестров и локальных переопределений.update candidates refreshчитает локальные или удалённые манифесты, сравнивает установленную и доступную версии, пишетruntime/update/candidates.jsonи создаёт уведомления.update notifications listпоказывает найденные уведомления.update changelog showпоказывает ссылку на список изменений, а для локального файла выводит его содержимое.update stageкопирует или скачивает артефакт вruntime/update/staged/<candidate-id>/и проверяетsha256, если это требуется политикой доверия.update verifyповторно проверяет подготовленный артефакт. Для zip-пакетов дополнительно сверяются id, тип и версия внутри манифеста пакета.update apply --confirmсоздаёт резервную копию, применяет поддержанное локальное файловое обновление, обновляет запись об установленной сущности и пишет отчёт применения.update rollbackвосстанавливает резервную копию и пишет отчёт отката.update doctorпроверяет служебные файлы подсистемы обновлений.
apply не запускается автоматически. Политика
custom_command_requires_confirmation по умолчанию блокируется: ProcessForge не
исполняет произвольные удалённые postinstall-скрипты.
Служебное состояние обновлений не входит в публичный архив:
runtime/update/candidates.json
runtime/update/notifications.json
runtime/update/staged/
runtime/update/backups/
runtime/update/rollbacks/
Интеграция с Director необязательна. Если в рабочем месте есть
director/inbox/, уведомления об обновлениях могут дублироваться туда как
type=update_available; при этом CLI и файловые записи остаются основным
простым способом работы.
Ядро ProcessForge и проектная .pf обновляются по разным правилам. Ядро - это
заменяемый дистрибутив инструмента. Проектная .pf - рабочее состояние
конкретного проекта; она не перезаписывается архивом ядра. Для неё сначала
создаётся оценка обновления, затем оператор решает, нужны ли миграции,
обновление снимка контекста или ручные изменения проектных файлов.