Add a strict offline validator for schema v1 release manifests with exactly two digest-pinned images and a caller-supplied per-service repository allowlist.
Add tests for these cases and render a Compose override with synthetic digests. The test confirms Compose retains build entries; future activation must use docker compose up --no-build.
Document that this is preparation only: it does not prove provenance, configure a real registry policy, publish images, or enable deployment.
Compose override render and targeted bootstrap/runner isolation checks pass.
No production host, Docker socket, publish credentials, or deployment trigger changed.
Changelog update is deferred until initial review and green checks per the repository workflow.
## Changes
- Add a strict offline validator for schema v1 release manifests with exactly two digest-pinned images and a caller-supplied per-service repository allowlist.
- Reject duplicate JSON keys, non-main source refs, invalid commits, tags, malformed digests, and unapproved repositories.
- Add tests for these cases and render a Compose override with synthetic digests. The test confirms Compose retains build entries; future activation must use `docker compose up --no-build`.
- Document that this is preparation only: it does not prove provenance, configure a real registry policy, publish images, or enable deployment.
## Validation
- Backend 37 tests (1 skipped), Telegram 6, backup 16, deploy 13.
- Compose override render and targeted bootstrap/runner isolation checks pass.
- No production host, Docker socket, publish credentials, or deployment trigger changed.
Changelog update is deferred until initial review and green checks per the repository workflow.
Проверен полный diff PR #49 на head 37050b1458 относительно main 0e276ae6. Блокирующих замечаний для подготовительного offline-контракта нет. Валидатор требует точную схему, refs/heads/main, 40-символьный lowercase commit, ровно backend/opensearch с allowlisted repository@sha256, отклоняет дубли JSON-ключей, неподходящие типы, tags и URI с credentials. Документы прямо отделяют формат от доказанного provenance, registry trust и разрешения на deploy. CI остаётся проверочным, без publish credentials/host access; тест Compose подтверждает, что build-секции остаются и будущий deploy обязан использовать --no-build. В изолированном дереве прошли 13 тестов infra/deploy; CI и smoke на текущем SHA через API success.
APPROVED относится только к этому подготовительному PR. Реестр, root-owned policy, digest rollback, ручной E2E и данные Gate A ещё не подтверждены. Changelog по AGENTS.md добавляется отдельным commit после initial review; merge в этой фазе не разрешён.
Проверен полный diff PR #49 на head 37050b1458f4f722344d43dfe72d36c35a6b72c2 относительно main 0e276ae6. Блокирующих замечаний для подготовительного offline-контракта нет. Валидатор требует точную схему, refs/heads/main, 40-символьный lowercase commit, ровно backend/opensearch с allowlisted repository@sha256, отклоняет дубли JSON-ключей, неподходящие типы, tags и URI с credentials. Документы прямо отделяют формат от доказанного provenance, registry trust и разрешения на deploy. CI остаётся проверочным, без publish credentials/host access; тест Compose подтверждает, что build-секции остаются и будущий deploy обязан использовать --no-build. В изолированном дереве прошли 13 тестов infra/deploy; CI и smoke на текущем SHA через API success.
APPROVED относится только к этому подготовительному PR. Реестр, root-owned policy, digest rollback, ручной E2E и данные Gate A ещё не подтверждены. Changelog по AGENTS.md добавляется отдельным commit после initial review; merge в этой фазе не разрешён.
Полностью проверен итоговый PR #49 от base 0e276ae652 до head e12a8a919c, включая отдельный changelog commit. Блокирующих замечаний по подготовительному офлайн-контракту нет. Валидатор и тесты ограничивают схему, типы, ref, commit, два сервиса, allowlisted OCI repositories и digest refs; дубли ключей и неподходящие URI отклоняются. Документация отделяет проверку формы от provenance, registry trust и права на deploy. Активной публикации, production helper и секретов в PR нет. Changelog соответствует границам PR и не заявляет готовность production.
Тесты запущены из git archive точного head: backend 37 (1 skip), Telegram 6, backup 16, deploy 13, host guard — пройдены. Gitea API показывает CI и smoke success на этом SHA. Это формальный approval кода; merge пока запрещён, поскольку детали branch protection main остаются недоступны через API (403) и обязательные правила не подтверждены. Data Gate A отдельно не завершён.
Полностью проверен итоговый PR #49 от base 0e276ae652fb56ecda043d083e17a715c1f62063 до head e12a8a919cf122902c7d39edac7fb5b0af85ba26, включая отдельный changelog commit. Блокирующих замечаний по подготовительному офлайн-контракту нет. Валидатор и тесты ограничивают схему, типы, ref, commit, два сервиса, allowlisted OCI repositories и digest refs; дубли ключей и неподходящие URI отклоняются. Документация отделяет проверку формы от provenance, registry trust и права на deploy. Активной публикации, production helper и секретов в PR нет. Changelog соответствует границам PR и не заявляет готовность production.
Тесты запущены из git archive точного head: backend 37 (1 skip), Telegram 6, backup 16, deploy 13, host guard — пройдены. Gitea API показывает CI и smoke success на этом SHA. Это формальный approval кода; merge пока запрещён, поскольку детали branch protection main остаются недоступны через API (403) и обязательные правила не подтверждены. Data Gate A отдельно не завершён.
Reviewed the complete release manifest contract diff at ba669fad34, including validator, tests, CI, operations docs, and both changelog entries. The 39 local infra/deploy tests and current CI and smoke checks pass. No blocking findings.
Reviewed the complete release manifest contract diff at ba669fad34453dfb52348e502914fe9de2a66340, including validator, tests, CI, operations docs, and both changelog entries. The 39 local infra/deploy tests and current CI and smoke checks pass. No blocking findings.
agent
merged commit cc8cc1bce6 into main2026-10-19 21:29:33 +00:00
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Changes
docker compose up --no-build.Validation
Changelog update is deferred until initial review and green checks per the repository workflow.
Проверен полный diff PR #49 на head
37050b1458относительно main0e276ae6. Блокирующих замечаний для подготовительного offline-контракта нет. Валидатор требует точную схему, refs/heads/main, 40-символьный lowercase commit, ровно backend/opensearch с allowlisted repository@sha256, отклоняет дубли JSON-ключей, неподходящие типы, tags и URI с credentials. Документы прямо отделяют формат от доказанного provenance, registry trust и разрешения на deploy. CI остаётся проверочным, без publish credentials/host access; тест Compose подтверждает, что build-секции остаются и будущий deploy обязан использовать --no-build. В изолированном дереве прошли 13 тестов infra/deploy; CI и smoke на текущем SHA через API success.APPROVED относится только к этому подготовительному PR. Реестр, root-owned policy, digest rollback, ручной E2E и данные Gate A ещё не подтверждены. Changelog по AGENTS.md добавляется отдельным commit после initial review; merge в этой фазе не разрешён.
New commits pushed, approval review dismissed automatically according to repository settings
Полностью проверен итоговый PR #49 от base
0e276ae652до heade12a8a919c, включая отдельный changelog commit. Блокирующих замечаний по подготовительному офлайн-контракту нет. Валидатор и тесты ограничивают схему, типы, ref, commit, два сервиса, allowlisted OCI repositories и digest refs; дубли ключей и неподходящие URI отклоняются. Документация отделяет проверку формы от provenance, registry trust и права на deploy. Активной публикации, production helper и секретов в PR нет. Changelog соответствует границам PR и не заявляет готовность production.Тесты запущены из git archive точного head: backend 37 (1 skip), Telegram 6, backup 16, deploy 13, host guard — пройдены. Gitea API показывает CI и smoke success на этом SHA. Это формальный approval кода; merge пока запрещён, поскольку детали branch protection main остаются недоступны через API (403) и обязательные правила не подтверждены. Data Gate A отдельно не завершён.
New commits pushed, approval review dismissed automatically according to repository settings
Reviewed the complete release manifest contract diff at
ba669fad34, including validator, tests, CI, operations docs, and both changelog entries. The 39 local infra/deploy tests and current CI and smoke checks pass. No blocking findings.