Тема
Финальный pre-reset backup торговой сессии harvester-engine — 2026-08-16
Назначение
Это локальная форензическая копия production-сессии harvester-engine, сделанная после завершения всех её позиций и перед сбросом/удалением состояния. Она сохраняет фактические события, сигналы, решения, ордера и позиции для последующего offline-разбора штатным scripts/analysis/forensics.sh.
Артефакты лежат в data/harvester-engine-session-20260816T144518Z/. Независимая серверная копия оставлена на VPS в /home/deploy/pm-backtest/.deploy/backups/manual-trading-session-harvester-engine-20260816T144518Z.
Происхождение снимка
| Поле | Значение |
|---|---|
| Instance | harvester-engine |
| Контейнер | pm-engine-harvester-engine |
| Начало снимка | 2026-08-16T14:45:18Z |
Завершение engine.db | 2026-08-16T14:45:19Z |
Завершение config.db | 2026-08-16T14:45:19Z |
Исходный engine.db | /home/deploy/pm-backtest/instances/harvester-engine/data/engine.db |
Исходный config.db | /home/deploy/pm-backtest/instances/harvester-engine/config/config.db |
| Метод | SQLite online .backup при работающем движке |
| Остановка/рестарт движка | Нет / нет |
| Terminal preflight | 38 CLOSED + 4 REDEEMED, активных позиций нет, unresolved_submits=0 |
| SHA-256 бинаря движка | 73ce2fe5cc4298764c127bf6447481ea6a8d455afc96e6078fbf7618007d6cce |
wallets.db | Не копировалась; ключей и секретов в наборе нет |
Состав и проверка
| Файл | Назначение |
|---|---|
engine.db | События, сигналы, решения, ордера и позиции торговой сессии |
config.db | Версии strategy config, действовавшие в момент снимка |
engine-schema.sql | Зафиксированная схема engine.db |
config-schema.sql | Зафиксированная схема config.db |
table-counts.tsv | Контрольные количества строк в основных таблицах |
METADATA.txt | Provenance и способ получения снимка |
SHA256SUMS | Контроль целостности всех остальных файлов набора |
Контрольные SHA-256 баз:
| База | SHA-256 | Размер |
|---|---|---|
engine.db | 78d617d6753a3de5af4e07bbfa740bd3879c1ad137cce7a085a2fbf0daa14e72 | 58,241,024 bytes |
config.db | 9e6dd2f6ceb7dd81008780f9de3ba8a1b076dfda20220537689cb2852a56ad4c | 798,720 bytes |
Проверка без изменения баз:
bash
cd docs/analysis/data/harvester-engine-session-20260816T144518Z
sha256sum -c SHA256SUMS
sqlite3 'file:engine.db?mode=ro&immutable=1' 'PRAGMA integrity_check;'
sqlite3 'file:config.db?mode=ro&immutable=1' 'PRAGMA integrity_check;'Покрытие данных
| Таблица/состояние | Строк |
|---|---|
events | 9,553 |
signals | 2,381 |
orders | 2,431 |
positions | 42 |
selection_signals | 206 |
decision_liquidity_profiles | 5,091 |
stop_dip_contexts | 8,548 |
unresolved_submits | 0 |
Ордера FILLED / CANCELLED / REJECTED | 74 / 2,164 / 193 |
Позиции CLOSED / REDEEMED / активные | 38 / 4 / 0 |
Диапазон времени events.ts_ms: 1786549938601..1786847540754; positions: 1786550384143..1786847540754. В config.db присутствуют weather-harvester (latest_version=42, published_version=42) и weather-motion (latest_version=1, published_version=1); первая строка включена, вторая выключена в момент снимка.
Offline-анализ
Новые ad-hoc SQL-скрипты для этой копии не нужны. Используется существующая форензическая поверхность:
bash
FORENSICS_TESTDATA=docs/analysis/data/harvester-engine-session-20260816T144518Z/engine.db \
scripts/analysis/forensics.sh positions --engine
FORENSICS_TESTDATA=docs/analysis/data/harvester-engine-session-20260816T144518Z/engine.db \
scripts/analysis/forensics.sh stops --engine
FORENSICS_TESTDATA=docs/analysis/data/harvester-engine-session-20260816T144518Z/engine.db \
scripts/analysis/forensics.sh liquidity-profile --engineСмысл колонок, инварианты fill-check/no-survivorship и ограничения каждой подкоманды описаны в scripts/analysis/README.md.
Ограничения доказательности
- Online
.backupдаёт внутренне согласованный снимок каждой SQLite-БД, ноengine.dbиconfig.dbкопировались последовательно. Даже при одинаковой секундной метке завершения набор не является общей атомарной транзакцией между двумя базами. - Это срез до указанного времени. Записи, появившиеся после завершения соответствующего
.backup, в него не входят. - В наборе нет CLOB price history, Gamma ground truth и capture-потока. Команды, которым нужны эти источники, должны явно получить их отдельно и не должны молча обращаться в сеть из offline-режима.
- Snapshot сохраняет наблюдавшееся поведение кода и пригоден для диагностики. Сам по себе он не доказывает доходность и не разрешает тюнинг: EV-вердикт требует реальных
FILLEDвходов/стопов, разрешения открытых позиций и пост-фикс форвард-данных по правилам Harvester EV. - Это evidence-набор, а не автоматический rollback bundle. Восстановление в production нельзя делать поверх работающего контейнера без отдельной процедуры и проверки целевых путей.