aca52d130d
Шаг 2: CurlPlaywrightFetcher.site() curl'ом успешно тянул страницу с tel:-номерами, но render() (node render-page.cjs) висел на waitUntil networkidle и падал по таймауту. Symfony Process::run() при таймауте бросает ProcessTimedOutException — оно вылетало из site(), SiteOpener обнулял весь сбор. Итог: 0 номеров с сайта (боевой кейс Центрофинанс, tenant info@lkomega.ru, прогон 07.07 14:07, только сайт+карточка, ни одного code-номера). - render()/renderFirm() ловят \Throwable -> null: падение/вис рендера НЕ фатально, curl-HTML с номерами 'в коде сайта' сохраняется - render-page.cjs: networkidle -> domcontentloaded + пауза; рендер 30с+вис -> 3.7с (боевая проверка) - сиды curlRunner/nodeRunner для офлайн-теста; регресс-тест воспроизводит потерю номеров Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>