feat(deacon): make deacon the system heartbeat with auto-start

Robustness improvements for the Deacon:

- Add DeaconTheme (purple/silver ecclesiastical theme)
- Apply theme to deacon sessions like mayor/witness
- Daemon now auto-starts deacon if not running
- Daemon pokes deacon instead of directly poking mayor/witnesses
- Deacon is responsible for monitoring mayor and witnesses

The daemon is a "dumb scheduler" that keeps the deacon alive.
The deacon (Claude agent) has the intelligence to understand
context and take remedial action when agents are unhealthy.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
Steve Yegge
2025-12-20 02:00:37 -08:00
parent a37fac2c3c
commit 348a7d0525
3 changed files with 125 additions and 4 deletions

View File

@@ -123,6 +123,10 @@ func startDeaconSession(t *tmux.Tmux) error {
// Set environment
_ = t.SetEnvironment(DeaconSessionName, "GT_ROLE", "deacon")
// Apply Deacon theme
theme := tmux.DeaconTheme()
_ = t.ConfigureGasTownSession(DeaconSessionName, theme, "", "Deacon", "health-check")
// Launch Claude in a respawn loop - session survives restarts
// The startup hook handles context loading automatically
// Use SendKeysDelayed to allow shell initialization after NewSession