Status: ready-for-agent # Состояние версии 2 и рестарт ## What to build Расширить состояние генератора до версии 2: кроме тика и состояния генератора случайных чисел сохранять популяцию пользователей и активные визиты. После рестарта генератор должен продолжать коротко прерванные визиты и закрывать сильно просроченные, не теряя популяцию пользователей. Задача проверяет поведение состояния через публичные методы сохранения и восстановления, без реального Kafka-брокера там, где достаточно сериализации. Источник решений: `docs/specs/2026-06-10-generator-math-model.md`, раздел «Персистентность через рестарты». ## Acceptance criteria - [ ] Состояние версии 2 сериализуется в JSON и восстанавливает тик, ГПСЧ, популяцию пользователей и активные визиты. - [ ] Старое состояние версии 1 или битое состояние не валит генератор: фиксируется предупреждение, генератор начинает с чистого листа. - [ ] После простоя не больше 30 минут активный визит продолжается, а созревшие события досылаются со своими исходными запланированными метками времени. - [ ] После долгого простоя просроченный активный визит закрывается без досылки остатка. - [ ] Популяция пользователей переживает простой любой длины. - [ ] `GEN_STATE_RESET=true` явно сбрасывает состояние, как и раньше. ## Blocked by - `.scratch/feature-data-generator/issues/05-intensity-and-flow-calibration.md` ## Comments