feat(generator): эталонный мир в git и import по умолчанию
- Зачем:
- менти собирал мир генерацией (минуты и десятки минут CPU); теперь
готовый трёхдневный мир загружается импортом за ~2 минуты, и числа
у всех менти совпадают число-в-число (issue #3).
- Что:
- артефакт data/startup_history/reference-world.json.xz в git:
3 модельных дня daily-wave, ~850 МБ JSON → 32 МБ xz;
- чтение и запись артефакта понимают .xz потоково (lzma); пустое поле
artifact_path в пульте и make startup-history-import читают эталон;
- длительность профиля daily-wave стала 3d — в тон эталонному миру;
- предпроверка чистого стенда ставит зависимости генератора через uv;
экспорт и импорт разведены отдельными переменными Makefile;
- доки и runbook обновлены; новые контрактные тесты: xz round-trip
и дефолтные пути артефакта.
- Проверка:
- make test (210 + 31) и make lint зелёные; импорт на чистом стенде
за 2м03с, manifest совпал (280437 событий), Superset-проверка
зелёная; независимое ревью — APPROVED.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
@@ -247,6 +247,22 @@ def test_console_generator_paths_precheck_clean_stand_before_writes():
|
||||
)
|
||||
|
||||
|
||||
def test_reference_artifact_is_import_default_only():
|
||||
"""Экспорт не может по умолчанию перезаписать эталонный мир."""
|
||||
makefile = (REPO_ROOT / "Makefile").read_text(encoding="utf-8")
|
||||
export_script = (
|
||||
REPO_ROOT / "scripts" / "export_startup_history_artifact.sh"
|
||||
).read_text(encoding="utf-8")
|
||||
import_script = (
|
||||
REPO_ROOT / "scripts" / "import_startup_history_artifact.sh"
|
||||
).read_text(encoding="utf-8")
|
||||
|
||||
assert "STARTUP_HISTORY_EXPORT_ARTIFACT" in makefile
|
||||
assert "STARTUP_HISTORY_IMPORT_ARTIFACT" in makefile
|
||||
assert "/tmp/clickstream-startup-history.json" in export_script
|
||||
assert "data/startup_history/reference-world.json.xz" in import_script
|
||||
|
||||
|
||||
def test_console_continue_checks_state_or_clean_stand_before_live_start():
|
||||
"""Continue не стартует новый live-мир на грязном стенде без state."""
|
||||
run_generator = (REPO_ROOT / "scripts" / "run_generator.sh").read_text(
|
||||
|
||||
Reference in New Issue
Block a user