github Starosdev/scrutiny v1.79.0

3 hours ago

v1.79.0 (2026-10-31)

Release Highlights

  • Promote MDADM array management and per-machine host ids (#1073) - Closes #1046, Closes #1047, Closes #1051, Fixes #1053, Fixes #1056
    • MDADM arrays can now be archived, muted, labelled and deleted from the UI. Collectors derive a per-machine host id instead of sharing one empty default, which is what made per-drive filesystem free space match nothing on an unconfigured host. Consumer drive profiles now match 3 ATA drives they previously missed and score a fourth against its own profile instead of a vendor-wide catch-all, and importing an AnalogJ 0.9.x database no longer fails on duplicate device rows.
    • MDADM array management: archive, mute, label and delete, matching what devices already support.
    • Collectors derive a per-machine host id rather than falling back to an empty default that the SMART and filesystem collectors interpreted differently. Existing data recorded under the old empty or default id is reconciled rather than stranded, so per-drive filesystem free space works without setting COLLECTOR_HOST_ID by hand.
    • Consumer drive profile matching is keyed on model identity: every model-identity stage now outranks the smartctl-reported model family, which varies with the collector's drivedb and is sometimes a vendor-wide catch-all. On a 15-drive ATA fleet that recovers 3 drives which matched nothing and moves 1 off a catch-all onto its own profile. The remaining 10 belong to families with no bundled profile at any name (IronWolf, IronWolf Pro, Exos X14 and X16, BarraCuda 3.5 SMR, Toshiba X300) and still use generic ATA rules.
    • Importing an AnalogJ 0.9.x database with duplicate device rows no longer fails with a WWN creation error. A drive that 0.9.x split into two rows is merged back into one device, keeping the earlier created_at, the user metadata and the SMART history from both rows, and the migration deletes the row it merges away. Where it cannot tell two rows apart it leaves both in place and logs the reason, for POST /api/device/{id}/merge_into.
    • md member attribution is decided from the array slot rather than the spare flag, so a member mid-rebuild keeps its filesystems instead of losing them for the whole resync window, and a readable slot of none is believed rather than guessed at.
    • npm audit passes on both lockfiles again, the first green run since 2026-09-30. follow-redirects is patched outright; the glob, minimatch and bundled-npm findings pass under recorded exceptions that expire 2026-12-15, because their only fixes are majors no consumer declares. See docs/DEPENDENCIES.md.

Don't miss a new scrutiny release

NewReleases is sending notifications on new releases.