server-monitor-manager/agents/antigravity/inbox/from-smm-deliverables/Старые задачи/smm-antigravity-task-queue-b-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

5.8 KiB
Raw Blame History

Antigravity: подписанная поставка, очередь B

Приёмка очереди A

Queue A принята. В релизе v0.1.0-alpha.8 присутствуют server-monitor-manager-manifest.json и server-monitor-manager-manifest.sig, Linux-артефакты и SBOM собираются, пайплайн после трёх починок отрабатывает целиком. Manifest v2 с подписью — это ровно то, чего не хватало для закрытия Горизонта 0 по поставке.

Ветка: antigravity/signed-delivery-queue-b.


Часть 1 — проверка подписи на стороне Desktop · начинать сразу

Desktop свободен, ни Hermes, ни вы его сейчас не трогаете.

Сегодня Desktop скачивает и ставит обновления, не проверяя, что артефакт подписан тем, кем должен. Manifest и подпись уже публикуются — осталось их использовать.

  1. Вшить в Desktop константой ожидаемую identity подписи: при keyless-режиме cosign это issuer и subject (репозиторий и workflow), при minisign — публичный ключ. Не скачивать её вместе с релизом: подпись, проверяемая ключом из того же релиза, ничего не доказывает.
  2. Перед предложением обновления: скачать manifest и .sig, проверить подпись, сверить хэш артефакта с manifest, и только потом показывать пользователю кнопку обновления.
  3. Несовпадение подписи или хэша — отказ с внятным текстом и записью в диагностику. Не предупреждение, не «продолжить всё равно».
  4. Отсутствие manifest или подписи в релизе — тоже отказ; путь «старый релиз без подписи» допускается только под явным флагом разработчика, как SMM_ALLOW_UNSIGNED в bootstrap.

Тесты: валидная подпись принимается; подписанный чужой identity manifest отклоняется; manifest с подменённым хэшем отклоняется; отсутствующая подпись отклоняется.


Часть 2 — проверка в bootstrap · после merge задания Hermes

Hermes сейчас правит deploy/ochenstarik-server-monitor-manager.sh — исправляет формат снимка Monitor. Не заходить в этот файл, пока его PR не смержен. Момент согласовать.

После merge:

  1. verify_archive сверяет хэш архива с manifest, а не с соседним .sha256. Старый путь остаётся только под явным SMM_ALLOW_UNSIGNED=1 с громким предупреждением.
  2. Новое действие verify-manifest MANIFEST SIGNATURE.
  3. Публичный ключ или OIDC-identity вшиты константой в bootstrap.
  4. Отсутствие инструмента проверки подписи — отказ, а не предупреждение.
  5. Отказ update-control и update-agent при несовместимой паре версий Control ↔ Agent ↔ helper. Требование docs/installer-contract.md §6, невыполненное с самого начала; manifest v2 уже содержит нужные версии.

Чего опасаться

Release-workflow не запускаются на pull request — они триггерятся тегом и workflow_dispatch. Зелёный PR про них ничего не доказывает. Вы уже дважды на этом обожглись: permissions в #14 всплыли только при первом настоящем релизе, locked-mode в #15 — тоже.

Поэтому обязательно: actionlint на всех workflow с выводом в отчёт, и прогон через workflow_dispatch на своей ветке.

Отдельно: если для части 2 понадобится правка workflow — не вносить самостоятельно, описать в REPORT.md. Release-пайплайн сейчас ведёт Hermes, и три починки подряд за один день были ровно из-за того, что в него правили с двух сторон.


Критерий приёмки

  • Desktop отказывается ставить обновление с неверной, чужой или отсутствующей подписью; четыре теста зелёные;
  • identity подписи вшита в Desktop, а не берётся из релиза;
  • verify_archive работает от manifest, verify-manifest существует;
  • несовместимые версии блокируют update-*;
  • deploy/ochenstarik-server-monitor-manager.sh не тронут до merge PR Hermes — проверяется историей коммитов;
  • .github/workflows/** не изменены;
  • actionlint чист, вывод приложен;
  • CI зелёный, PR не смержены.

Отчёт

Раздельно: локально, в CI со ссылками, не запускалось и почему. Описание PR заполнять после завершения CI.