08640c020e
Разведку впервые прогнали живьём, с разрешения владельца: вызвали саму функцию робота против боевого кабинета на двух отклонённых объявлениях кампании-пустышки. Живую кампанию не трогали, робот только читал. Прогон окупился сразу — вскрылись две поломки, которых не видел ни один из 74 зелёных тестов. Первая. Робот не нашёл объявление, которое в кабинете было: провал за три секунды, «объявления в списке нет». Замерили — список рисуется две секунды, а робот считал ячейки сразу после человекоподобной паузы в 800 миллисекунд. Счёт не ждёт, он отвечает про «прямо сейчас». На бою это значило бы, что КАЖДЫЙ отказ уезжает в «ждёт разбора», а клиент причину не узнаёт никогда. Вторая. После первой починки робот стал находить объявление и приносить 29 знаков — один заголовок «Модератор отклонил объявление», без причины. Та же ошибка: строка причины появляется позже окна, робот считал её и получал ноль, раскрывать было нечего. Клиенту уехало бы сообщение от Яндекса, в котором нет ни слова о том, что чинить. Текст окна нарастает по частям: 29 знаков, потом 82, потом 785. Окно не отдаёт ошибку — честно показывает то, что успело нарисоваться. Поэтому промах молчаливый: робот считал бы, что справился. Починка одна на обе: ждать, а не считать. Раскрытие строки подтверждаем появлением подробности, а не паузой — пауза это надежда, элемент это факт. Не дождались подробности, остаёмся с короткой причиной: она честная и клиенту полезна, промолчать было бы хуже. Оба сторожа написаны ДО починки и падали с теми самыми живыми ошибками. Хвост доклада: по решению владельца срезаются подписи кнопок кабинета «Написать в чат» и «Написать письмо» — у клиента этих кнопок нет, а выглядят они приглашением написать Яндексу. Режем только хвост и только точное совпадение строки: те же слова внутри пояснения это слова Яндекса, их не трогаем. Живая проверка обрезки вскрыла третью ловушку: «Написать письмо» срезалось, а «Написать в чат» оставалось. Яндекс ставит между короткими словами неразрывный пробел. Глазу он неотличим от обычного, а сравнению это совсем другой символ. Правило для этого кабинета: сравнивать текст только по человеческому виду строки, а элементы ждать, а не считать. Замеры записаны в разметку кабинета, раздел 7.8. Итог живой проверки с продовой паузой: причины приезжают целиком, кнопок в них нет — 760 знаков по финансовым услугам и 589 по медицине, шесть-семь секунд на объявление. Снимок берётся только с окна, логин и остаток счёта в кадр не попадают. Робот 80 из 80. Портал не тронут. На боевой не выкатывалось, рубильник Директа выключен. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>