Задания, отчёты и патчи, лежавшие в 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>
42 lines
4.3 KiB
Markdown
42 lines
4.3 KiB
Markdown
# Дополнение к заданию «подписанная поставка, очередь B»
|
||
|
||
Основное задание — `smm-antigravity-task-queue-b-2026-08-10.md`, оно в силе. Здесь только то, что изменилось, пока вы работали.
|
||
|
||
## Что сделано правильно
|
||
|
||
- `UpdateService.cs` и `UpdateServiceTests.cs` — часть 1 на месте;
|
||
- `verify_manifest` в bootstrap через `cosign verify-blob` в keyless-режиме, issuer и identity-regexp вынесены константами, `SMM_ALLOW_UNSIGNED` как аварийный выход — ровно как требовалось;
|
||
- пин identity на `linux-release.yml` совпал с новой политикой релизов, см. ниже.
|
||
|
||
## Обязательно перед коммитом
|
||
|
||
### 1. Ребейз на текущий `main`
|
||
|
||
Ветка стоит на `ad180e9` и отстаёт на четыре коммита. За это время Hermes слил два PR:
|
||
|
||
- **#32** — правит `deploy/ochenstarik-server-monitor-manager.sh`, тот же файл, где вы добавляете `verify_manifest`;
|
||
- **#33** — вводит политику релизов и переносит `smm-setup.sh` в репозиторий.
|
||
|
||
Ребейзиться до коммита, а не после: конфликт в одном файле разбирать проще, пока изменения не зафиксированы.
|
||
|
||
### 2. Убрать мусор из корня
|
||
|
||
`ci_log.txt` и `ci_log2.txt` лежат неотслеживаемыми в корне репозитория. Удалить либо занести в `.git/info/exclude`. В коммит они попасть не должны.
|
||
|
||
## Что учесть после ребейза
|
||
|
||
`docs/release-policy.md`, появившийся в #33, меняет часть условий вашей задачи:
|
||
|
||
- **`linux-release.yml` — единственный публикатор релизов.** `windows-release.yml` переведён в manual-only и ассеты больше не публикует. Ваш `COSIGN_IDENTITY_REGEXP` пинит именно `linux-release.yml`, так что он верен — но теперь это не совпадение, а зафиксированное правило, и в комментарии рядом с константой стоит сослаться на `docs/release-policy.md`.
|
||
- **Опубликованный тег неизменяем.** Исправления после публикации требуют нового тега. Ваша проверка в Desktop и в bootstrap должна исходить из этого: несовпадение хэша или подписи — это повод отказаться, а не перекачать «на всякий случай».
|
||
- **`smm-setup.sh` теперь отслеживается как `deploy/smm-setup.sh`**, его SHA-256 записывается в подписанный manifest, а release-workflow копирует в релиз именно этот файл. Установщик обязан брать ассеты **только того же тега** и проверять контрольную сумму bootstrap до запуска. Если ваши изменения в `deploy/smm-setup.sh` понадобятся — это теперь обычный файл репозитория, правится как код, но с оглядкой на то, что его хэш попадает в manifest.
|
||
- Временный обход бага `validate_control_url` из `smm-setup.sh` уже удалён Hermes'ом — возвращать его не нужно.
|
||
|
||
## Уточнение к критерию приёмки
|
||
|
||
К списку из основного задания добавляется:
|
||
|
||
- ветка ребейзнута на `main`, содержащий #32 и #33;
|
||
- `ci_log*.txt` отсутствуют в коммитах и в рабочем дереве;
|
||
- константа `COSIGN_IDENTITY_REGEXP` сопровождена ссылкой на `docs/release-policy.md`;
|
||
- проверка в Desktop и в bootstrap отказывает, а не пытается обойти, при любом несовпадении подписи или хэша.
|