Pulse/pkg
rcourtman 686c2e8716 feat(reporting): availability section computed from the resource state timeline
Performance reports answered 'what were the averages' but never 'was my
infrastructure up' - the question a managed-service client reads a
monthly report for. Reports now carry an Availability summary derived
from the recorded resource change timeline (state_transition entries
keyed by the canonical unified ID):

- uptime percent over the observed portion of the window, outage count,
  total downtime, and longest outage, rendered in the executive summary
  with an explicit semantics note; fleet summaries gain a per-resource
  Uptime column and CSV exports gain availability header lines
- absent/unknown spans are unobserved time: excluded from the uptime
  math entirely and disclosed as coverage, never counted as downtime.
  The journal records a registry absence for every monitor restart, so
  treating gaps as outages would invent fleet-wide downtime every time
  the operator restarts Pulse
- warning states count as up (the resource is reachable and serving);
  the uptime label clamps rounding so any real downtime can never
  display as a clean 100%
- resources with no timeline render no availability section at all
  rather than a fabricated number

Verified live against a real 7-day window: uptime/outage/downtime
figures reconcile with the raw resource_changes journal.
2026-06-10 17:48:11 +01:00
..
agents fix(disks): report authoritative disk size and namespace devpath from the host agent 2026-05-29 19:55:53 +01:00
aicontracts Make Patrol reasoning model-owned 2026-05-15 12:22:52 +01:00
audit Harden audit log store failures 2026-05-28 13:44:20 +01:00
auth Clear all errcheck and gofmt violations so make lint gates on real findings 2026-06-09 21:42:21 +01:00
cloudauth fix(hosted): preserve direct handoff membership continuity 2026-03-26 23:40:02 +00:00
db feat: Pulse v6 release 2026-03-18 16:06:30 +00:00
discovery Pin discovery HTTP probes to captured TLS peers 2026-03-29 19:32:56 +01:00
extensions Restore commercial monitored-system admission hook contract 2026-05-06 18:04:59 +01:00
fsfilters Improve Machines disk summaries 2026-06-03 11:09:58 +01:00
licensing fix(licensing): honor activated licenses for dev-grant-excluded features in dev mode 2026-06-10 17:09:00 +01:00
metrics Clear all errcheck and gofmt violations so make lint gates on real findings 2026-06-09 21:42:21 +01:00
pbs Fix PBS job task history filters 2026-05-13 17:09:45 +01:00
pmg Harden outbound URLs and file-backed storage 2026-03-29 12:47:55 +01:00
proxmox Dedupe alerts PMG queue checks, vmware clones, licensing and proxmox client clones 2026-06-10 09:49:03 +01:00
pulsecli Dedupe internal/api handler families behind shared flows and generics 2026-06-10 10:52:05 +01:00
reporting feat(reporting): availability section computed from the resource state timeline 2026-06-10 17:48:11 +01:00
securityutil Allow insecure dev HTTP agent runtime URLs 2026-04-23 13:48:54 +01:00
server Clear all errcheck and gofmt violations so make lint gates on real findings 2026-06-09 21:42:21 +01:00
tlsutil Fail closed on auth env hashing and TLS floors 2026-04-22 05:53:02 +01:00