Keep fractional container CPU labels truthful

Distinguish small positive CPU and History percentages from actual zero, and explain the existing host-capacity scale in container tables and drawers. Preserve raw values, sorting, collection and alert thresholds; cover desktop and phone rendering with a parent-bound browser receipt and connected tests.

Change-source: pulse-maintainer
This commit is contained in:
pulse-triage[bot]
2026-10-05 00:58:56 +01:00
parent b01dad904c
commit 7f95e40259
14 changed files with 362 additions and 3 deletions
@@ -20,6 +20,21 @@
## Purpose
### Observed CPU labels preserve small positives
Shared responsive CPU cells distinguish actual zero from small positive readings:
positive values below 0.1% display `<0.1%`, other values below 10% retain one
decimal without a trailing zero, and larger values keep whole-percent labels.
Both compact text and animated bars use the same formatter. Explicit labels,
non-CPU table formatting, unavailable/offline fallbacks, raw progress widths and
threshold colouring retain their existing contracts.
Shared percentage History legends, inspection and accessible descriptions never
round positive values below 0.1% to zero. Actual zero remains `0.0%`; all other
History units and precision stay unchanged. This changes displayed text only,
not readings, coordinates, stored points, selection, requests or alert policy.
Mounted responsive-cell and container row/drawer tests exercise these boundaries.
### Guest drawers consume selected memory provenance
Existing guest drawers consume optional server-owned `memory.observation` and
@@ -23,6 +23,20 @@ and sort the complete canonical change table while startup and ingestion wait.
## Purpose
### Container CPU presentation explains its existing scale
The existing Docker/Podman container table and drawer visibly explain that CPU
is a percentage of total host capacity: 100% means all host CPUs. Runtime stats
may use a per-core scale; the client never guesses core count or renormalises
readings to match a screenshot. The explanation remains visible in Overview and
History, including narrow screens, without relying on hover-only help.
Small positive CPU labels stay distinct from true zero in the real responsive
row and stored History inspection. Numeric sorting, metric identity, requests,
collector/ingest units, stored values and alert thresholds remain unchanged.
Connected container row/drawer controls establish presentation, not accurate
native collection, every-container continuity, alert delivery or reporter relief.
### Guest drawers consume selected memory provenance
Existing guest drawers consume optional server-owned `memory.observation` and