Версия 10.0.0 ПО для маркетмейкинга ADAMANT — это важный релиз, включающий архитектурную реорганизацию, эксклюзивную безопасность итераций, корпоративное управление логами, API для управления WebUI на основе ролей, полностью переписанный коннектор Azbit, публикацию в npm через OIDC Trusted Publishing и криптографическое подтверждение происхождения (provenance) для Docker-контейнеров.
Установка
# Через npm
npm install -g adamant-tradebot
mm init
mm doctor
mm on
# Через Docker / GHCR
docker pull ghcr.io/adamant-im/adamant-tradebot:10.0.0
docker run -d --name adamant-tradebot ghcr.io/adamant-im/adamant-tradebot:10.0.0
Безопасность цепочки поставок и Trusted Publishing
Процесс публикации в npm переведен на OIDC Trusted Publishing без использования постоянных секретов репозитория (NPM_TOKEN) с включенным подтверждением происхождения через publishConfig.provenance: true, что закрывает задачу #119. Аттестация происхождения сборки GHCR была интегрирована с использованием actions/attest-build-provenance@v2 и подписи Sigstore для верифицируемых сборок контейнеров в GitHub Packages. В CI/CD процессы публикации добавлены триггеры ручной проверки через workflow_dispatch.
Архитектура и надежность среды выполнения
Структура модулей была реорганизована для четкого разделения: trade/features/ для модулей маркетмейкинга, trade/trader/ для коннекторов бирж и trade/settings/ для файлов динамических параметров. Эксклюзивная блокировка итераций внедрена через helpers/moduleIteration.js (runExclusiveIteration) для предотвращения одновременных перекрывающихся итераций и обеспечения надежного перезапуска из блоков finally.
Корпоративная ротация логов и быстрый механизм чтения были полностью переписаны в helpers/logRotation.js и helpers/logReader.js, поддерживая активные и архивные жизненные циклы, структурированное чтение в обратном порядке и постраничное получение логов. Оценка работоспособности среды выполнения добавлена через helpers/mmHealthEval.js, helpers/mmHealthState.js и helpers/mmRuntimeHealth.js для мониторинга состояния маркетмейкинга в реальном времени. Отслеживание инициатора команды теперь обеспечивается через helpers/commandInitiator.js, что дает согласованное контекстное отслеживание при вызовах через Messenger, WebUI API и CLI.
Коннекторы бирж
Коннектор Azbit прошел полную переработку в trade/trader/trader_azbit.js и trade/api/azbit_api.js, получив поддержку REST API v1 и v2, строгую точность ордеров, ограничение частоты запросов (rate limiting) и 137 модульных тестов с исчерпывающими API-заглушками. Точность и безопасность коннекторов были стандартизированы для Coinstore, FameEX, NonKYC, P2PB2B и StakeCube, включая унифицированную обработку ошибок, усечение точности и предварительную проверку баланса.
WebUI REST и WebSocket API
Внедрен контроль доступа на основе ролей с поддержкой ролей admin, manager и viewer (только чтение), включающий строгую проверку JWT, принудительное истечение срока действия (TTL) и фильтрацию доступа по IP. Добавлены полные эндпоинты управления ботом для настройки динамических параметров (PUT /api/v1/params, PUT /api/v1/params/strategy), жизненного цикла бота, ордеров и запросов к логам. WebSocket-стриминг позволяет подписываться на события в реальном времени для получения статуса бота, торговых логов и обновлений рыночных тикеров.
Обеспечение качества и инструменты разработчика
Покрытие тестами теперь охватывает 576 автоматизированных тестов в 33 наборах, включая общие тесты, API WebUI, функции, трейдер, вспомогательные модули и модули маркетмейкинга. Руководство для AI-агентов добавлено в AGENTS.md для разработки с помощью ИИ, соблюдающей инварианты безопасности, структуру каталогов и протоколы тестирования. Типобезопасность была улучшена с помощью определений JSDoc @typedef и проверки TypeScript через npm run typecheck:webui-api.
Критические изменения
Для этого релиза требуется Node.js версии 22.12.0 или выше. Изменена внутренняя структура каталогов: функциональные модули и коннекторы перемещены в trade/features/ и trade/trader/; пользовательские расширения, импортирующие внутренние пути, должны быть обновлены соответствующим образом. WebUI API теперь обеспечивает строгое истечение срока действия JWT и авторизацию ролей для всех приватных эндпоинтов.