The observer UI currently presents observationCount as a packet statistic although the legacy counter advances on general presence calls, including status/neighbour handling. Broker last_packet_at is also advanced by those paths. Period charts use deduplicated stored observations, so the labels describe different counts.
Implement the approved observer release foundation: separate broker presence and packet arrival timestamps; keep the legacy counter compatible and documented; extend observer activity with a common effective window, generated time, selected-period recorded count, last complete hour count, and latest recorded packet timestamp. Counts must reconcile with charts, including unknown payload types, and survive the independent analytics archive. Validate status-only, duplicate broker deliveries, nullable samples, archive expiry and aligned comparison windows with PostgreSQL. Compare CoreScope on matching public key/time bounds without claiming cumulative counter differences are packet loss. Depends on retention PR #167 for the hourly archive foundation.
The observer UI currently presents observationCount as a packet statistic although the legacy counter advances on general presence calls, including status/neighbour handling. Broker last_packet_at is also advanced by those paths. Period charts use deduplicated stored observations, so the labels describe different counts.
Implement the approved observer release foundation: separate broker presence and packet arrival timestamps; keep the legacy counter compatible and documented; extend observer activity with a common effective window, generated time, selected-period recorded count, last complete hour count, and latest recorded packet timestamp. Counts must reconcile with charts, including unknown payload types, and survive the independent analytics archive. Validate status-only, duplicate broker deliveries, nullable samples, archive expiry and aligned comparison windows with PostgreSQL. Compare CoreScope on matching public key/time bounds without claiming cumulative counter differences are packet loss. Depends on retention PR #167 for the hourly archive foundation.