mirror of
https://github.com/rcourtman/Pulse.git
synced 2026-05-22 03:02:35 +00:00
Found by actually generating two PDFs against the dev server and holding them in hand — neither was visible by reading code alone. 1. HEALTHY on empty data was misleading. A report against a resource with zero data points and no alerts showed a green HEALTHY card with "All systems operating normally," contradicting the "Data Points: 0" line on the cover. A user reading the report would believe their resource was operating cleanly when really Pulse had no metrics to evaluate. writeExecutiveSummary now detects TotalPoints == 0 and len(Summary.ByMetric) == 0 and renders a muted grey "NO DATA / No metrics reported during the selected window" card instead. 2. AI discoverability gap. With AI unconfigured (or failing), the PDF is functionally identical to what it was before the AI narrative work landed — no AI prose, no period comparison, no provenance footer. A user has zero signal that AI-narrated reports are a separate Pulse Assistant capability. Adds a one-line muted tip at the end of the executive summary when Narrative.Source == NarrativeSourceHeuristic pointing at Settings. Fleet path gets the same nudge scoped to fleet synthesis. Mutually exclusive with the AI provenance disclaimer so we never show both. Tests in pdf_ux_test.go inflate FlateDecode'd content streams to substring-check the actual rendered text, covering empty-data -> NO DATA, quiet-with-data -> HEALTHY (regression guard), heuristic narrative -> tip, AI narrative -> disclaimer + no tip, and the fleet-heuristic tip. |
||
|---|---|---|
| .. | ||
| agents | ||
| aicontracts | ||
| audit | ||
| auth | ||
| cloudauth | ||
| db | ||
| discovery | ||
| extensions | ||
| fsfilters | ||
| licensing | ||
| metrics | ||
| pbs | ||
| pmg | ||
| proxmox | ||
| pulsecli | ||
| reporting | ||
| securityutil | ||
| server | ||
| tlsutil | ||