Files
dzentra_bot/README.md

97 lines
4.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Dzentra
Dzentra — модульный монолит автоматической торговой системы с
Telegram-интерфейсом. В текущем принятом Production scope полностью
собрана вертикаль Trades Feed: получение сделок, проверка
последовательности, reconnect/recovery, опциональное сохранение в
PostgreSQL и восстановление после перезапуска.
## Текущий scope
- Production ingestion, Consistency, Recovery, persistent checkpoint и
Startup Recovery реализованы для Trades.
- Historical Access и deterministic Replay доступны как отдельные API и
не запускаются автоматически.
- REST-потоки Quotes и Candles продолжают использоваться Trading/UI.
Новые WebSocket Runtime, Consistency/Recovery и persistent writer
wiring для них пока не подключены.
- Retention и создание месячных партиций выполняются только явным вызовом.
- Обычный запуск приложения требует PostgreSQL для журнала и balance
snapshots, даже если Trade Stream и Market Data Storage выключены.
Подробное фактическое состояние описано в
[архитектуре Trades Feed](docs/architecture/trades_feed.md).
## Быстрый старт существующего checkout
Требуются Python 3.12, доступный PostgreSQL и Telegram Bot Token. Команды
выполняются из корня репозитория:
```bash
python3.12 -m venv app/.venv
app/.venv/bin/python -m pip install \
--require-hashes \
-r app/requirements-dev.lock
app/.venv/bin/python -m pip check
test -e app/.env || cp app/.env.example app/.env
```
Заполните созданный `app/.env`, не добавляйте его в Git и не
перезаписывайте уже существующий файл. Затем запустите приложение:
```bash
cd app
.venv/bin/python -m src.main
```
Настройки режимов, PostgreSQL и безопасный Docker-запуск приведены в
[эксплуатационном руководстве](docs/operations/trades_feed_runtime.md).
Более подробная инструкция для разработчика находится в
[app/README.md](app/README.md).
## Обязательные проверки
Из корня репозитория:
```bash
./scripts/check_python_types.sh
app/.venv/bin/python scripts/check_documentation_integrity.py
```
Ожидаемый результат Pyright — `0 errors, 0 warnings`, а documentation
gate — `issues=0`. Обычная offline-регрессия запускается из `app`:
```bash
cd app
.venv/bin/python -m pytest -q
```
Default pytest-набор исключает opt-in группы `integration`, `stress` и
`live`, но включает статическую проверку Pyright. Целевой тест не
заменяет полный type gate.
Локальный эквивалент первого CI gate запускает quality, offline regression
и безопасную loopback integration-проверку:
```bash
./scripts/run_ci_gate.sh all
```
Workflow пока запускается только вручную. Его границы, runner contract и
критерии зелёного canary описаны в [CI runbook](docs/operations/ci_gate.md).
## Навигация
- [Обзор архитектуры](docs/architecture/overview.md)
- [Структура проекта](docs/architecture/project_structure.md)
- [Текущая архитектура Trades Feed](docs/architecture/trades_feed.md)
- [Эксплуатация Trade Stream Runtime](docs/operations/trades_feed_runtime.md)
- [CI gate и первый canary](docs/operations/ci_gate.md)
- [Архитектура Build 060.30](docs/migrations/build_060_30_architecture.md)
## Исторический bootstrap
`bootstrap_project.py` — исторический генератор первоначального каркаса.
Для установки или запуска существующего checkout его использовать не
нужно.