[object Object]

← back to Nas Setup

Add com.steve.backup-daemon-health LaunchAgent (hourly user-context Henry-mirror canary, --alert de-nagged) — Steve-approved (TK-10547)

a0216d51779c0e2f98ec659dd9c48387ad61e329 · 2026-08-13 21:18:47 -0700 · Steve

Files touched

Diff

commit a0216d51779c0e2f98ec659dd9c48387ad61e329
Author: Steve <steve@designerwallcoverings.com>
Date:   Thu Aug 13 21:18:47 2026 -0700

    Add com.steve.backup-daemon-health LaunchAgent (hourly user-context Henry-mirror canary, --alert de-nagged) — Steve-approved (TK-10547)
---
 launchd/com.steve.backup-daemon-health.plist | 38 ++++++++++++++++++++++++++++
 1 file changed, 38 insertions(+)

diff --git a/launchd/com.steve.backup-daemon-health.plist b/launchd/com.steve.backup-daemon-health.plist
new file mode 100644
index 0000000..1e00adf
--- /dev/null
+++ b/launchd/com.steve.backup-daemon-health.plist
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<!--
+  com.steve.backup-daemon-health — hourly USER-context canary for the on-prem backup ROOT
+  daemons. Runs nas-setup/scripts/daemon-health.sh --alert: reads each root daemon's launchd
+  last_exit + Henry dump freshness, emits a PASS/WARN/FAIL heartbeat, and (de-nagged) alerts
+  CNCP + George on a worsening transition or a 20h re-nag while broken. USER context because
+  the root daemon's own email path is dead (HOME=/var/root has no ~/.claude.json creds).
+  Closes the gap where dw-backup-canary watches only the Kamatera SOURCE, never the Henry MIRROR.
+  Approved by Steve 2026-08-13 (TK-10547). Install: launchctl bootstrap gui/$(id -u) <this>.
+-->
+<plist version="1.0">
+<dict>
+  <key>Label</key>
+  <string>com.steve.backup-daemon-health</string>
+  <key>ProgramArguments</key>
+  <array>
+    <string>/opt/homebrew/bin/bash</string>
+    <string>/Users/macstudio3/Projects/nas-setup/scripts/daemon-health.sh</string>
+    <string>--alert</string>
+  </array>
+  <key>EnvironmentVariables</key>
+  <dict>
+    <key>PATH</key>
+    <string>/opt/homebrew/bin:/usr/bin:/bin:/usr/sbin:/sbin</string>
+  </dict>
+  <key>StartCalendarInterval</key>
+  <dict>
+    <key>Minute</key><integer>15</integer>
+  </dict>
+  <key>RunAtLoad</key>
+  <false/>
+  <key>StandardOutPath</key>
+  <string>/Users/macstudio3/Projects/nas-setup/data/launchd-daemon-health.out.log</string>
+  <key>StandardErrorPath</key>
+  <string>/Users/macstudio3/Projects/nas-setup/data/launchd-daemon-health.err.log</string>
+</dict>
+</plist>

← 1a0f985 daemon-health --alert: add de-nag (fire only on worsening tr  ·  back to Nas Setup  ·  daemon-health: dual-write heartbeat to ~/.claude/skills/back 70a847e →