Files
clickstream-ch-kafka-supers…/.scratch/generator-model-time-startup-history/issues/20-flaky-runtime-seam-check.md
T
ddadminandClaude Fable 5 a3ac4b4c46 docs(generator): переписана задача 13 и заведён баг флаки-гейта
- Зачем:
  - рамка задачи 13 пересмотрена: ценность доливки — кормление стенда
    дневными батчами (урок и имитация жизни), а не удлинение истории;
  - прогон пути менти 2026-07-07 показал, что runtime-гейт стыка
    backfill->live нестабилен — красный/зелёный через раз.
- Что:
  - задача 13 переписана под глагол next-day в generator_control:
    сценарии, развилка реализации (срез артефакта против доливки от
    слепка), закрыт вопрос про импорт частями (сейчас всё или ничего);
  - добавлена задача 20 про нестабильную runtime-проверку стыка с
    эмпирикой двух прогонов и гипотезами для диагноза.
- Проверка:
  - два прогона make generated-history-runtime-check (красный 8/19,
    затем зелёный) — зафиксированы в задаче 20.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-07 21:57:38 +03:00

67 lines
4.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
Status: needs-triage
# Runtime-проверка стыка нестабильна: фактура меняется через раз
## Parent
`.scratch/generator-model-time-startup-history/PRD.md`
## Что нашли
Два подряд прогона `make generated-history-runtime-check` на одном и том же
стенде (2026-07-07, проверка пути менти) дали разный результат:
- Прогон 1 (20:1820:20): **красный**
`Ошибка: per-event фактура меняется на стыке: 8/19`
(у 8 из 19 визитов, переживших границу backfill->live, поменялась
per-event фактура). При этом `duplicate_events=0`, events=2776.
- Прогон 2 (21:5x, та же команда, без изменений кода): **зелёный**
«runtime-проверка startup-history/live seam прошла», конфликтов 0,
events=2815.
Конфигурация проверки: `GEN_LAUNCH_PROFILE=daily-wave`,
`GEN_HISTORY_DURATION=1h`, `GEN_MODEL_T_END=2026-01-01T01:00:00+00:00`
(зашита в `scripts/run_generated_history_runtime_check.sh`).
## Почему это важно
- Это гейт, которому мы доверяем стык backfill->live (задача 17); флаки-гейт
ничего не гарантирует: красный пугает зря, зелёный ничего не доказывает.
- Смена фактуры на стыке — класс дефекта задачи 09, который считается
закрытым (донор фактуры сохранён в state, тихие fallback'и заменены на
ошибки). Либо фикс неполон, либо есть второй источник расхождения.
- Задача 13 (глагол next-day) навешивает на этот же механизм цепочку границ —
ей нужен доверенный, стабильный гейт.
## Гипотезы (проверить при диагнозе)
1. **Тихая запасная ветка рождения визита** (`generation.py`, ветка без
донора-кандидата): при истории в 1 час словарь визитов маленький, донора
с достаточным числом событий может не найтись. Задача 09 требовала
«молча оставить как есть нельзя» — проверить, что сделал фикс.
2. Недетерминизм live-части: реальное время тиков решает, какие визиты
пересекут границу; сам факт «через раз» указывает на зависимость от
wall-clock, а не от сида.
3. Проверочный SQL: убедиться, что сравнение полей не цепляет поля,
легитимно различающиеся (по образцу исключения `event_id` в задаче 09).
## Acceptance criteria (черновые)
- [ ] Причина расхождения 8/19 найдена и названа (код, не догадка).
- [ ] Либо генератор починен (фактура на стыке стабильна при любом профиле),
либо проверка исправлена (если ловила легитимные различия) — с объяснением.
- [ ] `make generated-history-runtime-check` стабилен: N подряд прогонов
зелёные (N >= 3), зафиксировано в задаче.
- [ ] Если срабатывает запасная ветка рождения — она стала громкой или
воспроизводимой при восстановлении (наследие задачи 09 и открытый вопрос
задачи 13 закрываются согласованно).
## Blocked by
- Нет. Диагноз можно начинать сразу; стенд воспроизводит через раз.
Связано: `09-seam-browser-fixture-not-preserved.md` (класс дефекта и решение
про донора), `13-backfill-top-up-from-snapshot.md` (нуждается в доверенном
гейте на цепочке границ), `17-trusted-checks-startup-history-superset.md`
(появление этого гейта).