tasks: закрыта задача go-1-26-upgrade, заведён урожай ревью

- четыре задачи из находок ревью и заметки владельца: проверки shellcheck и
  hadolint с тестом скрипта сверки версий, закрепление рантайм-базы образа,
  коды выхода шагов гейта, настройка конвейера ревью
- INBOX разобран целиком и очищен
This commit is contained in:
av
2026-08-12 14:26:07 +03:00
parent 09228f23d8
commit d676df8a27
7 changed files with 190 additions and 54 deletions
+42
View File
@@ -0,0 +1,42 @@
# 🧹 Закрепить версию рантайм-базы образа
- **Тип:** chore
- **Категория:** Очередь
- **Зачем:** Финальный слой Dockerfile собирается на alpine:latest, а task image идёт с --pull, поэтому два образа из одного коммита с разницей в неделю несут разный ffmpeg — регрессия конвертации после такой пересборки выглядит как задачи в failed при пустом диффе репозитория, и откат на прежний коммит её не чинит.
Класс тот же, ради которого задача `go-1-26-upgrade` завела шаг сверки версий:
объявленное и собранное расходятся, а сверять некому. Разница в том, что там
расходились числа внутри репозитория, а здесь репозиторий вообще не называет
числа — версия рантайм-базы задана словом «последняя».
Цена названа условием, а не замером: сколько именно и как часто меняется
`ffmpeg` в `alpine:latest`, никто не мерил. Известно, что он в таблице отказов
`docs/architecture.md` стоит со столбцом «Отдаёт мусор»: «Выходной файл пуст,
отказ вылезет на распознавании».
Перечень мест, где объявлена версия Go, эта задача не расширяет: он закрыт
решением `go-1-26-upgrade`, и рантайм-база — другой предмет.
## Затрагивает
- финальный слой `Dockerfile` — тег базового образа;
- раздел «Деплой» в `docs/architecture.md`.
## Критерии приёмки
- Репозиторий называет версию рантайм-базы числом, а не словом «последняя».
Оракул — `grep` по `Dockerfile`: тег финального слоя содержит мажор и минор.
- Два образа, собранные из одного коммита, несут один `ffmpeg`. Оракул — собрать
`task image` дважды с интервалом и сравнить `ffmpeg -version` внутри обоих.
- Решение записано там, где его найдёт разбор отказа конвертации. Оракул —
раздел «Деплой» `docs/architecture.md` называет закреплённую базу и причину.
- Гейт зелёный целиком. Оракул — `task gate`.
## Рамки
Версию базы выбирает человек: перескок на минор новее может принести другой
`ffmpeg` ровно с тем же исходом, ради предотвращения которого задача и заведена.
Выкладку не запускаем.
Если решено оставить `latest`, задача кончается записью принятого остатка в
`docs/architecture.md`, а не правкой `Dockerfile`. Это законный исход.