13.08 этот сторож четыре прогона подряд ронял backend-tests совершенно
правильно: два новых теста скипались без TEST_DATABASE_URL и не были
объявлены в skip_allowlist.txt. Но его строка лежала посреди тысячи
других — обычный print, по-русски, на 1014-й строке лога, за две секунды
до зелёной сводки pytest. Поиск по «FAILED / ERROR» её не находил.
Причину искали три часа: диск, раннер, покрытие, кэш, два невиновных шага.
Защита сработала, её не услышали. Под Actions дублируем сообщение
в ::error:: — Forgejo поднимает такие строки в аннотации job'ы.
Локально ничего не меняется: человеческий текст как был.
Тесты двусторонние: против conftest из main падает ровно новый
(test_guard_emits_error_annotation_under_actions), два контрольных —
«локально ::error:: нет» и «без незадекларированных пропусков молчит
и не роняет» — зелёные с обеих сторон.
Один хунк форматирования — не мой: pre-commit ruff v0.7.4 против 0.15.12 (#2864).
Refs #2871