v0.8.0
###v0.8.0 (2026-05-31)
- Feat (main): click any device tile on
/Mainto open a reskinned drive-info modal with five tabs — Health (SMART pass/fail verdict, temperature, power-on hours/cycles, capacity, identity), Attributes (ATA SMART table with failing/key attributes flagged, NVMe health log, SCSI counters), Self-test (run short/extended, live progress, abort, history log), Errors (array read-errors + disabled/unmountable reason + SMART error log), and Settings (spin-down delay + warning/critical temperature + SMART notification thresholds). The drive-name link still opens the stock/Main/Devicepage as an escape hatch. - Feat (main): new read-only
main-smart.phprunssmartctl --jsonto source the SMART data. It is deliberately a SEPARATE file frommain-state.php(whose zero-shell CI invariant is untouched), resolves the/devnode fromdisks.inirather than client input,escapeshellargs every token, and passes-n standbyso opening the panel never spins up a sleeping disk — it offers an explicit "wake & read" instead. The self-test trigger (short/extended/abort) validatescsrf_tokenagainstvar.ini; a new CI guard asserts the file may only ever invoke/usr/sbin/smartctl. Spin-down delay and SMART threshold writes reuse the stock/update.htm+/update.phpendpoints — no new privileged writes. - Feat (main): the Array Operation panel's Parity / Disks / System detail now sits behind a default-collapsed "Array details" disclosure to keep the top of the page compact; the array state + Start/Stop control and the capacity hero stay visible.
- Tests: +
main-smart.test.php(device-node resolution / controller-type arg escaping / smartctl-JSON normalization incl. NVMe, failing-disk, standby, exit-code bitmask, defensive parsing) + drive-info action-builder coverage. 442 TS + 13 PHP suites green.