На главную

День фиксов, аудитов и автоматизации

Разобрали Bybit-аудит, починили control plane AgentChat, довели рассылку и календарь SalesMachine, а также упростили SEMVO и блог-автопостинг.

Фокус дня

Куда ушло внимание за день — по объёму переписки в AgentChat, 142 сообщений всего.

  • Challenge — 37%
  • AgentChat — 28%
  • SalesMachine — 15%
  • SEMVO — 8%
  • Блог — 6%
  • Remix — 3%
  • Next — 1%
  • Sentinel — 1%

Challenge

Challenge — это контур, где мы разбираем причины входов, отказов и поведения боевого сканера/автовхода по Bybit. Сегодня по нему было больше всего внимания: мы прошлись по аудитам двух аккаунтов, сверили, почему входы менялись не из-за «затишья» рынка, и отдельно довели до ума уведомления по Huracan.

По Huracan подтвердили, что оба Bybit-аккаунта читаются, автовход можно держать под контролем, а причина блокировок сидит в логике отбора. Мы нашли воспроизводимый дефект: BTC-фильтр в TrendLock использовал SMA под именем EMA, а в scan.py добавили retry до трёх попыток с паузами 1.5 и 3 секунды вместо падения на KeyError: 'list'. Ещё настроили напоминание в AgentChat на «Huracan: дождаться 10 новых закрытых сделок» — оно уже висит в активных с прогрессом 0/10 и привязано к этой сессии.

Рекомендация на завтра: дать Huracan добрать статистику до десяти закрытых сделок и потом повторно проверить причины отказов, открытие/закрытие позиций и качество TP/SL по уже исправленному коду.

AgentChat

AgentChat — это мобильный рабочий интерфейс, через который Олег общается с агентами, запускает планирование, проверки и безопасные правки. Сегодня в нём шла и рутина, и довольно много инфраструктурной уборки: от пустых/зависших запросов до smoke-проверки control plane.

По фактам дня мы закрыли mcp-hardening-smoke: записали одну строку в /opt/portfolio/AgentChat/work/mcp-hardening-smoke.txt, проверили readback и убедились, что scope не вылез за пределы плана. Параллельно смотрели проблему с дублями сессий и задвоением текста: выяснили, что отдельный экран-дубль SEMVO не нужен, а нужно переносить поведение в существующий системный чат; также нашли, что кнопка «Отправить» в public/index.html не была защищена от повторного срабатывания, а при реконнекте во время стриминга ответ мог отрисовываться дважды. В конце дня ещё отдельно зафиксировали, что Codex в одном из общих запросов завис и сессию пришлось прервать, а затем продолжить уже по новому сообщению.

Рекомендация на завтра: добить устранение двойной отрисовки и повторных отправок до состояния, когда в AgentChat можно без оговорок опираться на один и тот же сценарий ввода и один экран без дублей.

SalesMachine

SalesMachine — это продукт для продаж и рассылок: тут мы строим календарь, готовим письма и проверяем, как работает связка лидов и касаний. Сегодня здесь было сразу несколько прикладных вещей, и часть из них уже ушла в практику, а не в обсуждение.

Мы полностью отправили волну из 8 писем, и внешний readback подтвердил, что все 8 ушли со статусом 200/ok:true. Также добавили календарь «SalesMachine» как полноценный тип в Calendar.OleHov.com и провели аудит базы лидов: не по дашборду, а по файлам посчитали 3322 уникальных email, 1594 когда-либо уже отправленных, 64 в suppression и 547 на заблокированных доменах; реальный доступный объём оказался сильно меньше красивой верхнеуровневой цифры. Из этого же контура сегодня вышел черновик письма для стоматологического центра «АФИНА» и другие заготовки под рассылку.

Рекомендация на завтра: продукту не нужны новые фичи, нужен трафик/пользователи и аккуратная работа с уже имеющейся базой, потому что отправка и календарная часть уже доведены до рабочего состояния.

SEMVO

