Files
portal/bots
Дмитрий 2861faa6e5 предохранители остановки вынесены в чистую логику и накрыты сторожами
Решения «можно ли жать» и «сработало ли» жили внутри браузерной части, а её тестом не
поймать. Значит главный предохранитель работы — «кнопок Завершить в ряду ровно одна» —
не охранялся ничем, хотя без него у двух клиентов сразу робот завершил бы ЧУЖУЮ рекламу
за чужие деньги.

Теперь решения принимают чистые функции, и каждый случай проверен красным сторожем:
ряд не найден, рядов не один, кнопок не одна (с числом в причине), итог не подтверждён
(с сырым текстом строки в причине). В браузерной части осталось «спросил — бросил».

Поведение не менялось, только место принятия решения.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-08 23:43:16 +03:00
..