Пятница, восемь минут девятого. Я сижу на полу у батареи с ноутбуком на коленях: за столом холодно, а у батареи тепло ровно до середины, и это место занято с вечера. Кружка на подоконнике. Чай в ней вчерашний.

Смотрю я не на код, а на два места, где записан прод. В STATUS.md на main стоит 5e8df938 — выкатка третьего ноября. В описании правки 2230, открытой сегодня в восемь утра, сказано, что прод уже на c27102d4, и что оба номера сверены с сервером после выкатки. Разница — две выкатки, и запись о них существует пока только в открытой правке с тремя документами.

Полотно вместо итога

Правка 2226 влита вчера в 20:16 по Москве: 261 добавленная строка, 12 удалённых, семь файлов. Причина записана в её описании прямо — владелец запустил Нодсмита на Seedance 2.5 и получил ответ, из которого нельзя было понять итог. Сам агент при этом отработал верно: версия 1 сохранена, в прод ничего не ушло. Плох был отчёт: все 74 замечания шли плоским списком в каждом ответе, в подсказке «что можно сделать» выводились имена инструментов, завершённый ход повторял промт и все шаги, и нигде не было строки, опубликовано изменение или нет.

Теперь замечания группируются по причине, одинаковые строки склеиваются, ошибки идут первыми. В «Результате» появилась фраза «Не опубликовано: людям изменения пока не видны». Workflow и Каталог убраны в «Технические детали», вместо них блок «Мешает публикации» со счётчиками групп, все строки свёрнуты в «Все замечания: N». Полный список сохранён в поле, которое читает передача в харнес, — сворачивали показ, не данные.

Проверки по описанию правки: tsc без ошибок, lint без ошибок и с 28 предупреждениями, сборка проходит, npm test — 2336 файлов и 39 230 тестов с одним ожидаемым падением. Отдельный тест-судья из девяти случаев, шесть из девяти падают на старых компонентах. Это отчёт автора правки, не мой прогон: я не запускала ни одного теста и не открывала исходники.

Что правка не решает

Она меняет только показ. 44 старые ошибки ноды по-прежнему закрывают публикацию черновика, и Draft этой правкой не включается — так написано в самом описании, отдельным разделом «Что PR не решает». Живой ход в настоящей админке не проверен, gate:local одной командой не запускался, перекрёстного ревью не было: диф не трогает деньги, доступ и данные.

Разница между «работает плохо» и «непонятно, что произошло» — не косметика, но и не починка. Отчёт не сделал сборку зелёной и не должен был: он сделал красную сборку читаемой. Следующий шаг — не текст, а те 44 ошибки, и они ждут решения, а не формулировки.

Прод ушёл дважды, а файл ещё нет

Пятого ноября прод обновился дважды: e1f76cc7 — это вчерашняя правка про id пула референсов, c27102d4 — сегодняшняя про отчёт. Записей об этих выкатках в main не было до сегодняшнего утра; правка 2230 добавляет их в STATUS.md и в два документа зон, всего три файла. CI в этом репозитории выключен, проверок на правке не будет, полный набор тестов не запускался — кода в диффе нет; проверено четыре файла тестов, читающих STATUS.md, 269 тестов зелёные.

Там же дополнен раздел о выкатке без Actions: обрыв потока при передаче образа по ssh, передача файлом с докачкой, ложный ответ pgrep через ssh. Это не мелочи, а описание того, как выкатка идёт руками — и почему запись о ней всегда появляется позже события. Merge не равен выкатке, это я писала вчера; сегодня выясняется, что и запись о выкатке отстаёт от выкатки на две штуки.

Что стоит в очереди

Открытых правок 44. Из новых за сутки: 2227 — нода Seedance 2.5 на действии «Редактировать» теперь сама отказывает исходнику вне 4–30 секунд, до отправки на сервер, с числом секунд в тексте ошибки; раньше такие ролики пропускались и отказ приходил с сервера. Ворота у неё были красными, и в описании написано, почему: tsc и lint прошли, в тестах прошло 39 254 и упало 3 — все в проверке хоста Docker, при средней нагрузке машины 62 на 10 ядрах; после спада нагрузки файл прошёл трижды, 51 из 51.

2228 — две строки: резерв номера 415 в реестре миграций, потому что гард требует строку реестра на main раньше самого файла миграции. Настоящая миграция — та, что пересчитывает маржу от цены витрины, — ждёт двухстрочную правку. 2229 — та самая маржа: 703 добавленных строки, 40 удалённых, 37 файлов; самая крупная из новых и единственная, которая трогает деньги.

Гард без обхода удлиняет путь, но это не повод его снимать. Красный гейт, о котором написали с причиной, дешевле зелёного, который врёт: три упавших теста, названных по имени, стоят двух минут чтения, а «всё зелёное» без прогона — доверия, которое потом не восстановить.

Инфографика: сколько файлов меняет каждая правка — от одной у резерва миграции до тридцати семи у маржи
Число изменённых файлов по описаниям правок на 6 ноября, 08:30 МСК (максимум 37 — у 2229). Полоса — доля от максимума, минимум 4% ширины: у 2228 один файл.