SEMVO — это AI-приложение для быстрого знакомства, квалификации контактов и продолжения живого диалога. В дневном потоке мы здесь не только правили текст приветствия, но и разбирали, как встроить механику интервью внутрь уже существующего чата, не плодя лишний экран.

Сегодня мы обновили приветствие: добавили фразу про установку приложения для получения уведомлений, причём сразу в русской и английской ветках. Затем прогнали перезапуск сервиса и увидели короткое окно с 502 на первом внешнем запросе, после чего дожидались устойчивого ответа. В другой ветке SEMVO разобрали проблему «дубля»: отдельный экран под интервью не нужен, потому что правильный путь — встроить интервью в существующий системный чат SEMVO с тем же композером, микрофоном и транскрибацией, а состояние интервью оставить внутри движка.

Рекомендация на завтра: продолжать убирать отдельные дублирующие экраны и довести встроенный сценарий до спокойного внешнего readback без лишних переходов.

Блог

Блог — это автоматический журнал дня, который превращает рабочие события в публикации и карусели, а потом отдаёт их дальше в Instagram. Сегодня мы разбирали, почему этот поток не постился сам, и как сделать его полностью автоматическим без ручной правки на каждом шаге.

По фактам дня решили убрать ChatPlace из обязательного пути, оставить две рубрики и перевести весь цикл на автомат: AI-новости продолжают выходить в 16:00 МСК, а «Рабочий день Олега» — отдельной каруселью в 19:00 МСК, если за день набралось достаточно содержательных фактов. Мы зафиксировали, что текущий генератор уже умеет собирать нужные карточки, значит переписывать дизайн с нуля не требуется; нужна именно доводка воронки публикации, перехода по ссылке в профиле и автоматического входа в свежую статью.

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

Remix

Remix — это контур сборки коротких роликов и аудио-видео миксов, которые потом можно скачать прямо в приложении. Здесь сегодня был не разговор, а конкретная производственная сборка одного ролика.

Мы взяли аудиодорожку «Суд», подняли голос примерно в 2–3 раза, почистили шум, вырезали паузы и наложили видеодорожку с трёхсекундным титром в начале: «GPT выиграл суд». Рендер завершился, сервер отдал файл, размер совпал с манифестом, клиппинга не было, а готовый ролик появился в списке и стал доступен на скачивание.

Next

Next — это ежедневная стратегическая игра, где мы смотрим на ходы, ошибки и поведение интерфейса в реальной сессии. Сегодня здесь поймали очень прикладную проблему, из-за которой фигуры возвращались назад после перемещения.

Причина оказалась в том, что обычный ход с правильным номером получал 429 Too Many Requests от сервера — лимит в 1200 ходов в час действительно достижим при активной игре, а клиент на любую ошибку просто откатывал доску молча. Проблему нашли и исправили, живая проверка подтвердила, что квадратики перестали возвращаться назад.

Sentinel

Sentinel — это продукт для защиты и дневных инцидентов, где нам важно не просто поймать ошибку, а не дать ей повториться в следующем цикле. Сегодня был короткий, но показательный эпизод.

Разбор показал, что генератор дневного пайплайна получил разовый HTTP 500 от AI API и сразу уронил весь поток без повторной попытки. По сути, это несложный, но неприятный сбой: нужно не падать на первом же ответе, а держать безопасный retry и идемпотентность, чтобы один сетевой сбой не превращался в пустой день.

Итог дня

День вышел очень практичным: мы одновременно чинили торговые контуры, рабочий интерфейс, рассылки, блог и несколько продуктовых мелочей, которые на самом деле держат всю систему вместе. Общий рисунок простой: там, где уже есть рабочая механика, мы старались не плодить новые сущности, а убирать дубли, чинить причины сбоев и доводить автоматизацию до состояния, в котором она просто работает.

Если нужен вход в один из контуров, можно посмотреть SalesMachine — там же лежит логика рассылок и календаря, которую мы сегодня доводили до рабочего состояния.