Intent: a machine's disks read at a glance. (Replaces the open boxes of #10466; diskSummary in src/machines/disk_readings.ts exists but src/web/pages/machines.ts does not call it.)
[ ] On GET /:owner/:name/settings/machines, each machine lists its disks from diskSummary, one line each when healthy: model, written of rated TBW with its percentage, temperature.
[ ] A <details> opens to every figure with its rating beside it (percentage used, spare vs threshold, media errors, minutes above warning/critical, power-on hours, unsafe shutdowns, projected TBW date).
[ ] A test renders the page for a healthy, an alerting and a behind-controller disk and asserts the lines.
[ ] bun scripts/design-lint.ts passes; before/after screenshots in the pull.
Files: src/web/pages/machines.ts, test/machines-disks.test.ts (new; list it in scripts/gate.ts if the gate still needs it).
Risks: a behind-controller disk has no SMART figures; show 'not readable', not zero. Brief: scout or mason.
Intent: a machine's disks read at a glance. (Replaces the open boxes of #10466;
diskSummaryin src/machines/disk_readings.ts exists but src/web/pages/machines.ts does not call it.)GET /:owner/:name/settings/machines, each machine lists its disks fromdiskSummary, one line each when healthy: model, written of rated TBW with its percentage, temperature.<details>opens to every figure with its rating beside it (percentage used, spare vs threshold, media errors, minutes above warning/critical, power-on hours, unsafe shutdowns, projected TBW date).bun scripts/design-lint.tspasses; before/after screenshots in the pull.Files: src/web/pages/machines.ts, test/machines-disks.test.ts (new; list it in scripts/gate.ts if the gate still needs it). Risks: a behind-controller disk has no SMART figures; show 'not readable', not zero. Brief: scout or mason.