server-monitor-manager/agents/hermes/inbox/from-smm-deliverables/Старые задачи/smm-hermes-task-alpha8-compat-and-alpha12-2026-08-11.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

78 lines
6.9 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: починить тест совместимости, выпустить alpha.12, закрепить владение релизом
## Состояние
- `main` @ `5349533`; защита ветки включена — обязательный PR, обязательные статусы `build-and-test` и `build`, force-push запрещён. Это сделано, дальше всё идёт через PR;
- опубликован по-прежнему только `v0.1.0-alpha.9`;
- теги `v0.1.0-alpha.10` и `v0.1.0-alpha.11` созданы, но релизы по ним **не опубликованы**`Release pipeline` оба раза упал в job `bootstrap`.
Ветка: `hermes/alpha8-compat-fixture`.
---
## Часть 1 — тест совместимости с alpha.8 · блокирует все релизы
### Диагноз готов, повторять не нужно
`Release pipeline` на теге `v0.1.0-alpha.11`, job `bootstrap`, шаг `Validate bootstrap`:
```
Test 1..4: PASS
Test 5: Real alpha.8 manifest fallback matching (REQUIRES_NETWORK)
FAIL: Alpha.8 real release verification failed
```
Я скачал ассеты `v0.1.0-alpha.8` напрямую. **Файла `server-monitor-manager-manifest.json` в этом релизе нет.** Присутствует только `server-monitor-manager-manifest.sig` размером 96 байт — подпись без подписываемого файла. В alpha.8 лежал `server-monitor-manager-bootstrap-manifest.json`, то есть формат v1; manifest v2 впервые появился в alpha.9.
Значит тест проверяет обратную совместимость с артефактом, которого в том релизе никогда не существовало. **Дефекта в коде нет — недействительна посылка теста.**
### Что сделать
1. Убрать сетевую зависимость из релизного пайплайна. Тест, скачивающий чужой релиз по сети, роняет выпуск версии при любом сетевом сбое или изменении набора ассетов в прошлом. Релизный job не должен зависеть от внешнего состояния.
2. Заменить его **синтетической фикстурой формата v1**: локально сгенерированный набор в том виде, в каком его выпускали до alpha.9 — `server-monitor-manager-bootstrap-manifest.json`, `.sha256` рядом с архивом, без manifest v2 и без подписи. Проверять на ней, что установка проходит по пути `SMM_ALLOW_UNSIGNED=1` и отвергается без него.
Сценарий реальный и его нельзя терять: Hub владельца стоит на `alpha.7`, и обновляться он будет именно со старого формата на подписанный.
3. Фикстуру положить рядом с `tests/fixtures/control-v0.1.0-alpha.7.db` — там уже принят такой подход для схемы БД.
**Не удалять проверку целиком.** Antigravity в PR #37 уже сделал коммит с её удалением; я потребовал этот коммит из PR убрать. Владение `tests/bootstrap/**` и релизным пайплайном остаётся за вами.
### Заметка, менять ничего не нужно
В релизе alpha.8 лежит осиротевший `manifest.sig` без `manifest.json`. По `docs/release-policy.md` ассеты опубликованного релиза неизменяемы, поэтому трогать нельзя. Стоит одной строкой упомянуть это в release-policy как известную аномалию, чтобы следующий человек не искал причину.
---
## Часть 2 — выпустить `v0.1.0-alpha.12`
`alpha.10` и `alpha.11` сожжены: теги существуют, релизов по ним нет, переиспользовать по собственной политике нельзя.
1. После части 1 прогнать `Release pipeline` через `workflow_dispatch` на своей ветке — убедиться, что job `bootstrap` проходит **до** тегирования. Два сожжённых тега подряд получились именно потому, что этого шага не делали.
2. Создать `v0.1.0-alpha.12`, запушить тегом.
3. Проверить полноту набора: bootstrap и `.sha256`, оба `tar.gz` и `.sha256`, три SBOM, MSIX, `smm-setup.sh` и `.sha256`, `server-monitor-manager-manifest.json` и `.sig`.
4. В `docs/release-policy.md` зафиксировать судьбу `alpha.10` и `alpha.11`: теги существуют, релизы не публиковались, номера не переиспользуются. Пустые теги без объяснения — источник будущей путаницы.
---
## Часть 3 — единоличное владение версией и релизными файлами
Сейчас версию бампят двое. `main` содержит ваш `Bump version to v0.1.0-alpha.11`, а в PR #37 Antigravity бампит до alpha.12 и правит `deploy/smm-setup.sh`, README и все 12 переводов. Два сожжённых тега — прямое следствие.
Закрепить в `docs/release-policy.md`: версию в исходниках, `deploy/**`, релизные workflow и переводы README меняет только владелец релиза. Остальным — через запрос в отчёте.
---
## Критерий приёмки
- job `bootstrap` проходит; сетевых зависимостей в релизном пайплайне нет;
- совместимость со старым форматом покрыта синтетической фикстурой, сценарий `SMM_ALLOW_UNSIGNED` проверяется в обе стороны;
- `workflow_dispatch`-прогон выполнен **до** тегирования, ссылка в отчёте;
- `v0.1.0-alpha.12` опубликован с полным набором ассетов;
- судьба alpha.10, alpha.11 и аномалия alpha.8 записаны в release-policy;
- владение релизными файлами закреплено документально;
- всё через PR.
## Отчёт
Раздельно: локально, в CI со ссылками, не запускалось и почему.