Update ghcr.io/analogj/scrutiny Docker tag to v0.10.0
No problems upgrading the Docker container with a Docker compose yaml file by means of Dockhand DevOps resp. GitOps with dependency update facilitated by Mend's Renovate Bot.
This MR contains the following updates:
| Package | Update | Change |
|---|---|---|
| ghcr.io/analogj/scrutiny | minor | v0.9.5-web → v0.10.0-web |
Release Notes
AnalogJ/scrutiny (ghcr.io/analogj/scrutiny)
v0.10.0
| Timestamp | SHA | Message | Author |
|---|---|---|---|
| 2026-11-01T05:35Z | 3ae9db2 |
(v0.10.0) Automated packaging of release by Packagr | packagrio-bot |
| 2026-10-31T15:56Z | 87682de |
test(notify): expect GetDeviceDetails in irregular upload test (#1137) |
Aram Akhavan |
| 2026-10-24T22:51Z | 5e71f6a |
feat(notify): name devices by friendly_name in notifications (#1136) Claude-Session: https://claude.ai/code/session_012Z7GCmjBAZyr57e2q2Yeg7 Co-authored-by: Claude Opus 5.5 noreply@anthropic.com | Aram Akhavan |
| 2026-10-24T22:50Z | fa47b44 |
fix(notify): keep the estimated upload period while uploads settle (#1135) Claude-Session: https://claude.ai/code/session_012Z7GCmjBAZyr57e2q2Yeg7 Co-authored-by: Claude Opus 5.5 noreply@anthropic.com | Aram Akhavan |
| 2026-10-24T02:54Z | cc48b73 |
feat(webapp): store friendly_name in the database and edit it from device settings (#1131) |
Aram Akhavan |
| 2026-10-23T18:50Z | a253dae |
feat(config): add global notify.on_missed_upload and notify.upload_period (#1133)notify, defaulting to true and 0devicesdevices[].notifications.upload_period a pointer so 0 can overridenotify.upload_periodGetDuration to the config interface |
Aram Akhavan |
| 2026-10-23T18:39Z | b10e260 |
feat(config): move per-device on_smartctl_error to scrutiny.yaml (#1128)devices[].notifications.on_smartctl_error to scrutiny.yamlnotify.on_smartctl_error to scrutiny.yaml, defaulting to truedevices[].notify.on_smartctl_error from collector.yaml |
Aram Akhavan |
| 2026-10-23T17:34Z | f51e7e6 |
refactor(config): look up device config by scrutiny_uuid (#1130)DeviceConfig.ScrutinyUUID as uuid.UUIDValidateConfig |
Aram Akhavan |
| 2026-10-22T05:43Z | bb2f84c |
feat(notify): skip notifications for devices with notifications.disabled (#1127)disabled to devices[].notifications |
Aram Akhavan |
| 2026-10-22T04:46Z | bd78fcd |
docs: add AGENTS.md (#1126) Co-authored-by: Claude Opus 5.5 noreply@anthropic.com | Aram Akhavan |
| 2026-09-30T18:06Z | c2ba6fb |
feat(webapp): title devices by host and friendly_name (#1100)DeviceModel.friendly_namedeviceTitleForType returns friendly_name when set, for any title typehost_id - friendly_name; title sort uses it too Co-Authored-By: Claude Opus 5.5 noreply@anthropic.com |
Aram Akhavan |
| 2026-09-30T18:06Z | 04baa9c |
feat(api): return each device's friendly_name from scrutiny.yaml (#1100)devices entries accept friendly_nameconfig.GetFriendlyNames: scrutiny UUID -> friendly_namemodels.Device.FriendlyName: JSON only, not storedfriendly_name in example.scrutiny.yaml Co-Authored-By: Claude Opus 5.5 noreply@anthropic.com |
Aram Akhavan |
| 2026-09-30T17:53Z | df420bf |
feat(notify): notify when a device misses an upload (#1099)MissedUploadTracker: per-UUID circular buffer of the last 3 upload times, for every device except on_missed_upload: falseupload_period 0: period is the average of the 2 deltas once they're within 10%; warns and waits otherwiseMissedUpload notificationdevices.estimated_upload_period (migration) and reloaded on startupUploadDeviceMetrics records successful uploads; AppEngine.Setup shares one trackerdevices in example.scrutiny.yaml, README section, SCRUTINY_FAILURE_TYPE values Co-Authored-By: Claude Opus 5.5 noreply@anthropic.com |
Aram Akhavan |
| 2026-09-30T17:45Z | 6082b4f |
refactor(notify): share the device message body across notification types (#1099)generateDeviceMessage: title, set device fields, details, dateGenerateCollectorErrorMessage uses it Co-Authored-By: Claude Opus 5.5 noreply@anthropic.com |
Aram Akhavan |
| 2026-09-30T17:44Z | 5b80316 |
feat(config): accept a devices list in scrutiny.yaml (#1099)config.DeviceConfig: scrutiny_uuid, notifications.on_missed_upload, notifications.upload_periodconfiguration.GetDevices decodes devices; added to config.Interface and its mockValidateConfig rejects invalid UUIDs and invalid or negative periods Co-Authored-By: Claude Opus 5.5 noreply@anthropic.com |
Aram Akhavan |
| 2026-10-12T21:51Z | ac2056d |
build(go): bump Go to 1.27.2 and golang.org/x/net to v0.61.0 (#1115) |
Aram Akhavan |
| 2026-10-12T19:31Z | 73bd56d |
ci(docker): scan published images for vulnerabilities (#1114) Co-Authored-By: Claude Opus 5.5 noreply@anthropic.com | Aram Akhavan |
| 2026-10-12T18:30Z | 9377054 |
ci(dependabot): add dependabot.yml (#1113) Co-authored-by: Claude Opus 5.5 noreply@anthropic.com | Aram Akhavan |
| 2026-10-04T22:57Z | 9fc491c |
build(deps-dev): bump piscina from 5.3.0 to 5.3.2 in /webapp/frontend (#1106) Bumps piscina from 5.3.0 to 5.3.2. - Release notes - Changelog - Commits --- updated-dependencies: - dependency-name: piscina dependency-version: 5.3.2 dependency-type: indirect ... Signed-off-by: dependabot[bot] support@github.com Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> | dependabot[bot] |
| 2026-10-04T22:57Z | aaae0d0 |
build(deps): bump brace-expansion in /webapp/frontend (#1105) Bumps brace-expansion from 2.1.2 to 2.1.7. - Release notes - Commits --- updated-dependencies: - dependency-name: brace-expansion dependency-version: 2.1.7 dependency-type: indirect ... Signed-off-by: dependabot[bot] support@github.com Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> | dependabot[bot] |
| 2026-10-04T22:56Z | aee58e9 |
build(deps): bump moment from 2.30.1 to 2.31.0 in /webapp/frontend (#1104) Bumps moment from 2.30.1 to 2.31.0. - Release notes - Changelog - Commits --- updated-dependencies: - dependency-name: moment dependency-version: 2.31.0 dependency-type: direct:production ... Signed-off-by: dependabot[bot] support@github.com Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> | dependabot[bot] |
| 2026-09-30T22:50Z | 043758c |
feat(detail): show total bytes read/written on the device details card (#1097) |
Aram Akhavan |
| 2026-09-30T18:05Z | 985907a |
chore(docker): bump omnibus InfluxDB to 2.8 (#1098) Claude-Session: https://claude.ai/code/session_01M32VXfytXy1EBddz3PKjEL Co-authored-by: Claude Opus 5.5 noreply@anthropic.com | Aram Akhavan |
| 2026-09-25T03:26Z | 1dbdc34 |
fix(collector): skip drives that -n left in a low power mode (#1032) Refs #942 Exit status 2 is shared: it means both "device open failed" and "device is in a low power mode and -n asked me to exit". When FAILDEV is the only bit set and the configured smart args contain -n/--nocheck, the drive is simply asleep, so the collector logs that at info level and moves on without publishing and without notifying. Co-Authored-By: Claude Opus 5 (1M context) noreply@anthropic.com | Aram Akhavan |
| 2026-09-25T03:25Z | 245055c |
fix(collector): stop publishing incomplete smartctl data (#1032) Closes #944 - don't publish collector results from failed smartctl runs to avoid polluting the db - treat killed smartctl as a smartctl failure - check the backend's return code on publish and report non-200 Co-Authored-By: Claude Opus 5 (1M context) noreply@anthropic.com | Aram Akhavan |
| 2026-09-25T03:25Z | a8ceac9 |
feat(collector): report smartctl failures so the webapp can notify (#1032) Closes #945 - add POST /api/collector/error, so the collector can report failures that leave a device missing from the dashboard rather than merely stale - split Detect.Start() into Scan() and Info(); Info() returns a DeviceInfoError per device, so each failure is reported with its own cause - report smartctl --scan failures and per-device smartctl --info failures, which were previously swallowed - a device that fails --info never gets a ScrutinyUUID, so it silently disappeared - new collector.yaml notify_on_smartctl_error (default true), and the same key per entry in devices:. The top level one covers --scan and any device without its own; a device's own setting takes priority The collector decides what is worth reporting, so there is no webapp setting and nothing to migrate. Co-Authored-By: Claude Opus 5 (1M context) noreply@anthropic.com |
Aram Akhavan |
| 2026-09-25T20:27Z | 05749d4 |
refactor(collector): type smartctl's exit status as a bitmask (#1032) - add SmartctlExitStatus mirroring smartctl.h, used by SmartInfo and Scan - LogSmartctlExitCode becomes LogSmartctlExitStatus, logging every set bit - the old if/else chain reported only the lowest bit, so status 0x18 logged "failing disk" and swallowed the pre-fail bit Co-Authored-By: Claude Opus 5 (1M context) noreply@anthropic.com | Aram Akhavan |