Сценарий A-3: Панель управления оператора, события безопасности и доработка управления парком ботов в приватном WebUI
Это обновление статуса по сценарию A (приватный self-hosted WebUI, транспорт directHttp) для ADAMANT TradeBot. WebUI никогда не подключается к биржам напрямую; все данные о рынке, счетах и параметрах поступают из API бота /api/v1.
Панель управления (Dashboard) для каждого бота теперь является основной страницей после выбора вкладки бота. Она предоставляет обзор состояния пары, биржи и маркетмейкинга на основе GET /api/v1/status, а также данные о цене и объеме за 24 часа. Значок редакции функций (feature edition) теперь определяется на основе установленных возможностей бота, а не активных модулей. Панель включает компактный график цены с формирующейся свечой, сетку модулей с цветовой кодировкой, сводку торговых параметров и структурированные балансы с открытыми ордерами. Запуск MM больше не отправляет принудительную стратегию, что позволяет боту сохранять текущую политику.

Представления рынков были доработаны: добавлены формирующиеся свечи на графике OHLC, маркеры ордеров бота в стакане и наложения открытых ордеров. Действия по отмене отправляют { id, market, side }, а уже исполненные или отсутствующие ордера теперь интерпретируются как успешный результат для оператора.

Представление параметров (Parameters) теперь включает 12-часовую ленту событий в реальном времени, отображающую структуру баланса в USD и номинальную стоимость открытых ордеров по целям в часовом поясе оператора. Часовые интервалы из истории работоспособности указывают на часы с деградировавшей или остановленной работой. Когда бот автоматически останавливает MM или приостанавливает «лестницу» (ladder) по соображениям безопасности, WebUI выводит диалоговое окно с текстом уведомления от бота и отражает аварийное состояние.

Панель событий (Events) предоставляет журнал аудита изменений параметров со снимками баланса на момент изменения, значками безопасности и действием возобновления «лестницы» непосредственно из строк событий безопасности.

Представление конфигурации (Config) отображает работоспособность в реальном времени, метаданные пары и дерево торговых параметров. Оно предлагает вкладки со сводкой config.json и необработанным JSON без раскрытия секретных данных.

Улучшения оболочки управления парком ботов включают редактируемые поля реестра для меток (Label) и счетов (Account), а также отображение этой информации во вкладках заголовка. Панели keep-alive теперь сохраняют состояние при переключении между вкладками ботов, считывая замороженный снимок Redux вместо сброса к пустому состоянию.
Данное обновление переводит WebUI из интерфейса в стиле мессенджера в полноценную панель управления с графиками, модулями и параметрами. События безопасности теперь включают контекст баланса и действия по возобновлению работы, устраняя необходимость гадать, почему MM остановился. Вкладки для нескольких ботов с панелями keep-alive и общим обзором парка предотвращают потерю контекста при переключении. Представление конфигурации отображает состояние работоспособности и очищенный снимок конфигурации. Индикаторы качества MM (working, degraded, stopped) вычисляются на основе /status с 10-минутным льготным периодом после запуска. Система остается полностью self-hosted: WebUI находится за обратным прокси-сервером, боты работают на инфраструктуре оператора, API-ключи бирж не хранятся в WebUI, а 2FA является обязательной.
Стек состоит из WebUI v0.2.0, собранного на Vite, React 18, Chakra UI, Fastify BFF и SQLite для журнала событий. Бот предоставляет эндпоинты, такие как GET /api/v1/bot, /status, /params и /account/*, наряду с WebSocket params:updated. Транспорт ограничен DirectHttpTransport. Сценарий A (приватный self-host) полностью готов для MVP. Дальнейшая работа будет сосредоточена на сценарии B — публичном WebUI по подписке через исходящий ретранслятор и лицензионный токен.