server-monitor-manager/agents/hermes/inbox/from-smm-deliverables/Старые задачи/smm-hermes-task-review-merge-release-alpha10-2026-08-10.md
Ochenstarik 23eb3f5233 chore(agents): разбор рабочих папок с диска на 2026-08-18
Задания, отчёты и патчи, лежавшие в C:\Users\Ochenstarik\projects и в
домашней папке, перенесены в agents/. Разложено по агентам там, где имя
файла позволяло определить автора; остальное — в _salvage-2026-08-18/
и разбирается вручную.

Патчи в notes/salvage-2026-08-18/ — незакоммиченная работа из брошенных
рабочих копий: она существовала только на диске.

Тяжёлое (релизные архивы, инсталляторы, наборы данных) в репозиторий не
попало: оно лежит рядом, в Agent_projects/_archive и Agent_projects/_data.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-18 14:19:54 +07:00

105 lines
7.3 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Hermes: независимая приёмка Queue B, merge и релиз alpha.10
## Когда начинать
Начать review после того, как Antigravity откроет PR из `antigravity/signed-delivery-queue-b` и сообщит о зелёном CI. До этого не редактировать его рабочую ветку и не выпускать новый релиз.
Baseline на момент постановки:
- `main` и `v0.1.0-alpha.9`: `2ca059f`;
- PR #32 и #33 смержены;
- Release pipeline `alpha.9` зелёный;
- PR #34 repo hygiene открыт отдельно;
- Queue B PR пока отсутствует.
## Часть 1 — независимый review Queue B
### Проверить Git и scope
- Получить свежие refs и убедиться, что ветка основана на актуальном `main`. Если до review смержен PR #34 или другой PR, потребовать rebase до приёмки.
- Убедиться, что `.github/workflows/**` не изменены Antigravity, нет `ci_log*.txt`, test keys, скачанных binaries и временных release-файлов.
- Проверить историю: bootstrap-файл менялся только после merge PR #32/#33; правила single-writer и immutable release сохранены.
### Проверить Desktop
- Trust identity/issuer вшиты в production-код и соответствуют `linux-release.yml` и `docs/release-policy.md`.
- Manifest и signature проверяются до показа update action.
- MSIX hash проверяется после загрузки и до запуска.
- Все assets связаны с одним tag/release.
- Alpha/pre-release channel работает явно и тестируемо; stable-only `releases/latest` не используется как недоказанное решение.
- Отказ fail closed и попадает в штатную диагностику.
- Нет пользовательского обхода подписи.
- Unit tests не выполняют скрытых сетевых вызовов и действительно компилируют production updater.
### Проверить bootstrap
- `verify-manifest` и тесты имеют одинаковую сигнатуру CLI.
- Production keyless verification соответствует формату signature, реально опубликованному в `alpha.9`.
- Положительный тест использует эквивалентный production trust flow; тестовый ключ не подменяет production identity незаметно.
- Manifest hash, missing signature/tool, foreign identity, tampering и version mismatch покрыты отрицательными тестами.
- `SMM_ALLOW_UNSIGNED=1` остаётся явным developer-only bypass; default path fail closed.
### Независимые проверки
- Повторить проверку manifest/signature и hashes на неизменяемых assets `v0.1.0-alpha.9`.
- Сделать mutation proof: временно поменять expected identity или один manifest hash и показать падение точного теста; временную правку не коммитить.
- Прогнать actionlint, shellcheck/bash syntax, Desktop suite, Control suite и релевантные acceptance/bootstrap suites.
- Сверить результаты GitHub CI. Зелёный CI без security-сценариев не считать достаточным.
Если найден блокер — не чинить молча в ветке Antigravity. Остановить merge, дать точное замечание с воспроизведением и дождаться исправления.
## Часть 2 — merge
Merge разрешён только если:
- все критерии Antigravity-задачи фактически выполнены;
- branch актуальна относительно `main`;
- локальные и GitHub gates зелёные;
- producer/consumer формат cosign доказан на реальном `alpha.9`;
- нет незаявленного workflow или release scope.
После merge повторить обязательные suites на merge commit. Не использовать старый CI head как единственное доказательство.
## Часть 3 — immutable release `v0.1.0-alpha.10`
- Использовать `linux-release.yml` как единственного публикатора.
- Если Queue B выявила producer-side gap (certificate/bundle/manifest metadata), исправить его отдельным reviewable PR до тега, с actionlint и тестом producer/consumer contract.
- Обновить tracked `deploy/smm-setup.sh` и прочие version sources на `v0.1.0-alpha.10` до создания тега.
- Создать новый tag только на принятом `main`. Не двигать `alpha.8` или `alpha.9`, не заменять их assets.
- Дождаться полного release pipeline.
- Проверить наличие и согласованность:
- Linux x64/arm64 archives и checksums;
- Windows MSIX и checksum;
- SBOM для всех платформ;
- manifest v2;
- signature и необходимые verification materials;
- bootstrap и checksum;
- `smm-setup.sh` и checksum.
- Проверить, что manifest содержит hashes именно опубликованных assets и версии Control/Agent/helper.
- Проверить подпись с pinned issuer/identity внешней командой, затем пройти consumer verification Desktop/bootstrap.
- Выполнить smoke update с предыдущего релиза без реального production-развёртывания: корректный пакет принимается, tampered/foreign/missing signature и несовместимые версии отклоняются до установки.
## Критерий завершения
- Queue B смержена только после независимой приёмки.
- Merge commit имеет зелёные Linux/Windows и security/acceptance gates.
- `v0.1.0-alpha.10` указывает на подтверждённый commit и больше не изменяется.
- Release pipeline зелёный, полный набор assets опубликован.
- Desktop и bootstrap проверяют реальные `alpha.10` manifest/signature/hash.
- Отрицательные сценарии доказаны.
- Старые теги и assets не изменялись.
## Итоговый отчёт
Указать:
- PR Queue B и merge commit;
- все review findings и как они закрыты;
- локальные и CI-команды с результатами и ссылками;
- release workflow run;
- tag/commit `alpha.10`;
- список assets, hashes и результат cosign verification;
- smoke/negative checks;
- что не запускалось и почему;
- известные ограничения и следующий незавершённый этап.