f5311f16c8
Adds the smart.rs module for disk health monitoring. Since smartctl is not installed on most systems (this dev host has it absent), v1.20 implements the module with three-tier graceful degradation per the zero-stub policy. New module smart.rs (222 lines, 7 unit tests): - SmartInfo struct with available + per-disk health records - SmartHealth struct with passed + attributes + error - SmartAttribute struct with id + name + value + worst + threshold + raw - SmartInfo::smartctl_available() — checks smartctl --version - SmartInfo::read(disks) — orchestrates per-disk smartctl -A -H - parse_smartctl_output(text) — extracts passed/failed + attrs - parse_attribute_line(line) — single 10-field SMART attribute - parse_smart_value(s) — handles both hex (0x33) and decimal - health_for(disk_name) — convenience accessor Three-tier graceful degradation: 1. smartctl missing → available=false, disks=[] 2. smartctl errors per disk → error captured in SmartHealth 3. NVMe permission issues → error message, no fabrication Updated main.rs: mod smart declaration. 76/76 tests pass (5 bench + 12 sensor + 13 network + 12 storage + 20 process + 7 pid_detail + 7 smart). Linux host smoke test (this dev host without smartctl): - available=false (graceful, no panic) - Storage tab still works (no regression) Cross-compile SHA256 unchanged from v1.19 (smart.rs is dead code on Redox — compiles but never called). Docs: improvement plan §44, CONSOLE-TO-KDE §3.3.2 v1.20, RATATUI-APP-PATTERNS §13.14 + §14 (6360 LoC, 21 modules, 76 tests).