- Зачем: - ревью выявило слабые места в критериях приёмки модельного времени. - Что: - уточнены правила повторяемости, чистого прогона и review gate. - добавлены критерии для однородности визита через восстановление и T_end. - обновлён handoff с важными рисками для следующего агента. - Проверка: - git diff --check.
46 lines
3.3 KiB
Markdown
46 lines
3.3 KiB
Markdown
Status: ready-for-agent
|
|
|
|
# Восстановление state v2 от модельной точки
|
|
|
|
## Parent
|
|
|
|
`.scratch/generator-model-time-startup-history/PRD.md`
|
|
|
|
## What to build
|
|
|
|
Привести восстановление state v2 к модельному времени. Один и тот же слепок
|
|
должен уметь восстанавливаться в двух разных случаях: после сбоя, где время
|
|
действительно прошло, и при старте из стартовой истории, где продолжение идёт
|
|
от `T_end` без искусственного разрыва.
|
|
|
|
Срез должен доказать поведение не только локальными тестами состояния, но и
|
|
данными в ClickHouse: активные визиты продолжаются или закрываются по правилам
|
|
модельного времени.
|
|
|
|
## Acceptance criteria
|
|
|
|
- [ ] State сохраняет достаточно данных, чтобы после сбоя вычислить модельную
|
|
точку возобновления при ×K.
|
|
- [ ] Восстановление после короткого модельного сбоя продолжает активные визиты
|
|
и досылает созревшие события с исходными модельными метками.
|
|
- [ ] Восстановление после долгого модельного сбоя закрывает сильно просроченные
|
|
активные визиты без досылки остатка.
|
|
- [ ] Восстановление из стартовой истории использует `T_end` как точку
|
|
возобновления и не обрывает активные визиты из-за настенного простоя.
|
|
- [ ] Визит, переживший восстановление, остаётся однородным: события до и после
|
|
восстановления не меняют контекст визита и не создают второй путь генерации
|
|
внутри одного `click_id`.
|
|
- [ ] Повреждённый или несовместимый state не валит сервис: генератор стартует
|
|
с чистого листа и пишет предупреждение.
|
|
- [ ] ClickHouse-проверка подтверждает, что на стыке восстановления нет дублей
|
|
событий и нет разрыва `click_id` внутри продолжающегося визита.
|
|
- [ ] После реализации выполнено саморевью worker-а и отдельное reviewer-ревью,
|
|
потому что задача меняет state/serialization и сервисное восстановление.
|
|
- [ ] Если исправление после ревью меняет формат state или способ восстановления,
|
|
выполнен повторный reviewer-круг.
|
|
|
|
## Blocked by
|
|
|
|
- `.scratch/generator-model-time-startup-history/issues/03-model-speed-and-day-factor.md`
|
|
- Review gate из `PRD.md`: сквозной инвариант времени после задачи 3
|