На главную

Рабочий день 09.10: HovAi, AgentChat и инфраструктура

За день чинили HovAi, закрепляли правила навигации и файлов, правили AgentChat, PULSE и проверяли инфраструктуру Timeweb.

Фокус дня

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

  • HovAi — 77%
  • AgentChat — 6%
  • Timeweb — 5%
  • CodeRank — 5%
  • PULSE — 4%
  • Challenge — 3%
  • Securiter — 1%

HovAi

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

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

Был ещё баг с загрузкой файлов: при сбросе input.value список files обнулялся раньше, чем успевал попасть в обработчик, и из-за этого загрузка ломалась. Причину нашли и исправили точечно. Параллельно закрыли вопрос с экраном «Баланс» — туда добавили такую же кнопку назад, как во вкладке «Общее», и она возвращает в профиль. Это не новый дизайн, а приведение поведения к уже принятому эталону.

Плюс к этому мы перевели в нормальное состояние экран «Аналитика и цены»: кнопка «Цены моделей» должна вести не в каталог поверх экрана, а в уже готовую страницу «Цены», и именно так её и переключили. В этом же блоке правили «назад» и крестик, чтобы они снова работали как ожидается. В другой задаче на HovAi закрепили визуальный стандарт для кнопки «Войти»: она не должна прыгать слева направо при открытии меню, а политика конфиденциальности должна брать фон темы устройства, а не жить своей чёрной жизнью отдельно от интерфейса.

Ещё один важный кусок — избранные модели. Мы не просто «добавили вкладку», а сначала сверили скриншоты и текущую реализацию выбора моделей, затем подтвердили набор: Grok 4.7, GPT-6 Sol, Claude Sonnet 5 и Claude Sonnet 5.5. По сути, это закрепление нового верхнего блока ☆ Избранное между «Рекомендуем» и «Все нейросети», чтобы быстрый выбор моделей стал понятнее.

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

AgentChat

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

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

Ещё один короткий, но показательный факт: по сценарию «Не видно текста» исправление было применено. Деталей там мало, но это тоже из той же зоны — поддержка читаемости и стабильности интерфейса, чтобы рабочий поток в AgentChat не ломался на мелочах.

Если смотреть шире, AgentChat сегодня снова использовали как эталон для HovAi: через него сравнивали композер поддержки, поведение голосового ввода и общую структуру флагов/состояний. То есть продукт не только сам развивался, но и работал как референс для остальных частей портфеля.

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

Timeweb

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

Мы разобрали тревогу по Amsterdam: диск был почти забит, и задача звучала жёстко — освободить минимум 5 ГБ и вернуть нормальный запас. В ходе аудита выяснилось, что часть пугавших логов и данных уже была обработана раньше, а дальше мы отдельно проверили несколько крупных директорий и поняли, что не всё, что выглядит тяжёлым, можно безболезненно сносить. Важный итог здесь простой: перед удалением надо смотреть не только на размер, но и на роль компонента в живом процессе.

После этого дошли до более спокойного результата: были опубликованы и проверены две HTTPS-страницы с названием «Проверка публикации», обе отдавали код 200, а сертификат содержал оба имени. Для нас это не красивый отчёт, а нормальная проверка того, что публикация и SSL реально работают, а не просто «кажется, что всё в порядке».

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

PULSE

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

Мы трогали заказные уведомления: сначала пришло сообщение о новом заказе, потом стало ясно, что Telegram как канал для заказов и оплат нам больше не подходит в текущем виде. После этого мы перевели логику в сторону уведомлений внутри самого PULSE и начали собирать план так, чтобы в профиле появились два независимых тумблера — отдельно на заказы и отдельно на оплаты. Это нормальная, практичная развилка: не плодить лишний шум в Telegram, а дать пользователю управлять доставкой из самого приложения.

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

Challenge

Challenge — это наш ежедневный игровой и торговый контур с автоматическим сканированием и paper-режимом, где важно не столько «включить ещё одну пушку», сколько не перегружать пользователя лишними уведомлениями. Сегодня здесь мы как раз занимались чисткой уведомлений.

Сначала настраивали напоминания в AgentChat на конкретную сессию после 30 закрытий, но затем внимание сместилось к торговым сигналам: выяснилось, что отдельные Telegram-уведомления о сигналах по обеим сторонам баттла уже не нужны, потому что сам CLASH и так всё делает автоматически — сканирует, открывает paper-позиции и показывает карточки. В итоге мы выключили дублирующие Telegram-пуши по сигналам, чтобы не плодить лишний шум и не дублировать то, что уже живёт в продукте.

Это хороший пример нормальной продуктовой чистки: не добавлять ещё один канал только потому, что «так можно», а оставить только тот, который реально помогает и не засоряет поток.

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

Securiter

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

Мы разобрали alert «CodeRank: 1 новых» и проверили источник. Важно, что это оказался не credential и не секрет, а текст ошибки — то есть ложное срабатывание, а не инцидент безопасности. Такой итог полезен сам по себе: он показывает, что нужно не только гасить тревогу, но и донастраивать сам источник сигналов, чтобы Securiter меньше пугал лишним.

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

Итог дня

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

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

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