feat(generator): добавлены профили запуска

- Зачем:
  - запуск генератора должен быть понятным перед будущим DAG-пультом.
- Что:
  - добавлены глаголы запуска backfill, continue и reset.
  - добавлены профили ci и daily-wave с расчётом длительности истории.
  - обновлены runbook и документы запуска под профильный интерфейс.
- Проверка:
  - uv run --with-requirements generator/requirements.txt pytest generator/tests -q.
  - bash -n scripts/run_generator.sh scripts/export_startup_history_artifact.sh scripts/import_startup_history_artifact.sh scripts/run_generated_history_analytics.sh.
  - PROFILE=daily-wave COMPOSE_BIN=true bash scripts/run_generator.sh backfill.
This commit is contained in:
2026-07-04 18:51:10 +03:00
parent d2899e9ee3
commit 4f8f992363
19 changed files with 547 additions and 101 deletions
@@ -90,12 +90,25 @@ ADR-0005 решил отвязать время генератора от реа
одну настенную секунду. Формат: положительное число, по умолчанию `1`.
- `GEN_RUN_MODE` — режим запуска: `live` или `backfill`. Значение по умолчанию —
`live`.
- `GEN_LAUNCH_PROFILE` — имя профиля запуска для логов. Значение по умолчанию —
`ci`; на поток не влияет.
- `GEN_STARTUP_HISTORY_ARTIFACT` — путь к JSON-файлу, куда `backfill` дополнительно
пишет портативный артефакт стартовой истории. В обычном live-запуске не нужен.
- `GEN_SEED`, `GEN_TICK_SECONDS` и остальные настройки генерации остаются частью
контракта повторяемости. Если они отличаются, артефакт стартовой истории
считается другим.
Поверх этих переменных есть пользовательский слой запуска:
- `backfill` — подставляет `GEN_RUN_MODE=backfill` и `GEN_STATE_RESET=true`;
- `continue` — подставляет `GEN_RUN_MODE=live` и `GEN_STATE_RESET=false`;
- `reset` — подставляет `GEN_RUN_MODE=live` и `GEN_STATE_RESET=true`.
Профиль `ci` даёт быстрый 6-часовой прогон. Профиль `daily-wave` даёт 2 суток,
чтобы была видна суточная волна. `GEN_HISTORY_DURATION` задаёт длительность
вида `6h` или `2d`; `GEN_MODEL_T_END` считается от `GEN_MODEL_T0` внутри слоя
запуска. Старые переменные остаются низкоуровневым механизмом.
#### Ход часов
В живом режиме модельное время идёт фиксированным шагом. На чистом старте оно