diff --git a/.scratch/generator-model-time-startup-history/coordinator-journal.md b/.scratch/generator-model-time-startup-history/coordinator-journal.md index 56a7a6b..b52540e 100644 --- a/.scratch/generator-model-time-startup-history/coordinator-journal.md +++ b/.scratch/generator-model-time-startup-history/coordinator-journal.md @@ -450,3 +450,67 @@ с применённым DDL. - 20:46 Issue 16 рабочий коммит: `27947ce` (`fix(airflow): исправлен запуск пульта на свежем стенде`). + +- 20:47 Перед issue 17: дерево clean; issue 15 и 16 закрыты. Issue 17 + запущен worker-у. Режим ревью: обычный; worker reasoning_effort=`medium`; + code review после реализации `high`. +- 20:54 Issue 17: worker вернул `DONE_WITH_CONCERNS`. Индекс: + `check_generated_analytics.sh` берёт `model_t0/model_t_end/profile` из + фактического Kafka manifest, ждёт live-строки перед seam-check и требует + ненулевые ODS device/geo; `generated-history-check` пробрасывает PROFILE; + добавлен CLI `kafka-manifest-summary`; Superset tests сравнивают полный + существенный `params`; top countries сортируется по `Events, pcs`; sync + удаляет дубли только в целевом датасете; деструктивность sync задокументирована. + Checks: generated analytics contract PASS; Superset config PASS; startup + history artifact PASS; `py_compile` PASS; `bash -n` PASS; `git diff --check` + PASS. Concern: полный `PROFILE=daily-wave CHECK_LIVE_SEAM=1 make + generated-history-check` не выполнен. +- 20:55 Issue 17 code review запущен координатором: свежий observer-субагент + `Bacon`, reasoning_effort=`high`, без правок репозитория и среды. +- 20:58 Issue 17 code review `Bacon`: `CHANGES_REQUESTED`. Findings: + Superset sync всё ещё может перезаписать/удалить одноимённый чарт вне + целевого dashboard при том же датасете; `CHECK_LIVE_SEAM=auto` может зелёно + пропустить попытку live без строк после стыка. Индекс возвращён worker-у + дословно. +- 21:02 Issue 17: worker вернул `DONE_WITH_CONCERNS` после code review. + Исправлено: Superset sync/delete ограничены чартами целевого dashboard; + обычный `generated-history-check` требует live-строки, а backfill-only путь + явно отключает seam-check. Checks: generated analytics + Superset tests PASS; + startup history artifact PASS; `bash -n` PASS; `py_compile` PASS; + `git diff --check` PASS. Отклонений и споров нет; полный runtime-прогон + ещё не выполнен. +- 21:02 Issue 17 code narrow rerun отправлен `Bacon`: проверить закрытие + находок по Superset sync ownership и live seam default. +- 21:03 Issue 17 code narrow rerun `Bacon`: `APPROVED`. Findings: нет. + Chain-level решение: открыть коммит-гейт 17. +- 21:19 Issue 17 commit gate partial: локальный `uv` не дошёл до pytest из-за + `snap-confine`/`cap_dac_override`; Docker target tests PASS (12); + `make generator-test` PASS (186); `py_compile` PASS; `bash -n` PASS; + `git diff --check` PASS. Runtime prep `PROFILE=daily-wave make + generated-history-analytics` был остановлен после долгого выполнения: + generator-run и ClickHouse были активны, но gate не завершался за разумное + время; после SIGINT running services только `clickhouse`, `kafka`. Finding + возвращён worker-у: нужен точный bounded runtime-путь или изменение проверки. +- 21:27 Issue 17: worker вернул `DONE` после runtime gate finding. + Добавлен bounded `make generated-history-runtime-check`: короткий daily-wave + backfill 1h, live через Compose env, ожидание STG growth до 25s, второй batch + и `CHECK_LIVE_SEAM=1 REQUIRE_SUPERSET=0`. Контрактный тест и OPERATIONS + обновлены. Checks worker-а: Docker target tests PASS (13); `bash -n` PASS; + `py_compile` PASS; `git diff --check` PASS; `make + generated-history-runtime-check` PASS. Ключевые факты runtime: + profile=`daily-wave`, `model_t_end=2026-01-01T01:00:00+00:00`, + STG 10256 -> 10975, crossing visits 19, ODS device/geo 19/19. Concern: + runtime gate чистит volumes и оставляет `clickhouse`, `kafka` running. +- 21:28 Issue 17 code narrow rerun отправлен `Bacon`: проверить bounded + runtime gate и отсутствие нового рядом с уже одобренными исправлениями. +- 21:29 Issue 17 code narrow rerun `Bacon`: `APPROVED`. Findings: нет. + Chain-level решение: повторить коммит-гейт 17 с bounded runtime gate. +- 21:32 Issue 17 final commit gate: Docker target tests PASS (13); + `make generator-test` PASS (186); `py_compile` PASS; `bash -n` PASS; + `git diff --check` PASS; `make generated-history-runtime-check` PASS. + Runtime facts: STG 10256 -> 10862, `manifest_launch_profile=daily-wave`, + `manifest_model_t_end=2026-01-01T01:00:00+00:00`, crossing visits 19, + ODS device/geo 19/19. Diff в границах issue 17; журнал не staged. Runtime + gate оставил `clickhouse`, `kafka` running. +- 21:32 Issue 17 рабочий коммит: `00c97eb` + (`test(generator): усилены проверки startup-history и Superset`). diff --git a/.scratch/generator-model-time-startup-history/issues/17-trusted-checks-startup-history-superset.md b/.scratch/generator-model-time-startup-history/issues/17-trusted-checks-startup-history-superset.md index 1a367c8..4198e7b 100644 --- a/.scratch/generator-model-time-startup-history/issues/17-trusted-checks-startup-history-superset.md +++ b/.scratch/generator-model-time-startup-history/issues/17-trusted-checks-startup-history-superset.md @@ -1,4 +1,4 @@ -Status: ready-for-agent +Status: done # Проверки startup-history и Superset без ложного зелёного @@ -20,20 +20,20 @@ Status: ready-for-agent ## Acceptance criteria -- [ ] Проверка startup-history берёт границу стыка из манифеста фактического +- [x] Проверка startup-history берёт границу стыка из манифеста фактического прогона, а не из значения окружения по умолчанию. -- [ ] ODS-часть проверки не проходит на пустом ODS: отсутствие строк считается +- [x] ODS-часть проверки не проходит на пустом ODS: отсутствие строк считается ошибкой проверки, а не успешным результатом. -- [ ] Профиль запуска доходит до проверки: сценарий с `daily-wave` проверяет +- [x] Профиль запуска доходит до проверки: сценарий с `daily-wave` проверяет именно мир `daily-wave`, а не диапазон `ci`. -- [ ] Ожидание live-строк доказывает, что живое продолжение реально успело +- [x] Ожидание live-строк доказывает, что живое продолжение реально успело записать данные; короткое ожидание не должно превращать проверку стыка в пропущенную проверку. -- [ ] Тест Superset сравнивает полный существенный контракт `params` между +- [x] Тест Superset сравнивает полный существенный контракт `params` между конфигурацией и export, а не только небольшой набор полей. -- [ ] Сортировка top countries задана явно по числу событий, чтобы порядок не +- [x] Сортировка top countries задана явно по числу событий, чтобы порядок не зависел от случайной формы ответа после pivot. -- [ ] Повторная синхронизация Superset не удаляет одноимённые чарты вне целевого +- [x] Повторная синхронизация Superset не удаляет одноимённые чарты вне целевого источника данных или dashboard; деструктивность sync задокументирована. ## Blocked by