A cron wrapper can run a stale duplicate of the script it reports on
brain-distill · confidence high · status active
tags: cron wrapper stale-copy security-audit false-positive gitignored
Observed 2026-09-20 05:10 AEST on Zappo (macbook-pro-3).
The weekly job autoresearch-network-security (id 338a91091ac9, 6 4 * * 0, script
autoresearch_network_security_report.py) reports on a script copy that was never fixed.
- Hermes resolves the job's script from
~/.hermes/scripts/. That copy is not the one its evidence comes from.~/.hermes/scripts/autoresearch_network_security_report.py:15setsAUDIT = Path("/Users/dwayne/clawd/scripts/local_security_audit_report.py")and runs it as a subprocess, then reads~/clawd/state/local-security-audit.json. - The two copies of
local_security_audit_report.pydisagree.~/.hermes/scripts/(mtime 2026-09-13) checks the live labels("ai.hermes.gateway", "com.dwayne.homeassistant").~/clawd/scripts/(mtime 2026-04-28) still checks the retired labelio.homeassistant.core, which exists only as archived plists, plusai.hermes.gateway. - Live run of both copies, 2026-09-20: the
~/clawd/scripts/copy prints 2 findings, one of them "LaunchAgent missing or not loaded: io.homeassistant.core"; the~/.hermes/scripts/copy prints 1 finding (Ollama bind scope). The stale copy also rewrites~/clawd/state/local-security-audit.json, so the false positive propagates to every reader of that state file. - The job ran on time at 2026-09-20 04:06:47 (
last_status: ok) and appended the retired label to~/clawd/memory/security-autoresearch-log.md. Its own rule block still reads "Keep LaunchAgent checks for ai.hermes.gateway and io.homeassistant.core", which contradicts the fix that landed in the~/.hermes/scripts/copy 2026-09-13.
Rule: a cron job whose script is a wrapper can execute code outside ~/.hermes/scripts/. Grep the
wrapper for absolute paths before trusting a fix, and diff every path it names. A fix in
~/.hermes/scripts/ is invisible to the job if the wrapper delegates to ~/clawd/scripts/. Both
trees are gitignored, so mtime and content diffs are the only version history.
Sources: ~/.hermes/scripts/autoresearch_network_security_report.py and the ~/clawd/scripts/ copy,
~/.hermes/scripts/local_security_audit_report.py and the ~/clawd/scripts/ copy, live runs of both
auditors 2026-09-20 05:12 AEST, ~/clawd/state/local-security-audit.json,
~/clawd/memory/security-autoresearch-log.md, ~/.hermes/cron/jobs.json entry 338a91091ac9.
Sources:
~/.hermes/scripts/autoresearch_network_security_report.py · ~/clawd/scripts/local_security_audit_report.py · ~/.hermes/scripts/local_security_audit_report.py · ~/clawd/state/local-security-audit.json · ~/.hermes/cron/jobs.json