- Зачем:
- следующей сессии нужен актуальный handoff после закрытия issue 19 и внешнего approve.
- Что:
- добавлены итоги коммита 9b0b063, проверки make test и make lint.
- зафиксированы ручные HITL-проверки, suggested skills и обновлённые открытые риски.
- Проверка:
- git diff --check.
7.1 KiB
7.1 KiB
Handoff: fixes after generator cross-line review
Дата: 2026-07-05 22:12. Жанр: handoff по ADR-0003 после coordinator-loop 15 -> 16 -> 17 -> 18.
Что закрыто
- 15: граница миров после обновления, clean/reset и host-запусков.
Коммиты:
080d5ae,108053b. - 16: свежий стенд и
generator_controlбез неявных ручных шагов. Коммиты:27947ce,9804d0b. - 17: доверенные проверки startup-history и Superset.
Коммиты:
00c97eb,6731349. - 18: курс 00/01/05 проходит по startup-history на чистом стенде.
Коммиты:
77e4fb6,6d64f39. - Follow-up 19: отдельная задача на единые
make testиmake lint. Коммит:2778eae. - Финальный review fix: документация больше не советует обычный
make generated-history-checkпосле backfill-only пути. Коммит:8e1c733. - Issue 19 закрыта после внешнего Claude review: единые
make testиmake lint, подключение корневых контрактных тестов и усиление проверок startup-history. Коммит:9b0b063.
Ключевые стыки реализации
generator/src/clickstream_generator/stand_clean.py— общий guard чистого стенда для Airflow и host-путей.scripts/assert_stand_clean.sh— host-проверка перед backfill/import/continue.airflow/dags/generator_control_dag.py— pause-checketl_pipelineдо мутирующих веток.scripts/check_generated_analytics.sh— manifest boundary, fail-closed live seam, непустой ODS и fail-closed проверка DM-витрин.scripts/run_generated_history_runtime_check.sh— bounded runtime gate для daily-wave + live seam.scripts/run_generator.sh—resetтеперь проходит clean-stand guard до запуска live-генератора.Makefile—make test,make lint,contract-test; обычный pytest-вывод тихий, подробность можно включить черезPYTEST_ARGS.generator/src/clickstream_generator/state.py— любая версия state не3.0даёт громкийUnsupportedStateVersionError;from_dict_safeбольше не глотает ошибку старой/неизвестной версии.generator/src/clickstream_generator/airflow_control.py—target_dag_trigger_error()покрывает три ветки pause-check без импорта Airflow.superset/create_dashboard.py— sync ограничен чартами целевого dashboard.docs/course/lessons/00_kafka_intro.md,docs/course/lessons/01_kafka_to_clickhouse.md,docs/course/lessons/05_monitoring.md— курс согласован с startup-history, no-live default и consumer lag.
Проверки
- Issue 15:
make generator-test,docker compose config --quiet,py_compile,bash -n. - Issue 16:
make generator-test,docker compose config --quiet,py_compile,make clean,make up,make ddl. - Issue 17: Docker target tests,
make generator-test,py_compile,bash -n,make generated-history-runtime-check. - Issue 18: doc
rg,git diff --check,make generated-history-analytics,make up. - Issue 19 / commit
9b0b063:make contract-test— 16 passed;make generator-test— 190 passed;make lint— passed;make test— 190 generator tests, 16 contract tests,docker compose config --quiet. - Финальный chain review
Gibbs: initialCHANGES_REQUESTED, narrow rerunAPPROVED.
Происхождение ревью
- 15: gate; task reviewer
Ptolemyhigh, code reviewerLinnaeushigh; оба rerunAPPROVED. - 16: code reviewer
Laplacehigh; primary review found paused-DAG order bug, later rerunsAPPROVED. - 17: code reviewer
Baconhigh; found Superset ownership and live-seam defaults; bounded runtime gate rerunAPPROVED. - 18: docs/code reviewer
Humehigh; found Prometheus scrape-count drift; rerunAPPROVED. - Финал: chain reviewer
Gibbsxhigh; found docs drift aroundgenerated-history-check; rerunAPPROVED. - После
9b0b063: внешний Claude review подтвердил закрытие всех девяти находок и далAPPROVED. Reviewer не перезапускал Docker-проверки сам, но сверил код, тесты и документы; фактические прогоны были выполнены координатором.
Отклонения процесса
- Локальный
uv run ... pytestу координатора падал до pytest из-заsnap-confine/cap_dac_override. Для координаторского gate целевые тесты запускались через Docker-образgenerator:test. Это вынесено в issue 19. - Первичный runtime gate issue 17 через полный
daily-waveбыл остановлен: прогон был активным, но слишком долгим для коммит-гейта. После этого добавлен boundedmake generated-history-runtime-check. - Несколько стендовых проверок чистили Docker volumes. Это ожидаемо для issue 16-18 и зафиксировано в журнале.
Что вручную проверить дальше
- Чистый ручной путь через Airflow UI:
make up,make ddlилиddl_init,airflow dags unpause etl_pipeline, затемgenerator_controlbackfill. - Backfill-only путь:
make generated-history-analytics, затемCHECK_LIVE_SEAM=0 make generated-history-check. - Стык backfill/live:
make generated-history-runtime-check. - Superset: после готового DM открыть dashboard и сверить, что чарты созданы и
Top Countries by Eventsчитается. - Kafka UI: в уроке 00 должны быть понятны четыре data-топика и служебные
generator_state,generator_startup_history_manifest,generator_batch_history.
Suggested skills
triage— если продолжать issue 13: он всё ещёneeds-triage.brainstorm-with-docs— если перед issue 13 нужно заново согласовать модель доливки истории от слепка.coordinator-loop— только после перевода issue 13 вready-for-agent.code-review— для внешнего прохода по коммитам после ручной проверки.
Открытые риски
- Ручная HITL-проверка после
9b0b063ещё не выполнена пользователем. - Issue 13 остаётся
needs-triage: доливка истории от слепка должна опираться на закрытые инварианты 15 и 17.