Skip to main content

MakeCombinedReport

Синхронный конструктор единого отчёта детекции: два анализа (trends + ensemble) + записанный трек → ReportRef (schema combined-detection/v1). Публикация — отдельным узлом PublishReport.

Pins

В отличие от MakeDetectionFusion (2–4 входа, настраивается), здесь ровно два фиксированных входа анализов — по одному на каждый детектор цепочки (trends + ensemble).

Runtime

Узел конструирует отчёт синхронно; тяжёлую упаковку/выгрузку host-runtime запускает как async job (report-build, существующий канал start-async-job) — рантайм не блокируется. Идемпотентность: повторный exec с теми же входами возвращает тот же отчёт (хэш входов на хосте) — alarm-loop не плодит дубли.

Preconditions

  • ReporterRef scoped к тому же journal, что и последующий PublishReport.
  • TrackRef от MakeTrack — завершённая запись.

Anti-patterns

  • Ставить узел на каждый тик alarm-loop «для надёжности» — идемпотентность спасёт от дублей, но упаковка всё равно нагружает host; конструируйте отчёт на осмысленной границе (например, по выходу из alarm-ветки).
  • Ждать от узла публикации: без PublishReport отчёт остаётся in-memory.

Minimal graph

Code

make-combined-report-node.ts · runtime/combined-report-executor.test.ts