mirror of
https://github.com/rcourtman/Pulse.git
synced 2026-10-14 16:20:03 +00:00
d82d3bd627
Adds the subsystem contract deltas and verification artifacts for the preceding wearout and physical-disk-node fixes, which landed without them. The contracts now state the rule rather than leaving it implicit in each caller. Wearout has two absent states and one real zero, -1 is the unreported sentinel, and 0 is evidence only from a device that reports endurance at all. storagehealth.WearoutReported is the single authority, and alerting, the unified risk projection, and the frontend all gate on it. Storage-recovery records that disk-to-node association is evidence-directional, so a disk with no Proxmox scope still matches on node name while a scoped disk stays inside its instance. Proofs cover the predicate itself, a spent SSD alerting where it previously stayed silent, absent evidence staying quiet on both the unreported sentinel and a rotational zero, the view returning the sentinel rather than the struct zero value, and the presentation helpers agreeing with the server. Verified: full frontend suite 1061 files / 19405 tests, canonical completion guard, gofmt, go build ./..., and internal/alerts, internal/monitoring, internal/storagehealth, internal/unifiedresources.