Files
joelhooks__joelclaw/infra/launchd/com.joel.talon.plist
Joel Hooks ee80f1c8e7 feat: Talon infrastructure watchdog daemon (ADR-0159)
444KB zero-dep Rust binary, 2366 lines across 7 modules:
- worker.rs: bun process supervisor (port cleanup, signal forwarding, crash recovery)
- probes.rs: 10 health probes (Colima, Docker, Talos, k8s, Redis, Inngest, Typesense, worker)
- state.rs: persistent state machine (healthy → degraded → failed → investigating → critical → SOS)
- escalation.rs: 4-tier recovery (heal script → cloud agent → Ollama local → iMessage SOS)
- config.rs: hand-rolled TOML parser, zero deps
- log.rs: structured JSON logging with rotation
- main.rs: CLI (--check, --status, --worker-only, --dry-run)

All 10 probes passing. Binary at ~/.local/bin/talon.
Launchd plist ready but not yet loaded (worker still managed by existing plist).
2026-02-27 13:09:51 -08:00

32 lines
828 B
Plaintext

<?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">
<plist version="1.0">
<dict>
<key>Label</key>
<string>com.joel.talon</string>
<key>ProgramArguments</key>
<array>
<string>/Users/joel/.local/bin/talon</string>
</array>
<key>RunAtLoad</key>
<true/>
<key>KeepAlive</key>
<true/>
<key>StandardErrorPath</key>
<string>/Users/joel/.local/log/talon.err</string>
<key>StandardOutPath</key>
<string>/Users/joel/.local/log/talon.log</string>
<key>EnvironmentVariables</key>
<dict>
<key>PATH</key>
<string>/opt/homebrew/bin:/Users/joel/.bun/bin:/Users/joel/.local/bin:/Users/joel/.local/share/fnm/aliases/default/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin</string>
</dict>
</dict>
</plist>