Почему запуск браузера больше не отправляет профиль в облако
Облачная синхронизация переносит профиль между машинами: личность, куки, хранилище, passkey. Для тех нескольких профилей, которые вы открываете и с ноутбука, и с настольной машины, это действительно полезно. Для task-317 - нет, а запуск сам по себе отличить одно от другого не может. Поэтому он перестал угадывать.
Какую поломку это убирает
Если запуск браузера заодно создаёт облачный профиль, то скрипт, решивший называть профили по номерам задач, - это скрипт, решивший израсходовать вашу квоту синхронизации. Такую строчку никто не пишет намеренно. Она появляется как побочный эффект цикла, а обнаруживается позже, когда вы разглядываете число в панели и не понимаете, откуда оно.
Неприятно ещё и то, что откат ручной. Создание было одним неявным вызовом на итерацию, а чистка - это вы и список.
Три состояния, а не два
У sync три состояния, и третье - это значение по умолчанию:
sync: trueсоздаёт облачный профиль, если его нет, и синхронизирует его.sync: falseоставляет профиль локальным всегда, что бы ни знал сервер.- Не задано - синхронизирует, только если сервер уже знает это имя. Если не знает, запуск остаётся локальным и ничего не создаётся.
await ab.launch({ profile: 'main-account', sync: true }) // создать и синхронизировать
await ab.launch({ profile: 'main-account' }) // синхронизируется, он уже есть
await ab.launch({ profile: 'scratch-01' }) // локально, ничего не создано
Интересно как раз третье. Оно означает, что уже синхронизируемый профиль продолжает синхронизироваться без единого аргумента - именно то, что нужно для профилей, которые вы реально возите между машинами, - а имя, о котором сервер никогда не слышал, не станет облачным профилем случайно. Автоматизация получает безопасное поведение, ничего для этого не делая, а профили, настроенные вручную, сохраняют настроенное вами поведение.
sync: true на тарифе без облачной синхронизации завершается ошибкой, а не выполняется молча. Вы попросили конкретную вещь; получить локальный профиль и никакого сообщения означало бы узнать о проблеме, уже сев за вторую машину.
Одно уведомление вместо тишины
У локального умолчания есть своя обратная сторона: вы хотели синхронизацию, ничего не передали и узнали об этом сильно позже. Поэтому первый запуск незнакомого имени на тарифе с синхронизацией печатает одну строку о том, что профиль локальный и как это изменить. По одному разу на имя за процесс, чтобы цикл из 400 задач не превратился в 400 строк шума.
Отправить её можно куда угодно, где живут ваши логи. Суть в том, что тихий путь сам сообщает о своей тишине.
Это несовместимо с временными профилями
Запрос sync: true вместе с temporary: true завершается ошибкой. Временные профили лежат в дереве, которое вообще не общается с сервером, - об этом есть отдельная заметка, - так что связного прочтения обоих сразу не существует. Молчаливый выбор одного из них оставил бы вас с профилем, который вы считали синхронизируемым, а он таким не был; ровно от этого класса ошибок здесь и стоит исключение.
Что именно переносит синхронизация
Достаточно, чтобы на другой машине это был тот же профиль: сгенерированную личность, базы куки и хранилища, а также хранилище passkey. Последнее важнее, чем кажется, потому что у passkey нет запасного пароля. Если единственная копия осталась на машине, которой у вас больше нет, аккаунт не восстанавливается сбросом чего бы то ни было.
Синхронизация включается для каждого профиля отдельно. Это не режим, который включают на весь аккаунт.
Когда правильный ответ - остаться локально
Если вы работаете с одной машины, облачная синхронизация решает несуществующую у вас проблему. Локальных профилей неограниченно на любом тарифе, включая бесплатный, а переносимый экспорт даёт копию, которая лежит у вас на диске и не проходит ни через какой сервис. Для многих это лучший ответ, а не худший, и стоит он ноль.
Доводы за синхронизацию узкие и настоящие: вы открываете один профиль с нескольких машин, он нужен не только вам, или вы хотите, чтобы копия пережила ноутбук. Если ни одно из этого к профилю не относится, оставьте его локальным. Что входит в тарифы, написано на странице цен, и считаются там одновременные браузеры, а не количество профилей, так что локальные профили не отнимают у вас мощность.
Как проверить самому
Запустите имя, которым вы никогда не пользовались, не передавая sync. Дождитесь той самой строки уведомления и посмотрите список профилей в панели: имени там быть не должно. Запустите то же имя с sync: true - оно появится.
Затем проверьте обратное, то есть случай, о котором обычно думают неверно: возьмите профиль, который уже синхронизируется, запустите его без аргументов и убедитесь, что синхронизация продолжается. Умолчание означает не «локально». Оно означает «без изменений».
Подробности по опциям - в документации SDK.
Попробуйте на бесплатном тарифе.
Неограниченное число локальных профилей, без карты. Проверьте результат детекторами сами.