- Зачем:
- менти доставался плоский тестовый профиль ci; учебный профиль
должен быть один — daily-wave с суточной волной (issue #6).
- Что:
- дефолт daily-wave во всех точках: форма пульта generator_control,
launch.py (API и CLI), Config, Makefile, четыре shell-скрипта.
- автопроверки передают ci явно; контрактный тест пульта теперь
проверяет сам дефолт Param профиля (через AST), а не подстроку.
- доки в том же изменении: README, OPERATIONS, TEST_PLAN,
generator/README, runbook startup-history.
- Проверка:
- make test (206 + 31 passed) и make lint — зелёные.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
- Зачем:
- режим кормления стенда порциями: менти триггерит «следующий день»,
видит полный цикл DWH за один шаг (задача 13, вариант 2 — генерация
от слепка T_end).
- Что:
- новый ограниченный режим next-day: восстановление мира из state,
генерация ровно [T_end, T_end+24h), публикация данные -> state ->
манифест (манифест — точка фиксации, автоотката нет).
- операция next-day в DAG generator_control: своя предпроверка границы
вместо clean-guard, идемпотентность через параметр expected_t_end.
- цепочка границ — накопительное поле boundaries в манифесте, старый
формат читается как [T0, T_end]; импорт не изменён.
- новая проверка цепочки (make generated-history-chain-check): непарные
счётчики и однородность по каждой границе, явный статус нулевого
стыка, хвост за границей по всем четырём топикам, литералы в UTC
с микросекундами.
- документация OPERATIONS.md: глагол, предпроверка, восстановление
после сбоя, ограничение retention; в задаче 13 — решения двух слепых
ревью постановки и кода с аргументами отклонений.
- Проверка:
- make test: 204 теста генератора + 31 контракт корня, зелёные.
- make generated-history-chain-check: зелёный, 2 внутренние границы,
непарные счётчики нулевые; учебный цикл: DM 322 -> 10026 -> 19196
за два next-day подряд.
- make generated-history-runtime-check (регрессия задачи 20): зелёный.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
- Зачем:
- коммит-гейт не запускал корневые контрактные тесты, а часть подтверждённых обходов могла снова смешать разные миры генератора.
- Что:
- добавлены цели make test, make lint и contract-test с тихим pytest-выводом через Docker.
- закрыты обходы через generator-reset, неизвестную версию state и fail-open проверку DM-витрин.
- усилены поведенческие контракты CHECK_LIVE_SEAM, профиля manifest и pause-check etl_pipeline; обновлены документы и issue 19.
- Проверка:
- make test; make lint; git diff --check.
- Зачем:
- зелёный результат проверок должен означать фактический стык и точный контракт дашборда.
- Что:
- проверка startup-history читает manifest, требует live seam и непустой ODS.
- добавлен быстрый runtime gate для daily-wave и live-продолжения.
- Superset sync ограничен целевым dashboard и сверяет существенные params.
- Проверка:
- docker target tests; make generator-test; make generated-history-runtime-check.
- Зачем:
- старый state и ручной live-генератор могли тихо писать события в новый мир данных.
- Что:
- добавлена общая проверка чистого стенда для Airflow и host-путей.
- защищены backfill, import, continue и clean-start сценарии live-generator.
- описан миграционный отказ старого state.
- Проверка:
- make generator-test; docker compose config --quiet; py_compile; bash -n.
- Зачем:
- визит после восстановления не должен менять браузер и источники перехода внутри одного click_id.
- Что:
- добавлен base_click_id в state v3 для восстановления донора фактуры.
- исправлено восстановление timestamp offset без потери микросекунд.
- расширены тесты и стыковая проверка browser/source и device/os/geo.
- Проверка:
- uv run --with-requirements generator/requirements.txt pytest generator/tests -q.
- bash -n scripts/check_generated_analytics.sh.
- git diff --cached --check.
- Зачем:
- чистый стенд должен строить аналитику из генерации, а не из архивного JSONL-сида.
- Что:
- добавлены команды generated-history-analytics и generated-history-check.
- обновлены README, operations и Superset-документы под путь generator backfill -> DM -> Superset.
- создан follow-up на миграцию учебных материалов с архивного сида.
- Проверка:
- make generated-history-analytics.
- make generated-history-check.
- reviewer gate issue 06 пройден без блокирующих находок.
Move DDL files from flat ddl/ directory to sql/ddl/ with layer-based
subdirectories (stg, ods, dds, dm). Move batch transformation SQL from
jobs/ to sql/ layer directories. Update scripts and documentation to
reflect new paths for improved organization and Airflow integration.
Add batch ETL pipeline with ODS→DDS→DM transformation jobs and scripts.
Create DDL infrastructure with automated database schema application.
Update Makefile with transform target for executing batch processes.
Rewrite README with complete Russian documentation including architecture
diagrams, quick start guide, and data flow visualization.
Add build automation via Makefile with targets for docker compose
management, DDL application, and data ingestion. Implement a robust bash
script for loading JSONL demo data into Kafka topics with configurable
options for limits, full dataset loading, and topic reset behavior.