gora.
Соцсети / мобильная автоматизация

Ферма — соцсети на живых телефонах

Парк физических Android-устройств под управлением очереди задач: персоны с характером и суточным ритмом, карта экранов под каждую версию приложения, публикация с одобрением человеком и пульт, который честно показывает, что не сработало.

Regionas
Тбилиси, два парка (локальный USB + выделенная Windows-машина)
Vaidmuo
Автор, единственный разработчик
Laikotarpis
2026 — настоящее время
Sritis
Соцсети / мобильная автоматизация

Это сводка по проекту. Дальше — три параллельных раздела: бизнес-логика и два способа работать с фермой, обзор пульта оператора, технический стек.

Каждый раздел самодостаточен.

Kas viduje

  • Два парка на одном `main`: 7 телефонов по USB на локальной машине и 9 на выделенной Windows-ферме. Значений, зашитых под конкретную ферму, в коде нет — это стережёт отдельный чекер в CI.
  • Очередь задач в SQLite (WAL): хаб на Node/TS ставит задачи, пул воркеров на Python забирает их по замку на телефон, держит лиз с истечением и восстанавливается после обрыва.
  • 70 типов задач, 58 из них отработали на живых аккаунтах: публикация, комментарии, подписки и отписки, просмотр сторис, проверка директа, догонялки по ответам, обслуживание телефона.
  • Карта экранов, привязанная к версии: 10 приложений, 75 сборок. Первая строка каждой задачи — сверка селекторов; не совпало — `SelectorMismatchError` вместо тапа наугад.
  • Пять гейтов между «задача создана» и «палец коснулся экрана»: окно активности персоны, ночная пауза в её таймзоне, парковка профиля, кулдаун телефона, проверка связи с площадкой.
  • 376 флагов с реестром пререквизитов: новое поведение приезжает выключенным и включается сменой `.env` на конкретной ферме, а не правкой кода.
  • Персона как данные: голос, словарь, плотность эмодзи, запрещённые фразы, кривая энергии и настроения по 24 часам, темы «о чём говорю» и «о чём молчу», список того, что запрещено утверждать о себе.
  • Движок комментариев: предварительная оценка поста до открытия, экземпляры голоса под тему, контроль повторов под одним постом.
  • Генерация медиа: оркестрация ComfyUI на арендованных GPU, LoRA под персону, клон голоса, оценка кадров vision-моделью с жёстким потолком по времени.
  • Очередь публикаций с ручным одобрением: черновик → одобрено → расписание → выход, и отдельная проверка, что пост действительно появился.
  • Наблюдаемость: телеграм-алерты с троттлингом повторов и ежедневная сводка, которая отдельно ищет задачи, закрытые успехом без результата.
  • Деплой через CI: кооперативный drain воркера до 46 минут, снапшот базы `VACUUM INTO` с проверкой читаемости, аддитивная схема на старте хаба, health-gate, откат кода на предыдущий релиз.
  • 8173 теста в 358 файлах, 31 чекер контрактов, мутационные спеки с якорями на утверждения.

Stekas

  • Python 3.14
  • uiautomator2
  • ADB
  • Node 20
  • TypeScript
  • SQLite (WAL)
  • Express
  • systemd
  • scrcpy / ws-scrcpy
  • Anthropic Claude (движок комментариев)
  • ComfyUI (арендованные GPU)
  • kohya_ss (LoRA под персону)
  • Telegram Bot API (алерты)
  • GitHub Actions
  • self-hosted runner
  • reverse SSH
  • Tailscale
  • unittest
  • Vast.ai