Preserve reviewed monitoring work alongside upstream TrueNAS storage explanations

Incorporate exact current upstream additively without rewriting accepted candidates. Retain truthful History, private guidance and source ownership controls.

Change-source: pulse-maintainer
This commit is contained in:
pulse-triage[bot]
2026-10-05 08:27:33 +01:00
12 changed files with 562 additions and 59 deletions
@@ -695,9 +695,11 @@ The TrueNAS Storage `Storage type` scope follows the same boundary with stable
the current option through pressed-state semantics, preserves the scope in the
URL across reload, and removes the query value for the default `all` state.
On narrow screens the physical-disk scope may reprioritize its canonical table
columns to endurance, temperature, and health while retaining the shared table
columns to endurance and temperature while retaining the shared table
overflow and touch-target behavior; it must not introduce a second mobile-only
filter or table shell.
filter or table shell. Its Health column stays desktop-only in every scope:
the status dot carries a disk's condition on a phone, the row drawer carries
the reason, and the old pill clipped past the phone container edge.
Large-estate platform pages must keep one canonical inventory snapshot for the
initial read and explicit refresh path. The Proxmox and VMware vSphere
@@ -5278,7 +5280,10 @@ Platform table title-case fallback formatting follows the same rule.
`formatPlatformTableTitleCaseValue` owns the repeated trimmed-string plus
`Unknown` fallback behavior for state/status labels that need simple title
case. TrueNAS platform tables must compose that helper instead of declaring
local `titleCase` helpers.
local `titleCase` helpers. The apps, shares, services and VMs tables are its
required consumers. The storage table left that list when its Health cell
switched from a title-cased risk-level pill to TrueNAS's own reason text, and
the scope-wide guard against a local `titleCase` helper still covers it.
Platform table compact list summaries follow the same rule.
`summarizePlatformTableValues` owns the repeated trimming, empty-marker label,
visible-value count, `+N` overflow suffix, full-title text, and normalized
@@ -1014,7 +1014,18 @@ before text and status filters so metadata from an excluded disk cannot retain
its pool or dataset ancestor. Physical-disk presentation may prioritize the
canonical SMART health, temperature, and endurance evidence; absent wearout or
percentage-used telemetry remains unknown rather than being rendered as zero
remaining life.
remaining life. Storage health is exception-first: `getTrueNASStorageIssue`
returns nothing for healthy pools, datasets, and disks, so their Health cell
stays empty and the status dot alone says healthy. A non-healthy row carries
the reasons TrueNAS gave, in order: native TrueNAS alert text on that
resource, storage and physical-disk risk summaries, then the dataset state tag
(`state:locked`, `state:unmounted`, `state:readonly`, which is the only place
the provider says why a dataset is impaired). Without any of those it falls
back to the pool state, the disk health value, or an impaired TrueNAS source.
The first reason renders in the desktop Health column on the row's single line,
coloured by bucket, with a count for the rest and the full list in the title
and screen-reader text. Phones keep the status dot and reach the reason through
the row drawer. Health sorts by severity rank, not label text.
That shell also owns responsive width composition. Source tables may declare
desktop breakpoint floors, but the phone branch must fit its selected columns
inside the available container without a horizontal rail. Each unified-resource