ad816b2571
Вход в кабинет МТС умер молча 03.08.2026: робот не мог ни подать объявление, ни прочитать вердикт, ни дойти до кассы, а владелец не узнал об этом ниоткуда. Сторож сессии (bin/keepalive.js) в проекте был написан ещё 02.08, но нигде не запускался — письмо физически не могло прийти. Третий за сутки случай «сторож есть, сработать не может». Заведена задача Планировщика Liderra-MTS-Keepalive: раз в час, скрытно (S4U — как у самого робота), лимит 20 минут, повторный запуск поверх идущего запрещён. Зовёт обёртку bin/keepalive-task.ps1, а не keepalive.js напрямую, по одной причине: робот и сторож делят ОДИН профиль браузера. Приди сторож в момент, когда робот везёт кампанию, — он либо помешал бы роботу, либо прислал владельцу ложное «вход слетел» (ровно тот шум, который убирали правкой 02.08). Обёртка ищет браузер, поднятый с этим профилем, и при занятости молча пропускает круг. Всё пишется в keepalive.log — сторож, о котором ничего не известно, не сторож. Обе половины доказаны вырезанием, а не объявлены: профиль свободен → «код 0 :: ALIVE»; профиль занят (держали браузером специально) → «ПРОПУСК: кабинет занят роботом». Затем задача запущена через сам Планировщик — результат 0, в журнале снова ALIVE. Ловушка на будущее: .ps1 с кириллицей обязан иметь метку кодировки (BOM). Без неё Windows PowerShell 5.1 читает файл как ANSI и падает на разборе, жалуясь совсем не на то место — «Missing closing '}'».