SystemState: агрегация полного snapshot и публикация Planner #4

Open
opened 2026-06-15 13:23:15 +02:00 by yorunikakeru · 0 comments
Owner

Цель

Собрать результаты probes в latest-wins SystemState и публиковать Planner полный консистентный snapshot через tokio::sync::watch.

Scope

  • Зафиксировать Rust representation wire-контракта SystemState совместно с FrogOS/Planner#4.
  • Хранить последний известный результат каждого активного source.
  • После изменения source строить полный snapshot, не delta/event.
  • Публиковать только семантически изменившееся состояние, чтобы не запускать лишний replanning на каждом poll tick.
  • Определить representation для unavailable/unknown/stale source без подмены отсутствующих данных ложными значениями.
  • Добавить schema/version field и JSON golden fixtures.

Критерии приёмки

  • Медленный consumer получает последний полный snapshot; промежуточные snapshots могут coalesce без потери итогового состояния.
  • Одинаковые результаты двух polling ticks не отправляют новое изменение.
  • Удаление observation после IR reconcile удаляет либо явно помечает больше не наблюдаемый state согласно согласованному контракту.
  • Serialization tests совпадают с fixtures Planner.
  • Composite conditions не вычисляются в Watcher.

Зависимости

## Цель Собрать результаты probes в latest-wins `SystemState` и публиковать Planner полный консистентный snapshot через `tokio::sync::watch`. ## Scope - Зафиксировать Rust representation wire-контракта `SystemState` совместно с FrogOS/Planner#4. - Хранить последний известный результат каждого активного source. - После изменения source строить полный snapshot, не delta/event. - Публиковать только семантически изменившееся состояние, чтобы не запускать лишний replanning на каждом poll tick. - Определить representation для unavailable/unknown/stale source без подмены отсутствующих данных ложными значениями. - Добавить schema/version field и JSON golden fixtures. ## Критерии приёмки - Медленный consumer получает последний полный snapshot; промежуточные snapshots могут coalesce без потери итогового состояния. - Одинаковые результаты двух polling ticks не отправляют новое изменение. - Удаление observation после IR reconcile удаляет либо явно помечает больше не наблюдаемый state согласно согласованному контракту. - Serialization tests совпадают с fixtures Planner. - Composite conditions не вычисляются в Watcher. ## Зависимости - #2. - FrogOS/Planner#4. - Интеграция с scheduler #1 и probes #3.
Sign in to join this conversation.
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
FrogOS/Toad#4
No description provided.