Add gate-evaluation step to Deacon patrol (gt-twjr5.2)
New step evaluates pending async gates each patrol cycle: - Lists open gates via bd gate list - For timer gates, checks if elapsed time exceeds timeout - Closes elapsed gates and notifies waiters - Runs in parallel with trigger-pending-spawns 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
@@ -61,6 +61,35 @@ id = "trigger-pending-spawns"
|
|||||||
needs = ["inbox-check"]
|
needs = ["inbox-check"]
|
||||||
title = "Nudge newly spawned polecats"
|
title = "Nudge newly spawned polecats"
|
||||||
|
|
||||||
|
[[steps]]
|
||||||
|
description = """
|
||||||
|
Evaluate pending async gates.
|
||||||
|
|
||||||
|
Gates are async coordination primitives that block until conditions are met.
|
||||||
|
The Deacon is responsible for monitoring gates and closing them when ready.
|
||||||
|
|
||||||
|
**Timer gates** (await_type: timer):
|
||||||
|
Check if elapsed time since creation exceeds the timeout duration.
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# List all open gates
|
||||||
|
bd gate list --json
|
||||||
|
|
||||||
|
# For each timer gate, check if elapsed:
|
||||||
|
# - CreatedAt + Timeout < Now → gate is ready to close
|
||||||
|
# - Close with: bd gate close <id> --reason "Timer elapsed"
|
||||||
|
```
|
||||||
|
|
||||||
|
**GitHub gates** (await_type: gh:run, gh:pr) - handled in separate step.
|
||||||
|
|
||||||
|
**Human/Mail gates** - require external input, skip here.
|
||||||
|
|
||||||
|
After closing a gate, the Waiters field contains mail addresses to notify.
|
||||||
|
Send a brief notification to each waiter that the gate has cleared."""
|
||||||
|
id = "gate-evaluation"
|
||||||
|
needs = ["inbox-check"]
|
||||||
|
title = "Evaluate pending async gates"
|
||||||
|
|
||||||
[[steps]]
|
[[steps]]
|
||||||
description = """
|
description = """
|
||||||
Check Witness and Refinery health for each rig.
|
Check Witness and Refinery health for each rig.
|
||||||
@@ -118,7 +147,7 @@ gt mail send mayor/ -s \"Health: <rig> <component> unresponsive\" \\
|
|||||||
|
|
||||||
Reset unresponsive_cycles to 0 when component responds normally."""
|
Reset unresponsive_cycles to 0 when component responds normally."""
|
||||||
id = "health-scan"
|
id = "health-scan"
|
||||||
needs = ["trigger-pending-spawns"]
|
needs = ["trigger-pending-spawns", "gate-evaluation"]
|
||||||
title = "Check Witness and Refinery health"
|
title = "Check Witness and Refinery health"
|
||||||
|
|
||||||
[[steps]]
|
[[steps]]
|
||||||
|
|||||||
Reference in New Issue
Block a user