# Release manifest Файлы `release/manifest-VERSION.json` — SHA256 агентских скриптов **как в git** (после `checkout` на Linux). Updater сверяет их до копирования на хост. ## Автоматически (рекомендуется) Один раз после clone: **Linux / Git Bash:** ```bash ./contrib/install-git-hooks.sh ``` **Windows (PowerShell):** ```powershell .\contrib\install-git-hooks.ps1 ``` При коммите, если изменились **`version.txt`**, **`SSH_MONITOR_VERSION`** в `ssh-monitor` или любой из агентских файлов (`ssh-monitor`, `*.sh` из списка manifest), **pre-commit** вызовет `contrib/manifest/generate.py` и добавит `release/manifest-{версия}.json` в коммит. ## Ручная генерация (локально) Скрипты **`.local/build-release-manifest.ps1`** (Windows) и **`.local/build-release-manifest.sh`** (Git Bash) создаются установщиком и **не коммитятся** (см. `.gitignore`). ```powershell .\.local\build-release-manifest.ps1 .\.local\build-release-manifest.ps1 2.2.3-SAC ``` ```bash ./.local/build-release-manifest.sh ``` Ядро генерации в репозитории: `contrib/manifest/generate.py` (используется hook и локальным wrapper). ## Релиз (чек-лист) 1. Bump `SSH_MONITOR_VERSION` + `version.txt` 2. `git add` изменённые файлы 3. `git commit` — hook обновит manifest (или вручную `.local/build-release-manifest.sh`) 4. `git tag X.Y.Z-SAC` 5. Push в kalinamall (+ GitHub при необходимости) Поле `git_commit` в manifest по умолчанию **пустое** (проверяются только SHA256 файлов). Опционально после коммита: `python3 contrib/manifest/generate.py --pin-commit`. См. также [auto-update.ru.md](auto-update.ru.md).